Impression de PDF dans .NET Framework

Le code suivant fonctionne également avec la bibliothèque Aspose.PDF.Drawing.

Imprimer un fichier PDF en C# - Imprimer un fichier PDF sur l’imprimante par défaut en utilisant les paramètres d’imprimante et de page

Cet article décrit comment imprimer un fichier PDF sur l’imprimante par défaut en utilisant les paramètres d’imprimante et de page en C#.

La classe PdfViewer vous permet d’imprimer un fichier PDF sur l’imprimante par défaut. Vous devez créer un objet PdfViewer et ouvrir le PDF en utilisant la méthode BindPdf. Pour spécifier différents paramètres d’impression, utilisez les classes PageSettings et PrinterSettings. Enfin, appelez la méthode PrintDocumentWithSettings pour imprimer le PDF sur l’imprimante par défaut. Le code suivant montre comment imprimer un PDF sur l’imprimante par défaut avec les paramètres d’imprimante et de page.

public static void SimplePrint()
{
    // Créer un objet PdfViewer
    PdfViewer viewer = new PdfViewer();

    // Ouvrir le fichier PDF d'entrée
    viewer.BindPdf(System.IO.Path.Combine(_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 d'imprimante et de page et PrintDocument
    System.Drawing.Printing.PrinterSettings ps = new System.Drawing.Printing.PrinterSettings();
    System.Drawing.Printing.PageSettings pgs = new System.Drawing.Printing.PageSettings();
    System.Drawing.Printing.PrintDocument prtdoc = new System.Drawing.Printing.PrintDocument();

    // Définir le nom de l'imprimante
    ps.PrinterName = prtdoc.PrinterSettings.PrinterName;

    // Définir PageSize (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 d'imprimante et de page
    viewer.PrintDocumentWithSettings(pgs, ps);

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

Pour afficher une boîte de dialogue d’impression, essayez d’utiliser le fragment de code suivant :

System.Windows.Forms.PrintDialog printDialog = new System.Windows.Forms.PrintDialog();
if (printDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    // Le code d'impression du document va ici
    // Imprimer le document en utilisant les paramètres d'imprimante et de page
    viewer.PrintDocumentWithSettings(pgs, ps);
}

Choosing paper source by PDF page size

Since the 24.4 release, choosing paper source by PDF page size in the print dialog is possible. The next code snippet enables picking a printer tray based on the PDF’s page size.

This preference can be switched on and off using the ‘Document.PickTrayByPdfSize’ property.

using (Document document = new Document())
{
    Page page = document.Pages.Add();
    page.Paragraphs.Add(new TextFragment("Hello world!"));

    // Set the flag to choose a paper tray using the PDF page size
    document.PickTrayByPdfSize = true;
    document.Save("result.pdf");
}