Cómo imprimir un archivo PDF en .NET Core
Contents
[
Hide
]
El siguiente fragmento de código también funciona con la biblioteca Aspose.PDF.Drawing.
Imprimir documento Pdf en .NET Core
La biblioteca Aspose.PDF nos permite convertir archivos PDF a XPS. Esta función puede ser útil para organizar la impresión de documentos. Veamos un ejemplo utilizando la impresora predeterminada:
class Program
{
static void Main()
{
// Crear el hilo secundario y pasar el método de impresión para
// el parámetro delegado ThreadStart del constructor.
Thread printingThread = new Thread(() => PrintPDF(@"C:\tmp\doc-pdf.pdf"));
// Establecer el hilo que usará PrintQueue.AddJob a un solo hilo.
printingThread.SetApartmentState(ApartmentState.STA);
// Iniciar el hilo de impresión. El método pasado al constructor
// del hilo se ejecutará.
printingThread.Start();
}//end Main
private static void PrintPDF(string pdfFileName)
{
// Crear servidor de impresión y cola de impresión.
PrintQueue defaultPrintQueue = LocalPrintServer.GetDefaultPrintQueue();
Aspose.Pdf.Document document = new Document(pdfFileName);
var xpsFileName = pdfFileName.Replace(".pdf", ".xps");
document.Save(xpsFileName,SaveFormat.Xps);
try
{
// Imprimir el archivo Xps mientras se proporciona validación de XPS y notificaciones de progreso.
PrintSystemJobInfo xpsPrintJob = defaultPrintQueue.AddJob(xpsFileName, xpsFileName, false);
Console.WriteLine(xpsPrintJob.JobIdentifier);
}
catch (PrintJobException e)
{
Console.WriteLine("\n\t{0} no se pudo agregar a la cola de impresión.", pdfFileName);
if (e.InnerException != null && e.InnerException.Message == "El archivo contiene datos corruptos.")
{
Console.WriteLine("\tNo es un archivo XPS válido. Utiliza la herramienta de conformidad isXPS para depurarlo.");
}
Console.WriteLine("\tContinuando con el siguiente archivo XPS.\n");
}
}
}//end Program class
En este ejemplo, convertimos un documento PDF en XPS y lo agregamos como un trabajo a la cola de la impresora local.