PDFドキュメントの印刷は、基本的かつ最もよく使われる機能の1つです。ほとんどの場合、印刷はPDFのビューワにてサポートされています。つまり、ビューワでPDFドキュメントを開き、ビューワ自体からドキュメントを印刷できます。ただ、場合によっては、ビューワを使わずに直接印刷したいこともあります。macOSやLinuxの場合、OSに印刷機能が組み込まれており、コマンドラインを使用するだけで印刷することができます。しかし、Windowsの場合、そのような組み込み機能はありません。そこで、Direct2D技術を使って、ビューワを使わずに印刷するサンプルを作成しました。
Windowsにて、DioDocs for PDFを使用してドキュメントを直接印刷するには、サンプル「Direct2Dを使用してWindowsでPDFを印刷する」を参照してください。このサンプルは、GrapeCity.Documents.Imaging.WindowsパッケージにあるGcD2DBitmapクラスとGcD2DGraphicsクラスで作成されています。
このサンプルには、以下のようなドキュメントの印刷と印刷設定の実装に必要なユーティリティがあります。アプリケーションでそのまま使用できます。
上記のデモサンプルは、単一ページを持つPDFを作成して返すように設計されています。生成されたPDFをローカルプリンタで印刷するための実際のコードは、以下のコードに示すように、false条件でブロックされています。
C# |
コードのコピー
|
---|---|
public void CreatePDF(Stream stream) { GcPdfDocument doc = new GcPdfDocument(); Common.Util.AddNote( "This sample uses Direct2D to implement direct printing on Windows. ", doc.NewPage()); // WindowsでPDFを印刷するには、このブロックを含めます if (false) { GcPdfPrintManager pm = new GcPdfPrintManager(); pm.Doc = doc; pm.PrinterSettings = new PrinterSettings(); // デフォルト値を使用しない場合は、プリンタ名やその他の設定を設定します // pm.PrinterSettings.PrinterName = "my printer"; pm.PageScaling = PageScaling.FitToPrintableArea; pm.Print(); } // PDFを保存します doc.Save(stream); } |
PDFを印刷するには、デモサンプルをダウンロードし、ソースを編集してfalse条件を削除し、GcPdfPrintManager.Print()メソッドを呼び出す必要があります。また、必要に応じてGcPdfPrintManagerプロパティとPrinterSettingsプロパティを設定することができます。
LinuxでPDFドキュメントを印刷するには、次のコマンドラインを使用します。
Linux |
コードのコピー
|
---|---|
lp filename.pdf |
macOSでPDFドキュメントを印刷するには、次のコマンドラインを使用します。
macOS |
コードのコピー
|
---|---|
lp filename.pdf |
または
macOS |
コードのコピー
|
---|---|
#! /bin/bash cd /path/to/your/PDFfiles for pdffile in *.pdf; lpr -P MY_PRINTER -o media=A4 -o sides=two-sided-long-edge -o InputSlot=tray-3 "$pdffile"; done |