Impression PDF sur une imprimante XPS

Imprimer un PDF sur une imprimante XPS en C#

Vous pouvez imprimer un fichier PDF sur une imprimante XPS, ou sur une autre imprimante logicielle, en utilisant la classe PdfViewer. Pour ce faire, créez un objet de la classe PdfViewer et ouvrez le fichier PDF en utilisant la méthode BindPdf. Vous pouvez définir différents paramètres d’impression à l’aide des classes PrinterSettings et PageSettings. Vous devez également définir la propriété PrinterName sur l’imprimante XPS ou autre imprimante logicielle que vous avez installée.

Enfin, utilisez la méthode PrintDocumentWithSettings pour imprimer le PDF sur l’imprimante XPS ou autre imprimante logicielle. Le fragment de code suivant vous montre comment imprimer le fichier PDF sur une imprimante XPS.

public static void PrintToXpsPrinter()
{
    // Créer l'objet PdfViewer
    PdfViewer viewer = new PdfViewer();

    // Ouvrir le fichier PDF d'entrée
    viewer.BindPdf(_dataDir + "input.pdf");

    // Définir les attributs pour l'impression
    viewer.AutoResize = true;         // Imprimer le fichier avec une taille ajustée
    viewer.AutoRotate = true;         // Imprimer le fichier avec une rotation ajustée
    viewer.PrintPageDialog = false;   // Ne pas produire de dialogue de numéro de page lors de l'impression

    // Créer des objets pour les paramètres de l'imprimante et de la page et PrintDocument
    System.Drawing.Printing.PrinterSettings ps = new System.Drawing.Printing.PrinterSettings();
    System.Drawing.Printing.PageSettings pgs = new System.Drawing.Printing.PageSettings();

    // Définir le nom de l'imprimante XPS/PDF
    ps.PrinterName = "Microsoft XPS Document Writer";
    // Ou définir l'imprimante PDF
    // Ps.PrinterName = "Adobe PDF";

    // Définir la taille de la page (si nécessaire)
    pgs.PaperSize = new System.Drawing.Printing.PaperSize("A4", 827, 1169);

    // Définir les marges de la page (si nécessaire)
    pgs.Margins = new System.Drawing.Printing.Margins(0, 0, 0, 0);

    // Imprimer le document en utilisant les paramètres de l'imprimante et de la page
    viewer.PrintDocumentWithSettings(pgs, ps);

    // Fermer le fichier PDF après l'impression
    viewer.Close();
}