.NET CoreでPDFファイルを印刷する方法
Contents
[
Hide
]
以下のコードスニペットは Aspose.PDF.Drawing ライブラリでも動作します。
.NET CoreでPdfドキュメントを印刷する
Aspose.PDFライブラリを使用して、PDFファイルをXPSに変換できます。この機能は、ドキュメントの印刷を整理するために便利です。デフォルトプリンターを使用する例を見てみましょう:
class Program
{
static void Main()
{
// セカンダリスレッドを作成し、コンストラクタのThreadStartデリゲートパラメータに印刷メソッドを渡します。
Thread printingThread = new Thread(() => PrintPDF(@"C:\tmp\doc-pdf.pdf"));
// PrintQueue.AddJobを使用するスレッドをシングルスレッディングに設定します。
printingThread.SetApartmentState(ApartmentState.STA);
// 印刷スレッドを開始します。Threadコンストラクタに渡されたメソッドが実行されます。
printingThread.Start();
}//end Main
private static void PrintPDF(string pdfFileName)
{
// プリントサーバーとプリントキューを作成します。
PrintQueue defaultPrintQueue = LocalPrintServer.GetDefaultPrintQueue();
Aspose.Pdf.Document document = new Document(pdfFileName);
var xpsFileName = pdfFileName.Replace(".pdf", ".xps");
document.Save(xpsFileName,SaveFormat.Xps);
try
{
// XPS検証と進行状況の通知を提供しながらXpsファイルを印刷します。
PrintSystemJobInfo xpsPrintJob = defaultPrintQueue.AddJob(xpsFileName, xpsFileName, false);
Console.WriteLine(xpsPrintJob.JobIdentifier);
}
catch (PrintJobException e)
{
Console.WriteLine("\n\t{0} をプリントキューに追加できませんでした。", pdfFileName);
if (e.InnerException != null && e.InnerException.Message == "File contains corrupted data.")
{
Console.WriteLine("\t有効なXPSファイルではありません。isXPS Conformance Toolでデバッグしてください。");
}
Console.WriteLine("\t次のXPSファイルの処理を続けます。\n");
}
}
}//end Program class
この例では、PDFドキュメントをXPSに変換し、ローカルプリンターのキューにジョブとして追加します。