PDFをXPSプリンターに印刷する

以下のコードスニペットは、Aspose.PDF.Drawing ライブラリでも動作します。

C#でPDFをXPSプリンタに印刷する

PDFファイルをXPSプリンタ、またはその他のソフトプリンタに印刷するには、PdfViewer クラスを使用します。これを行うには、PdfViewer クラスのオブジェクトを作成し、BindPdf メソッドを使用してPDFファイルを開きます。PrinterSettings と PageSettings クラスを使用して異なる印刷設定を設定することができます。また、インストールされているXPSまたはその他のソフトプリンタの PrinterName プロパティを設定する必要があります。

最後に、PrintDocumentWithSettings メソッドを使用して、PDFをXPSまたはその他のソフトプリンタに印刷します。以下のコードスニペットは、PDFファイルをXPSプリンタに印刷する方法を示しています。

public static void PrintToXpsPrinter()
{
    // PdfViewer オブジェクトを作成する
    PdfViewer viewer = new PdfViewer();

    // 入力PDFファイルを開く
    viewer.BindPdf(_dataDir + "input.pdf");

    // 印刷のための属性を設定する
    viewer.AutoResize = true;         // サイズを調整してファイルを印刷する
    viewer.AutoRotate = true;         // 回転を調整してファイルを印刷する
    viewer.PrintPageDialog = false;   // 印刷時にページ番号ダイアログを表示しない

    // プリンタとページ設定、PrintDocumentのためのオブジェクトを作成する
    System.Drawing.Printing.PrinterSettings ps = new System.Drawing.Printing.PrinterSettings();
    System.Drawing.Printing.PageSettings pgs = new System.Drawing.Printing.PageSettings();

    // XPS/PDFプリンタ名を設定する
    ps.PrinterName = "Microsoft XPS Document Writer";
    // またはPDFプリンタを設定する
    // Ps.PrinterName = "Adobe PDF";

    // 必要に応じてPageSizeを設定する
    pgs.PaperSize = new System.Drawing.Printing.PaperSize("A4", 827, 1169);

    // 必要に応じてPageMarginsを設定する
    pgs.Margins = new System.Drawing.Printing.Margins(0, 0, 0, 0);

    // プリンタとページ設定を使用してドキュメントを印刷する
    viewer.PrintDocumentWithSettings(pgs, ps);

    // 印刷後にPDFファイルを閉じる
    viewer.Close();
}

Choosing paper source by PDF page size

Since the 24.4 release, choosing paper source by PDF page size in the print dialog is possible. The next code snippet enables picking a printer tray based on the PDF’s page size.

This preference can be switched on and off using the ‘PdfContentEditor’ facade.

using (PdfContentEditor contentEditor = new PdfContentEditor())
{
    contentEditor.BindPdf("input.pdf");

    // Set the flag to choose a paper tray using the PDF page size
    contentEditor.ChangeViewerPreference(ViewerPreference.PickTrayByPDFSize);
    contentEditor.Save("result.pdf");
}