出力プリンタをユーザに選択させたくない、とか
印刷ドキュメントを出力させたいが、出力プリンタは固定のプリンタを利用させたい。
そのほかに「物理プリンタで出力させるのはNG。PDFファイルで出力させたい。」とかありますね。
Sponsored LinkPrintDocument.PrinterSettings.PrinterNameで
「System.Drawing.Printing.PrintDocument」の「PrinterSettings.PrinterName」に出力対象とするプリンタ名をセットすることで対応は可能です。
ただ、もちろんPCにインストールされているプリンタ名を指定しなければなりません。
using (System.Drawing.Printing.PrintDocument pd = new System.Drawing.Printing.PrintDocument())
{
// プリンタ名セット
string strPrinterName = "Microsoft Print to PDF";
pd.PrinterSettings.PrinterName = strPrinterName;
// 以下略
}
Windows10だとデフォルトでインストールされている?「Microsoft Print to PDF」でのみ出力できるようにします。
「PDFファイル」として保存するようにダイアログが表示されています。
これであれば、常にPDFファイルで出力される形となり、物理プリンタで紙を消費することもなし。
Sponsored Link指定したプリンタ名のプリンタがインストールされているか?
上記のPDFではなく「物理プリンタ」で出力させたい、という場合など。企業内システムであれば、基本的にインストールされているプリンタ名などは同一?、もしくは管理されているので問題ないかと思いますが、一応、インストールされていることを確認します。
PrinterSettings.InstalledPrinters
foreach (string prtName in System.Drawing.Printing.PrinterSettings.InstalledPrinters)
{
// 対象のプリンタ名が含まれているか確認
if(prtName == "対象のプリンタ名")
{
// これならインストールされている。
}
}