Como imprimir arquivo PDF em .NET Core

O seguinte trecho de código também funciona com a biblioteca Aspose.PDF.Drawing.

Imprimir documento Pdf em .NET Core

A biblioteca Aspose.PDF nos permite converter arquivos PDF para XPS. Esta função pode ser útil para organizar a impressão de documentos. Vamos dar uma olhada em um exemplo usando a impressora padrão:

class Program
{
    static void Main()
    {
        // Crie a thread secundária e passe o método de impressão para
        // o parâmetro delegado ThreadStart do construtor.
        Thread printingThread = new Thread(() => PrintPDF(@"C:\tmp\doc-pdf.pdf"));

        // Configure a thread que usará PrintQueue.AddJob para um único thread.
        printingThread.SetApartmentState(ApartmentState.STA);

        // Inicie a thread de impressão. O método passado para o construtor
        // da Thread será executado.
        printingThread.Start();
    }//fim Main

    private static void PrintPDF(string pdfFileName)
    {
        // Crie o servidor de impressão e a fila de impressão.
        PrintQueue defaultPrintQueue = LocalPrintServer.GetDefaultPrintQueue();

        Aspose.Pdf.Document document = new Document(pdfFileName);
        var xpsFileName = pdfFileName.Replace(".pdf", ".xps");
        document.Save(xpsFileName,SaveFormat.Xps);

        try
        {
            // Imprima o arquivo Xps fornecendo validação XPS e notificações de progresso.
            PrintSystemJobInfo xpsPrintJob = defaultPrintQueue.AddJob(xpsFileName, xpsFileName, false);
            Console.WriteLine(xpsPrintJob.JobIdentifier);
        }
        catch (PrintJobException e)
        {
            Console.WriteLine("\n\t{0} não pôde ser adicionado à fila de impressão.", pdfFileName);
            if (e.InnerException != null && e.InnerException.Message == "File contains corrupted data.")
            {
                Console.WriteLine("\tNão é um arquivo XPS válido. Use a ferramenta de conformidade isXPS para depurá-lo.");
            }
            Console.WriteLine("\tContinuando com o próximo arquivo XPS.\n");
        }
    }
}//fim da classe Program

Neste exemplo, convertemos um documento PDF em XPS e o adicionamos como um trabalho à fila da impressora local.

{
    "@context": "http://schema.org",
    "@type": "SoftwareApplication",
    "name": "Aspose.PDF for .NET Library",
    "image": "https://www.aspose.cloud/templates/aspose/img/products/pdf/aspose_pdf-for-net.svg",
    "url": "https://www.aspose.com/",
    "publisher": {
        "@type": "Organization",
        "name": "Aspose.PDF",
        "url": "https://products.aspose.com/pdf",
        "logo": "https://www.aspose.cloud/templates/aspose/img/products/pdf/aspose_pdf-for-net.svg",
        "alternateName": "Aspose",
        "sameAs": [
            "https://facebook.com/aspose.pdf/",
            "https://twitter.com/asposepdf",
            "https://www.youtube.com/channel/UCmV9sEg_QWYPi6BJJs7ELOg/featured",
            "https://www.linkedin.com/company/aspose",
            "https://stackoverflow.com/questions/tagged/aspose",
            "https://aspose.quora.com/",
            "https://aspose.github.io/"
        ],
        "contactPoint": [
            {
                "@type": "ContactPoint",
                "telephone": "+1 903 306 1676",
                "contactType": "vendas",
                "areaServed": "US",
                "availableLanguage": "en"
            },
            {
                "@type": "ContactPoint",
                "telephone": "+44 141 628 8900",
                "contactType": "vendas",
                "areaServed": "GB",
                "availableLanguage": "en"
            },
            {
                "@type": "ContactPoint",
                "telephone": "+61 2 8006 6987",
                "contactType": "vendas",
                "areaServed": "AU",
                "availableLanguage": "en"
            }
        ]
    },
    "offers": {
        "@type": "Offer",
        "price": "1199",
        "priceCurrency": "USD"
    },
    "applicationCategory": "Biblioteca de Manipulação de PDF para .NET",
    "downloadUrl": "https://www.nuget.org/packages/Aspose.PDF/",
    "operatingSystem": "Windows, MacOS, Linux",
    "screenshot": "https://docs.aspose.com/pdf/net/create-pdf-document/screenshot.png",
    "softwareVersion": "2022.1",
    "aggregateRating": {
        "@type": "AggregateRating",
        "ratingValue": "5",
        "ratingCount": "16"
    }
}