出力するプリンタをプログラムで指定(固定)したい

Sponsored Link

出力プリンタをユーザに選択させたくない、とか

印刷ドキュメントを出力させたいが、出力プリンタは固定のプリンタを利用させたい。

そのほかに「物理プリンタで出力させるのはNG。PDFファイルで出力させたい。」とかありますね。

Sponsored Link

PrintDocument.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 == "対象のプリンタ名")
    {
        // これならインストールされている。
    }
}
タイトルとURLをコピーしました