UTILISATION D'IRONPRINT

Comment imprimer un fichier sur une imprimante en C#

Chaknith Bin
Chaknith Bin
avril 29, 2024
Partager:

L'impression de fichiers PDF directement à partir d'une application C# peut s'avérer une fonctionnalité précieuse, notamment lors du développement d'applications nécessitant une intégration transparente avec des documents PDF physiques. Que vous travailliez sur un système de gestion de documents PDF, une application de point de vente ou tout autre logiciel traitant de l'impression, C# fournit un ensemble robuste de bibliothèques pour faciliter cette fonctionnalité de méthode d'impression PDF.

À cette fin, Microsoft C# fournit une méthode d'impression pour imprimer les fichiers PDF sur une imprimante par défaut. Dans cet article, nous allons étudier les étapes permettant d'imprimer un fichier PDF sur une imprimante à l'aide de C#.

Comment imprimer un fichier sur une imprimante dans C# ;

  1. Créer une application Windows Forms C#

  2. Importer System.Drawing.Printing en utilisant le mot-clé

  3. Concevoir le formulaire avec un bouton et d'autres contrôles nécessaires

  4. Gérer l'événement PrintDocument en utilisant l'événement PrintPage

  5. Initier le travail de Print

  6. Lancez l'application et cliquez sur le bouton Imprimer pour imprimer

Conditions préalables

Avant de commencer, assurez-vous que les conditions suivantes sont réunies :

  1. Un environnement de développement C# (par exemple, Visual Studio).

  2. Permissions adéquates pour interagir avec les imprimantes.

  3. Compréhension de base de la programmation en C#.

Étape 1 : Mise en place du projet

Créez un nouveau projet C# ou ouvrez un projet existant dans votre environnement de développement préféré. Assurez-vous que votre projet est correctement configuré et que vous disposez des autorisations nécessaires pour les interactions avec l'imprimante. La procédure suivante vous permet de compléter ce processus :

Installer Visual Studio

Si vous n'avez pas Visual Studio installé, téléchargez-le et installez-le depuis le site officiel : Visual Studio.

Créer un nouveau projet

  1. Ouvrez Visual Studio.

    1. Cliquez sur "Créer un nouveau projet".

    Comment imprimer un fichier sur une imprimante en C# : Figure 1 - Nouveau projet

Choisir un modèle de projet

  1. Dans la boîte de dialogue "Créer un nouveau projet", sélectionnez "Application Windows Forms (.NET Framework)" ou "Application Windows Forms (.NET Core)" selon votre préférence.

    Comment imprimer un fichier sur une imprimante en C# : Figure 2 - Application Windows Forms

  2. Indiquez le nom et le lieu de votre projet.

    Comment imprimer un fichier sur une imprimante en C# : Figure 3 - Configuration du projet

  1. Cliquez sur Suivant et dans l'écran d'informations complémentaires, sélectionnez le Framework .NET et cliquez sur "Créer"

Concevoir le formulaire

  1. Une fois le projet créé, le formulaire principal s'affiche dans le designer.

  2. Utilisez la boîte à outils pour ajouter à votre formulaire des contrôles tels que des boutons, des zones de texte, des étiquettes, etc.

    1. Personnalisez les propriétés de chaque contrôle à l'aide de la fenêtre Propriétés.

    Comment imprimer un fichier sur une imprimante en C# : Figure 4 - Conception du formulaire

    1. Ajuster l'apparence et la mise en page du formulaire.

    Comment imprimer un fichier sur une imprimante en C# : Figure 5 - Formulaire d'impression

Étape 2 : Importation des bibliothèques requises

Dans votre fichier de code C#, importez les espaces de noms nécessaires pour accéder aux classes et méthodes liées à l'impression.

using System.Drawing.Printing;
using System.Drawing.Printing;
Imports System.Drawing.Printing
$vbLabelText   $csharpLabel

Ces espaces de noms fournissent des classes essentielles telles que PrintDocument, PrintPageEventArgs et PrintController pour gérer les opérations d'impression.

Étape 3 : Gestion de l'événement PrintDocument

La classe PrintDocument est une pierre angulaire pour l'impression en C#. Gérez son événement PrintPage pour définir le contenu à imprimer et comment il doit être formaté. Commençons par un exemple simple d'impression du contenu d'un fichier texte :

private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
    // Specify the file path
    string filePath = "C:\\path\\to\\your\\file.txt";
    // Read the content of the file
    string line = System.IO.File.ReadAllText(filePath);
    // Create a Font object (adjust as needed)
    Font font = new Font("Arial", 12);
    // Create a RectangleF to define the printing area
    RectangleF area = new RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height);
    // Draw the content to the printing area
    e.Graphics.DrawString(line, font, Brushes.Black, area);
    // Set HasMorePages to false to indicate that there are no more pages to print
    e.HasMorePages = false;
}
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
    // Specify the file path
    string filePath = "C:\\path\\to\\your\\file.txt";
    // Read the content of the file
    string line = System.IO.File.ReadAllText(filePath);
    // Create a Font object (adjust as needed)
    Font font = new Font("Arial", 12);
    // Create a RectangleF to define the printing area
    RectangleF area = new RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height);
    // Draw the content to the printing area
    e.Graphics.DrawString(line, font, Brushes.Black, area);
    // Set HasMorePages to false to indicate that there are no more pages to print
    e.HasMorePages = false;
}
Private Sub printDocument1_PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs)
	' Specify the file path
	Dim filePath As String = "C:\path\to\your\file.txt"
	' Read the content of the file
	Dim line As String = System.IO.File.ReadAllText(filePath)
	' Create a Font object (adjust as needed)
	Dim font As New Font("Arial", 12)
	' Create a RectangleF to define the printing area
	Dim area As New RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height)
	' Draw the content to the printing area
	e.Graphics.DrawString(line, font, Brushes.Black, area)
	' Set HasMorePages to false to indicate that there are no more pages to print
	e.HasMorePages = False
End Sub
$vbLabelText   $csharpLabel

Cet exemple lit le contenu d'un fichier texte et l'imprime en utilisant la police et le formatage spécifiés.

Étape 4 : Lancement de la tâche d'impression

Initiez le travail d'impression en créant une instance de la classe PrintDocument, en attachant le gestionnaire d'événements PrintPage, puis en déclenchant le processus d'impression. En option, vous pouvez afficher une boîte de dialogue d'impression pour la configuration de l'utilisateur :

private void btnPrint_Click(object sender, EventArgs e)
{
    PrintDocument pd = new PrintDocument();
    pd.PrintPage += new PrintPageEventHandler(printDocument1_PrintPage);
    // Optionally, display a print dialog for user configuration
    PrintDialog printDialog = new PrintDialog();
    if (printDialog.ShowDialog() == DialogResult.OK)
    {
        pd.PrinterSettings = printDialog.PrinterSettings;
        pd.Print();
    }
}
private void btnPrint_Click(object sender, EventArgs e)
{
    PrintDocument pd = new PrintDocument();
    pd.PrintPage += new PrintPageEventHandler(printDocument1_PrintPage);
    // Optionally, display a print dialog for user configuration
    PrintDialog printDialog = new PrintDialog();
    if (printDialog.ShowDialog() == DialogResult.OK)
    {
        pd.PrinterSettings = printDialog.PrinterSettings;
        pd.Print();
    }
}
Private Sub btnPrint_Click(ByVal sender As Object, ByVal e As EventArgs)
	Dim pd As New PrintDocument()
	AddHandler pd.PrintPage, AddressOf printDocument1_PrintPage
	' Optionally, display a print dialog for user configuration
	Dim printDialog As New PrintDialog()
	If printDialog.ShowDialog() = DialogResult.OK Then
		pd.PrinterSettings = printDialog.PrinterSettings
		pd.Print()
	End If
End Sub
$vbLabelText   $csharpLabel

Ce code crée une instance de PrintDocument, attache le gestionnaire d'événements PrintPage, puis imprime le document. La boîte de dialogue d'impression optionnelle permet aux utilisateurs de configurer les paramètres d'impression avant de lancer le travail d'impression. Cette opération permet d'imprimer le document texte sur une imprimante connectée localement. Si elle n'est pas présente, le fichier est imprimé sur l'imprimante par défaut (Microsoft Print to PDF) dans la boîte de dialogue d'impression comme indiqué ci-dessous :

Comment imprimer un fichier sur une imprimante en C# : Figure 6 - Boîte de dialogue d'impression Microsoft

Impression avancée dans C# ; via la bibliothèque IronPrint

Lorsqu'il s'agit de gérer efficacement la fonctionnalité d'impression dans les applications de console C#, la bibliothèque IronPrint offre une solution puissante.

Introduction à IronPrint

IronPrint est une bibliothèque d'impression complète développée par Iron Software, conçue pour s'intégrer parfaitement aux applications .NET. Que vous travailliez sur un projet de bureau, web ou mobile, IronPrint offre des capacités polyvalentes d'impression de documents PDF, en prenant en charge différents formats de fichiers et en fournissant des paramètres d'impression personnalisables.

Comment imprimer un fichier sur une imprimante en C#: Figure 7 - IronPrint

Caractéristiques principales

  1. Prise en charge des formats : IronPrint prend en charge une variété de formats de document, y compris PDF, PNG, HTML, TIFF, GIF, JPEG et BITMAP. Cette polyvalence garantit que les développeurs peuvent travailler avec différents types de contenu pour l'impression.

  2. Paramètres personnalisables : Les développeurs ont la flexibilité de personnaliser les paramètres d'impression selon les besoins de leur application. Cela inclut des options pour définir les DPI (points par pouce), spécifier l'orientation du papier (portrait ou paysage) et contrôler le nombre de copies.

  3. Boîte de dialogue d'impression : IronPrint facilite une expérience utilisateur fluide en permettant aux développeurs d'afficher une boîte de dialogue d'impression avant l'impression. Cela peut être utile dans les scénarios où les utilisateurs doivent interagir avec le processus d'impression et sélectionner des options spécifiques.

  4. Compatibilité multiplateforme : IronPrint dépasse les limitations des plateformes, offrant une compatibilité avec une gamme diversifiée d'environnements, y compris Windows (7+), macOS (10+), iOS (11+) et Android API 21+ (v5 "Lollipop"). Il s'intègre parfaitement avec différents types de projets tels que Mobile (Xamarin, MAUI & Avalonia), Bureau (WPF, MAUI & Windows Avalonia) et Console (App & Library).

  5. Support étendu des versions .NET : Que vous utilisiez les dernières versions .NET 8, 7, 6 ou Core 3.1+, IronPrint vous couvre. Il étend également son support au .NET Framework (4.6.2+), assurant la compatibilité avec divers environnements de développement.

Installation d'IronPrint

Avant de vous lancer dans l'impression de fichiers, vous devez installer la bibliothèque IronPrint. Vous pouvez facilement le faire en utilisant la console du gestionnaire de paquets NuGet :

Install-Package IronPrint

Cette ligne de commande télécharge et installe la bibliothèque IronPrint dans votre projet C#.

Initialisation d'IronPrint

Une fois IronPrint installé, vous devez l'initialiser dans votre code C#. Importez l'espace de noms IronPrint et définissez la clé de licence pour garantir un fonctionnement correct :

using IronPrint;
class Program
{
    public static void Main()
    {
        License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
    }
}
using IronPrint;
class Program
{
    public static void Main()
    {
        License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
    }
}
Imports IronPrint
Friend Class Program
	Public Shared Sub Main()
		License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY"
	End Sub
End Class
$vbLabelText   $csharpLabel

Impression d'un fichier avec IronPrint

L'impression d'un fichier à l'aide d'IronPrint est simple. Vous pouvez utiliser la classe Printer, en spécifiant le chemin du fichier à la méthode Print pour imprimer des PDF silencieusement :

using IronPrint;
class Program
{
// static void main
    public static void Main()
    {
        License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
        // Specify the file path
        var document = "C:\\path\\to\\your\\file.pdf";
        // Print PDFs
        Printer.Print(document);
    }
}
using IronPrint;
class Program
{
// static void main
    public static void Main()
    {
        License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
        // Specify the file path
        var document = "C:\\path\\to\\your\\file.pdf";
        // Print PDFs
        Printer.Print(document);
    }
}
Imports IronPrint
Friend Class Program
' static void main
	Public Shared Sub Main()
		License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY"
		' Specify the file path
		Dim document = "C:\path\to\your\file.pdf"
		' Print PDFs
		Printer.Print(document)
	End Sub
End Class
$vbLabelText   $csharpLabel

Cet exemple démontre l'impression d'un fichier PDF, mais IronPrint prend en charge une variété de formats de fichiers, y compris PDF, PNG, HTML, TIFF, GIF, JPEG, IMAGE, et BITMAP.

Personnalisation des paramètres d'impression

IronPrint vous permet de personnaliser les paramètres d'impression selon les exigences de votre application. Vous pouvez configurer des paramètres tels que la résolution en DPI, le nombre de copies, l'orientation du papier, et plus encore en utilisant la classe PrintSettings. L'exemple de code suivant vous aide à définir les paramètres de page et à imprimer des documents PDF :

using IronPrint;
class Program
{
    public static void Main()
    {
        IronPrint.License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
    Console.WriteLine("Printing Started...");
        // Specify the file path
        string filePath = "C:\\path\\to\\your\\file.pdf";
        // Configure print settings
        PrintSettings printSettings = new PrintSettings();
        printSettings.Dpi = 300;
        printSettings.NumberOfCopies = 2;
        printSettings.PaperOrientation = PaperOrientation.Landscape;
        // Print the document with custom settings
        Printer.Print(filePath, printSettings);
    // Print using the Print dialog
    Printer.ShowPrintDialog(filePath, printSettings);
    }
}
using IronPrint;
class Program
{
    public static void Main()
    {
        IronPrint.License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
    Console.WriteLine("Printing Started...");
        // Specify the file path
        string filePath = "C:\\path\\to\\your\\file.pdf";
        // Configure print settings
        PrintSettings printSettings = new PrintSettings();
        printSettings.Dpi = 300;
        printSettings.NumberOfCopies = 2;
        printSettings.PaperOrientation = PaperOrientation.Landscape;
        // Print the document with custom settings
        Printer.Print(filePath, printSettings);
    // Print using the Print dialog
    Printer.ShowPrintDialog(filePath, printSettings);
    }
}
Imports IronPrint
Friend Class Program
	Public Shared Sub Main()
		IronPrint.License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY"
	Console.WriteLine("Printing Started...")
		' Specify the file path
		Dim filePath As String = "C:\path\to\your\file.pdf"
		' Configure print settings
		Dim printSettings As New PrintSettings()
		printSettings.Dpi = 300
		printSettings.NumberOfCopies = 2
		printSettings.PaperOrientation = PaperOrientation.Landscape
		' Print the document with custom settings
		Printer.Print(filePath, printSettings)
	' Print using the Print dialog
	Printer.ShowPrintDialog(filePath, printSettings)
	End Sub
End Class
$vbLabelText   $csharpLabel

Voici à quoi ressemble le résultat :

Comment imprimer un fichier sur une imprimante en C#: Figure 8 - Sortie d'impression personnalisée

Si l'imprimante physique n'est pas installée, l'imprimante par défaut est utilisée pour imprimer les documents PDF. Pour obtenir toutes les imprimantes disponibles, vous pouvez également utiliser la méthode GetPrinterNames.

// Retrieve printers' name
List<string> printersName = Printer.GetPrinterNames();
foreach (string printer in printersName)
{
    Console.WriteLine(printer);
}
// Retrieve printers' name
List<string> printersName = Printer.GetPrinterNames();
foreach (string printer in printersName)
{
    Console.WriteLine(printer);
}
' Retrieve printers' name
Dim printersName As List(Of String) = Printer.GetPrinterNames()
For Each printer As String In printersName
	Console.WriteLine(printer)
Next printer
$vbLabelText   $csharpLabel

Pour plus d'informations détaillées, veuillez visiter la page de documentation.

Conclusion

L'impression de fichiers en C# est une tâche gérable grâce aux fonctionnalités fournies par l'espace de noms System.Drawing.Printing. En gérant l'événement PrintPage et en utilisant la classe PrintDocument, vous pouvez adapter le processus d'impression à vos exigences spécifiques. Ce guide complet a couvert les étapes fondamentales de l'impression de fichiers à partir d'une application C#, vous offrant ainsi une base solide pour intégrer cette fonctionnalité dans vos projets. Au fur et à mesure de nos recherches, nous nous sommes tournés vers IronPrint pour obtenir des options de personnalisation supplémentaires, telles que la gestion de différents types de fichiers, l'incorporation d'images et l'amélioration du formatage en fonction des besoins de l'application.

L'intégration d'IronPrint dans votre application C# simplifie le processus d'impression de fichiers sur une imprimante. Avec la prise en charge de divers formats de fichiers et des paramètres d'impression personnalisables, IronPrint constitue une solution robuste pour les développeurs qui cherchent à améliorer leurs capacités d'impression. Que vous travailliez sur un projet de bureau, Web ou mobile, IronPrint rationalise le processus d'impression, ce qui en fait un complément précieux à votre boîte à outils .NET.

IronPrint propose une version d'essai gratuite pour plus d'informations. Téléchargez la bibliothèque à partir de ici et essayez-la.

Chaknith Bin
Ingénieur logiciel
Chaknith travaille sur IronXL et IronBarcode. Il possède une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, une documentation améliorée et une expérience globale enrichie.
< PRÉCÉDENT
Comment imprimer un code QR en C#
SUIVANT >
Imprimer des codes QR en C# avec IronPrint