8

PrintDocument.PrinterSettings.PrinterNameデフォルトのプリンタにどのように設定しますか?

オペレーティングシステムでデフォルトのプリンタを設定することについて話しているのではありません。むしろ、デフォルトのプリンターで印刷するようにPrintDocumentオブジェクトを設定することについて話しています。

4

6 に答える 6

13

私の理解が正しければ、(1) PrintDocument を再作成せず に、 (2) 既に別のプリンターに設定している可能性がある場合 、または (3)デフォルトのプリンタは、PrintDocument が最初に作成された時点から変更されている可能性があります (そのため、最初の構築後にターゲット インスタンスによって提供されるデフォルトを単にキャッシュすることに頼ることはできません)

この場合、「C# get default printer name」を検索すると、stackoverflow に関する次の優れた投稿が表示されます: What's the best way to get the default printer in .NET

PrintDocument上位投票の回答で提供されたサンプルに基づいて構築し、再作成したくないいくつかの設定が既に存在することを考慮してください。PrinterSettingsデフォルトのプリンター名をコピーするためだけに、クラスの新しいインスタンスを作成できます。

// Create a new instance of the PrinterSettings class, which 
// we will only use to fetch the default printer name
System.Drawing.Printing.PrinterSettings newSettings = new System.Drawing.Printing.PrinterSettings();

// Copy the default printer name from our newSettings instance into our 
// pre-existing PrintDocument instance without recreating the 
// PrintDocument or the PrintDocument's PrinterSettings classes.
existingPrintDocumentInstance.PrinterSettings.PrinterName = newSettings.PrinterName;

WMI などの代替手法については、リンクされた投稿を確認できますが、これが最も簡単でクリーンなソリューションだと思います。

于 2011-12-01T06:05:55.647 に答える
5

デフォルトのプリンターに自動的に初期化されます。何もしない。

于 2011-03-02T07:40:50.017 に答える
2
GetDefaultPrinter() 

{ PrinterSettings settings = new PrinterSettings(); 

foreach (string printer in PrinterSettings.InstalledPrinters) 

{ settings.PrinterName = printer; 

if (settings.IsDefaultPrinter) 

return printer; 

} 

return string.Empty; 

}
于 2011-12-03T09:52:43.350 に答える
0

オブジェクトに何も設定しない場合、デフォルトではデフォルトのプリンタに到達します。探していた公式ソースは次のとおりです。MSDNPrintDocumentクラスへのリンク

例のすぐ上に書かれた文にマークを付けます。「次のコード例は、C:\ My Documents\MyFile.txtという名前のファイルをデフォルトのプリンターで印刷します。」

HTH

于 2011-12-05T09:41:31.847 に答える
0

私が間違っている場合は修正してください。ただし、デフォルトのプリンターの名前を取得してPrintDocument.PrinterSettings.PrinterNameから、これに設定しようとしています。

これを使用PrintDocument.PrinterSettings.PrinterNameすると、デフォルトでデフォルトのプリンターが使用されます。

于 2011-12-01T11:00:11.400 に答える