Search code examples
printingmigradoc

Print MigraDoc document to specific printer


I've created a MigraDoc/PdfSharp document and now need to send it to a specific printer without any user interaction.

What do I need to use as a Renderer and how do I set the printer path/name to the MigraDocPrintDocument?


Solution

  • MigraDocPrintDocument is the correct class.

    // Creates a PrintDocument that simplyfies printing of MigraDoc documents
    MigraDocPrintDocument printDocument = new MigraDocPrintDocument();
    
    // Attach the current printer settings
    printDocument.PrinterSettings = printerSettings;
    

    We use System.Windows.Forms.PrintDialog() to let the user select the printer (this dialog fills the printerSettings structure). Use

    internal PrinterSettings printerSettings = new PrinterSettings();
    

    for the default printer. Change this structure to print with different settings or on a different printer.

    Please note that with PDFsharp 1.31, printing will work with the GDI+ build only (the WPF build will not print the document correctly).