Как распечатать PDF-файл в .NET Core
Contents
[
Hide
]
Следующий фрагмент кода также работает с библиотекой Aspose.PDF.Drawing.
Печать PDF-документа в .NET Core
Библиотека 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);
// Запустите поток печати. Метод, переданный в конструктор
// потока, будет выполнен.
printingThread.Start();
}//конец 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-файл. Используйте инструмент проверки соответствия XPS для его отладки.");
}
Console.WriteLine("\tПродолжение с следующим XPS-файлом.\n");
}
}
}//конец класса Program
В этом примере мы конвертируем документ PDF в XPS и добавляем его как задачу в очередь локального принтера.