Impresión de PDF a través del servicio de Windows con C#

 C Programming >> Programación C >  >> Tags >> PDF
Impresión de PDF a través del servicio de Windows con C#

Terminé usando pdfium para hacer el trabajo. Con ese código, el archivo PDF se envía a la impresora correctamente incluso cuando el servicio de Windows se ejecuta bajo el usuario de LocalService.

PrinterSettings printerSettings = new PrinterSettings()
{
    PrinterName = printerName,
    Copies = 1
};

PageSettings pageSettings = new PageSettings(printerSettings)
{
    Margins = new Margins(0, 0, 0, 0)
};

foreach (PaperSize paperSize in printerSettings.PaperSizes)
{
    if (paperSize.PaperName == "A4")
    {
        pageSettings.PaperSize = paperSize;
        break;
    }
}

using (PdfDocument pdfDocument = PdfDocument.Load(filePath))
{
    using (PrintDocument printDocument = pdfDocument.CreatePrintDocument())
    {
        printDocument.PrinterSettings = printerSettings;
        printDocument.DefaultPageSettings = pageSettings;
        printDocument.PrintController = (PrintController) new     StandardPrintController();
        printDocument.Print();
    }
}

Gracias por las respuestas chicos.