C# Imprimer des documents PDF

This article was translated from English: Does it need improvement?
Translated
View the article in English

Vous pouvez facilement imprimer un PDF dans des applications .NET à l'aide d'un code Visual Basic ou C#. Ce tutoriel vous expliquera comment utiliser les capacités d'impression PDF de C# pour imprimer de manière programmatique.



Commencez à utiliser IronPDF dans votre projet dès aujourd'hui avec un essai gratuit.

Première étape :
green arrow pointer

Créer un PDF et l'imprimer

Vous pouvez envoyer un document PDF directement à une imprimante de manière silencieuse ou créer un fichierSystem.Drawing.Printing.PrintDocument qui peut être utilisé et envoyé aux boîtes de dialogue d'impression de l'interface graphique.

Le code suivant peut être utilisé pour les deux options :

:path=/static-assets/pdf/content-code-examples/how-to/csharp-print-pdf-create-and-print-pdf.cs
using IronPdf;
using System.Threading.Tasks;

// Create a new PDF and print it
ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");

// Print PDF from default printer
await pdf.Print();

// For advanced silent real-world printing options, use PdfDocument.GetPrintDocument
// Remember to add an assembly reference to System.Drawing.dll
System.Drawing.Printing.PrintDocument PrintDocYouCanWorkWith = pdf.GetPrintDocument();
Imports IronPdf
Imports System.Threading.Tasks

' Create a new PDF and print it
Private renderer As New ChromePdfRenderer()

Private pdf As PdfDocument = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")

' Print PDF from default printer
Await pdf.Print()

' For advanced silent real-world printing options, use PdfDocument.GetPrintDocument
' Remember to add an assembly reference to System.Drawing.dll
Dim PrintDocYouCanWorkWith As System.Drawing.Printing.PrintDocument = pdf.GetPrintDocument()
VB   C#

Impression avancée

IronPDF est tout à fait capable de gérer des fonctions d'impression avancées telles que la recherche du nom de l'imprimante ou son paramétrage et le réglage de la résolution de l'imprimante.

Spécifier le nom de l'imprimante

Pour spécifier le nom de l'imprimante, il suffit de récupérer l'objet document d'impression en cours(avec l'utilisation de l'outilMéthode GetPrintDocument pour les documents PDF du document PDF)utilisez alors la propriété PrinterSettings.PrinterName, comme suit :

:path=/static-assets/pdf/content-code-examples/how-to/csharp-print-pdf-specify-printer-name.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Get PrintDocument object
var printDocument = pdf.GetPrintDocument();

// Assign the printer name
printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF";

// Print document
printDocument.Print();
Imports IronPdf

Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

' Get PrintDocument object
Private printDocument = pdf.GetPrintDocument()

' Assign the printer name
printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF"

' Print document
printDocument.Print()
VB   C#

Définir la résolution de l'imprimante

La résolution fait référence au nombre de pixels imprimés ou affichés, en fonction de la sortie. Vous pouvez définir la résolution de votre impression à l'aide de la fonctionpropriété DefaultPageSettings.PrinterResolution (Paramètres de page par défaut) du document PDF. Voici une démonstration très rapide :

:path=/static-assets/pdf/content-code-examples/how-to/csharp-print-pdf-specify-printer-resolution.cs
using IronPdf;
using System.Drawing.Printing;

PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Get PrintDocument object
var printDocument = pdf.GetPrintDocument();

// Set printer resolution
printDocument.DefaultPageSettings.PrinterResolution = new PrinterResolution
{
    Kind = PrinterResolutionKind.Custom,
    X = 1200,
    Y = 1200
};

// Print document
printDocument.Print();
Imports IronPdf
Imports System.Drawing.Printing

Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

' Get PrintDocument object
Private printDocument = pdf.GetPrintDocument()

' Set printer resolution
printDocument.DefaultPageSettings.PrinterResolution = New PrinterResolution With {
	.Kind = PrinterResolutionKind.Custom,
	.X = 1200,
	.Y = 1200
}

' Print document
printDocument.Print()
VB   C#

Comme vous pouvez le voir, j'ai réglé la résolution à un niveau personnalisé : 1200 vertical et 1200 horizontal.

Méthode PrintToFile

La méthode PdfDocument.PrintToFile vous permet d'imprimer le PDF dans un fichier. Il vous suffit de fournir le chemin d'accès au fichier de sortie et de préciser si vous souhaitez ou non obtenir un aperçu. Le code ci-dessous imprimera dans le fichier spécifié sans inclure d'aperçu :

:path=/static-assets/pdf/content-code-examples/how-to/csharp-print-pdf-printtofile.cs
using IronPdf;
using System.Threading.Tasks;

PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

await pdf.PrintToFile("PathToFile", false);
Imports IronPdf
Imports System.Threading.Tasks

Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

Await pdf.PrintToFile("PathToFile", False)
VB   C#

Traçage des processus d'impression à l'aide de C

La beauté de C# en conjonction avec IronPDF est que lorsqu'il s'agit de garder une trace des pages imprimées ou de tout ce qui est lié à l'impression, c'est en fait assez simple. Dans l'exemple suivant, je montrerai comment changer le nom de l'imprimante, la résolution ainsi que comment obtenir le nombre de pages imprimées.

:path=/static-assets/pdf/content-code-examples/how-to/csharp-print-pdf-trace-printing-process.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Get PrintDocument object
var printDocument = pdf.GetPrintDocument();

// Subscribe to the PrintPage event
var printedPages = 0;
printDocument.PrintPage += (sender, args) => printedPages++;

// Print document
printDocument.Print();
Imports IronPdf

Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

' Get PrintDocument object
Private printDocument = pdf.GetPrintDocument()

' Subscribe to the PrintPage event
Private printedPages = 0
Private printDocument.PrintPage += Sub(sender, args) printedPages++

' Print document
printDocument.Print()
VB   C#