UTILISATION D'IRONPRINT

Comment imprimer avec une imprimante réseau en C#

Chaknith Bin
Chaknith Bin
juin 6, 2024
Partager:

Introduction

L'impression programmée sur des imprimantes de réseau est une tâche commune à plusieurs applications logicielles. Que vous créiez un ordinateur de bureau, une application mobile ou un service web, la possibilité d'envoyer des documents directement à une imprimante réseau peut considérablement améliorer la convivialité et l'efficacité de votre logiciel. Dans cet article, nous allons explorer comment imprimer sur une imprimante réseau en utilisant C# et IronPrint de Iron Software.

Comment imprimer avec une imprimante réseau dans C# ;

  1. Créer un nouveau projet pour l'impression de documents en utilisant IronPrint.

  2. Installez IronPrint sur un nouveau projet.

  3. Liste des imprimantes réseau disponibles pour l'impression de documents.

  4. Imprimez des documents PDF en utilisant IronPrint.

  5. Imprimez des documents PDF en utilisant IronPrint avec Dialogue.

  6. Impression avancée avec paramètres d'impression.

Mise en place de l'environnement

Avant d'entrer dans la partie codage, assurons-nous que notre environnement est correctement configuré. Pour imprimer sur une imprimante réseau en C#, vous devez disposer des éléments suivants :

  1. Assurez-vous qu'une imprimante réseau est accessible à partir de la machine où votre application C# sera exécutée.

  2. L'adresse réseau de l'imprimante (adresse IP ou nom de l'imprimante réseau).

  3. Pilote(s) d'imprimante nécessaire(s) installé(s) sur la machine.

  4. Privilèges administratifs pour installer des imprimantes ou des pilotes si nécessaire.

IronPrint

Avant de plonger dans les détails de la mise en œuvre, familiarisons-nous avec la manière de démarrer avec IronPrint :

  1. Installation : IronPrint peut être facilement installé via le gestionnaire de packages NuGet. Il suffit de visiter la page NuGet et de suivre les instructions d'installation.

  2. Documentation : Consultez la documentation officielle pour un guide de démarrage rapide et une référence API complète.

    Compatibilité et assistance : IronPrint offre une compatibilité et une assistance étendues dans divers environnements et types de projets :

    • Prise en charge des versions de .NET : IronPrint prend en charge C#, VB.NET et F#, y compris .NET 8,7,6,5 et Core 3.1+.
    • Systèmes d'exploitation et environnements : IronPrint est compatible avec Windows (7+), macOS (10+), iOS (11+), et Android API 21+ (v5 "Lollipop").
    • Types de projet : Que vous développiez des applications mobiles (Xamarin, MAUI, Avalonia), de bureau (WPF, MAUI, Windows Avalonia), ou des applications console, IronPrint répond à vos besoins.

    Voyons maintenant comment imprimer avec IronPrint à l'aide de l'exemple suivant.

using IronPrint;
// Configure printer setting
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 220;
printSettings.NumberOfCopies = 10;
printSettings.PaperOrientation = PaperOrientation.Portrait;
// Print the document
Printer.Print("awesomeIronPrint.pdf", printSettings);
using IronPrint;
// Configure printer setting
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 220;
printSettings.NumberOfCopies = 10;
printSettings.PaperOrientation = PaperOrientation.Portrait;
// Print the document
Printer.Print("awesomeIronPrint.pdf", printSettings);
Imports IronPrint
' Configure printer setting
Private printSettings As New PrintSettings()
printSettings.Dpi = 220
printSettings.NumberOfCopies = 10
printSettings.PaperOrientation = PaperOrientation.Portrait
' Print the document
Printer.Print("awesomeIronPrint.pdf", printSettings)
$vbLabelText   $csharpLabel

System.Printing

L'espace de noms System.Printing en C# contient des classes et des interfaces qui permettent aux développeurs d'interagir avec les imprimantes, les files d'attente d'impression, les serveurs d'impression et les travaux d'impression de manière programmée. Parmi les classes et interfaces clés de cet espace de noms, on peut citer

  1. PrintQueue : Représente une imprimante ou un périphérique d'impression connecté au système.

  2. PrintServer : Représente un serveur d'impression sur le réseau.

  3. PrintSystemJobInfo : Fournit des informations sur un travail d'impression, comme son statut et ses propriétés.

  4. PrintTicket : Représente les paramètres d'un travail d'impression, y compris le format du papier, l'orientation et la qualité d'impression.

    Commencer avec System.Printing : Avant de plonger dans le code, assurons-nous d'avoir une compréhension de base du fonctionnement de l'impression avec System.Printing :

  5. Sélection de PrintQueue : Vous devez identifier l'objet PrintQueue représentant l'imprimante que vous souhaitez utiliser pour l'impression.

  6. Configuration de PrintTicket : Vous pouvez optionnellement configurer l'objet PrintTicket pour spécifier des paramètres d'impression tels que le format papier, l'orientation, et le nombre de copies.

  7. Impression de documents : Enfin, vous envoyez le document à imprimer à la PrintQueue sélectionnée.

    Implémentation de l'impression de documents avec System.Printing : Maintenant, parcourons le processus d'impression d'un document en utilisant System.Printing avec l'exemple suivant :

    Voici le code source :

using System;
using System.IO;
using System.Printing;
class Program
{
    static void Main(string[] args)
    {
        // Specify the path to the document to be printed on the local printer
        string documentPath = "path/to/your/document.pdf";
        // Instantiate a Printer Server object representing the local print server
        using (PrintServer printServer = new PrintServer())
        {
            // Get the default PrintQueue from the PrintServer default 
            PrintQueue defaultPrintQueue = printServer.DefaultPrintQueue;
            // Create a PrintTicket object to specify print settings (optional)
            PrintTicket printTicket = new PrintTicket();
            // Configure print settings, e.g., number of copies, paper size, orientation
            printTicket.CopyCount = 1;
            // Print the document to the default PrintQueue with the specified PrintTicket
            defaultPrintQueue.AddJob("MyPrintJob", documentPath, false, printTicket);
        }
        Console.WriteLine("Document sent to print queue.");
    }
}
using System;
using System.IO;
using System.Printing;
class Program
{
    static void Main(string[] args)
    {
        // Specify the path to the document to be printed on the local printer
        string documentPath = "path/to/your/document.pdf";
        // Instantiate a Printer Server object representing the local print server
        using (PrintServer printServer = new PrintServer())
        {
            // Get the default PrintQueue from the PrintServer default 
            PrintQueue defaultPrintQueue = printServer.DefaultPrintQueue;
            // Create a PrintTicket object to specify print settings (optional)
            PrintTicket printTicket = new PrintTicket();
            // Configure print settings, e.g., number of copies, paper size, orientation
            printTicket.CopyCount = 1;
            // Print the document to the default PrintQueue with the specified PrintTicket
            defaultPrintQueue.AddJob("MyPrintJob", documentPath, false, printTicket);
        }
        Console.WriteLine("Document sent to print queue.");
    }
}
Imports System
Imports System.IO
Imports System.Printing
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Specify the path to the document to be printed on the local printer
		Dim documentPath As String = "path/to/your/document.pdf"
		' Instantiate a Printer Server object representing the local print server
		Using printServer As New PrintServer()
			' Get the default PrintQueue from the PrintServer default 
			Dim defaultPrintQueue As PrintQueue = printServer.DefaultPrintQueue
			' Create a PrintTicket object to specify print settings (optional)
			Dim printTicket As New PrintTicket()
			' Configure print settings, e.g., number of copies, paper size, orientation
			printTicket.CopyCount = 1
			' Print the document to the default PrintQueue with the specified PrintTicket
			defaultPrintQueue.AddJob("MyPrintJob", documentPath, False, printTicket)
		End Using
		Console.WriteLine("Document sent to print queue.")
	End Sub
End Class
$vbLabelText   $csharpLabel

IronPrint Vs System.Printing

Comment imprimer avec une imprimante réseau en C#: Figure 1 - Tableau comparatif rapide entre IronPrint et System.Printing

Ce tableau offre un aperçu rapide des fonctionnalités et caractéristiques de IronPrint et System.Printing, aidant les développeurs à prendre des décisions éclairées en fonction de leurs besoins spécifiques et des plateformes ciblées.

Étape 1 : Créer un nouveau projet pour l'impression de documents à l'aide d'IronPrint

Créez une application console dans Visual Studio comme indiqué ci-dessous.

Comment imprimer avec une imprimante réseau en C#: Figure 2 - Création d'une application console

Indiquez le nom et la localisation du projet.

Comment imprimer avec une imprimante réseau en C#: Figure 3 - Fournir un nom de projet

Sélectionnez la version .NET.

Comment imprimer avec une imprimante réseau en C# : Figure 4 - Sélectionnez la version .NET appropriée

Le projet est maintenant créé et prêt à être codé.

Étape 2 : Installer IronPrint sur un nouveau projet

Installez IronPrint à partir du gestionnaire de paquets de Visual Studio comme indiqué ci-dessous.

Comment imprimer avec une imprimante réseau en C#: Figure 5 - Rechercher IronPrint via le gestionnaire de packages de Visual Studio

IronPrint peut également être installé à l'aide de la commande ci-dessous :

Install-Package IronPrint

Étape 3 : Liste des imprimantes réseau disponibles pour l'impression de documents

Pour dresser la liste des noms d'imprimantes à l'aide d'IronPrint, utilisez le code ci-dessous :

using IronPrint;
namespace IronPrintDemo;
public class Program
{
    public static void Main()
    {
        // Get printer names using printer drivers
        List<string> printersName = Printer.GetPrinterNames();
        foreach (var printer in printersName)
        {
            Console.WriteLine(printer);
        }
    }
}
using IronPrint;
namespace IronPrintDemo;
public class Program
{
    public static void Main()
    {
        // Get printer names using printer drivers
        List<string> printersName = Printer.GetPrinterNames();
        foreach (var printer in printersName)
        {
            Console.WriteLine(printer);
        }
    }
}
Imports IronPrint
Namespace IronPrintDemo
	Public Class Program
		Public Shared Sub Main()
			' Get printer names using printer drivers
			Dim printersName As List(Of String) = Printer.GetPrinterNames()
			For Each printer In printersName
				Console.WriteLine(printer)
			Next printer
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Explication du code

  1. Utilisez Printer.GetPrinterNames pour obtenir tous les pilotes d'imprimante disponibles.

  2. Imprimez les noms en utilisant Console.WriteLine.

Sortie

Comment imprimer avec une imprimante réseau en C# : Figure 6 - Exemple de sortie des imprimantes disponibles

Étape 4 : Imprimer le document PDF à l'aide d'IronPrint

Utilisez le code ci-dessous pour imprimer le document en silence :

using IronPrint;
namespace IronPrintDemo;
public class Program
{
    public static void Main()
    {
        // Print the document silently
        Printer.Print("sample.pdf");
    }
}
using IronPrint;
namespace IronPrintDemo;
public class Program
{
    public static void Main()
    {
        // Print the document silently
        Printer.Print("sample.pdf");
    }
}
Imports IronPrint
Namespace IronPrintDemo
	Public Class Program
		Public Shared Sub Main()
			' Print the document silently
			Printer.Print("sample.pdf")
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Après l'exécution, le document est ajouté à la file d'attente d'impression, comme le montre la sortie.

Sortie

Comment imprimer avec une imprimante réseau en C#: Figure 7 - Exemple de sortie montrant le document ajouté à la file d'attente d'impression

Étape 5 : Imprimer le document PDF à l'aide d'IronPrint avec la boîte de dialogue

Utilisez le code ci-dessous pour imprimer le document avec le dialogue :

using IronPrint;
namespace IronPrintDemo;
public class Program
{
    public static void Main()
    {
        // Print with Dialog
        Printer.ShowPrintDialog("sample.pdf");
    }
}
using IronPrint;
namespace IronPrintDemo;
public class Program
{
    public static void Main()
    {
        // Print with Dialog
        Printer.ShowPrintDialog("sample.pdf");
    }
}
Imports IronPrint
Namespace IronPrintDemo
	Public Class Program
		Public Shared Sub Main()
			' Print with Dialog
			Printer.ShowPrintDialog("sample.pdf")
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Explication du code

  1. En utilisant ShowPrintDialog de IronPrint, nous pouvons imprimer avec une boîte de dialogue.

  2. Une fois la boîte de dialogue ouverte, sélectionnez l'imprimante requise pour imprimer le document

Sortie

Comment imprimer avec une imprimante réseau en C# : Figure 8 - Sélectionnez l'imprimante correcte

Étape 6 : Avancer l'impression avec les paramètres d'impression

L'impression de documents avec des paramètres avancés est prise en charge par IronPrint. Il prend en charge les propriétés suivantes :

  1. PaperSize : Spécifie les dimensions du papier utilisées par l'imprimante.

  2. PaperOrientation : Définit l'orientation du papier, telle qu'Automatique, Portrait ou Paysage.

  3. DPI : Définit la résolution d'impression souhaitée en points par pouce. La valeur par défaut est 300, couramment utilisée dans l'impression commerciale. Le DPI réel peut être limité par les capacités de l'imprimante.

  4. NumberOfCopies : Indique le nombre de copies identiques à imprimer pour un document.

  5. PrinterName : Spécifie le nom de l'imprimante désignée pour les tâches d'impression.

  6. PaperMargins : Détermine les marges pour l'impression, mesurées en millimètres.

  7. Grayscale : Une valeur booléenne déterminant si l'impression se fait en niveaux de gris. La valeur par défaut est false.

    Voyons maintenant un exemple de code :

using IronPrint;
namespace IronPrintDemo;
public class Program
{
    public static void Main()
    {
        // Configure custom print setting
        PrintSettings printSettings = new PrintSettings();
        printSettings.Dpi = 150;
        printSettings.NumberOfCopies = 2;
        printSettings.PaperOrientation = PaperOrientation.Portrait;
        // Print the required document
        Printer.Print("sample.pdf", printSettings);
    }
}
using IronPrint;
namespace IronPrintDemo;
public class Program
{
    public static void Main()
    {
        // Configure custom print setting
        PrintSettings printSettings = new PrintSettings();
        printSettings.Dpi = 150;
        printSettings.NumberOfCopies = 2;
        printSettings.PaperOrientation = PaperOrientation.Portrait;
        // Print the required document
        Printer.Print("sample.pdf", printSettings);
    }
}
Imports IronPrint
Namespace IronPrintDemo
	Public Class Program
		Public Shared Sub Main()
			' Configure custom print setting
			Dim printSettings As New PrintSettings()
			printSettings.Dpi = 150
			printSettings.NumberOfCopies = 2
			printSettings.PaperOrientation = PaperOrientation.Portrait
			' Print the required document
			Printer.Print("sample.pdf", printSettings)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Explication du code

  1. Le code commence par l'importation de l'espace de noms IronPrint, qui contient vraisemblablement les classes et méthodes nécessaires à l'impression.

  2. À l'intérieur de l'espace de noms IronPrintDemo, il y a une classe nommée Program déclarée comme publique.

  3. La méthode Main sert de point d'entrée au programme.

  4. Dans la méthode Main :

    • Un objet PrintSettings nommé printSettings est instancié pour configurer des paramètres d'impression personnalisés.

    • La propriété Dpi de printSettings est définie sur 150, ce qui indique une résolution d'impression de 150 points par pouce.

    • La propriété NumberOfCopies de printSettings est définie sur 2, spécifiant que deux copies identiques du document seront imprimées.

    • La propriété PaperOrientation de printSettings est définie sur PaperOrientation.Portrait, indiquant que le document sera imprimé en orientation portrait.
  5. Enfin, l'imprimante. La méthode Print est invoquée avec les paramètres "sample.pdf" (le nom du document à imprimer) et printSettings (les paramètres d'impression personnalisés). Cette méthode gère vraisemblablement le processus d'impression en utilisant les paramètres spécifiés.

Sortie

Comment imprimer avec une imprimante réseau en C#: Figure 9 - Exemple de sortie montrant le document PDF ajouté à la file d'attente d'impression pour l'impression

Licence

IronPrint de Iron Software est une bibliothèque d'entreprise et nécessite une licence pour fonctionner. L'ajout d'une clé de licence IronPrint permet au projet de vivre sans restrictions ni filigranes. Achetez une licence ici ou inscrivez-vous pour une clé d'essai gratuite de 30 jours ici.

Une fois la clé de licence obtenue, elle doit être placée dans le fichier appSettings.json de l'application

{
"IronPrint.License.LicenseKey": "IRONPRINT.KEY"
}

Cette fonction permet d'imprimer des documents sans restrictions ni filigranes.

Conclusion

En résumé, IronPrint et System.Printing ont chacun leurs points forts et conviennent à différents scénarios. IronPrint fournit une solution simplifiée et multiplateforme axée sur la simplicité et la polyvalence, tandis que System.Printing offre une intégration native et un contrôle précis, en particulier pour les applications basées sur Windows. Les développeurs doivent tenir compte de leurs exigences spécifiques et de leurs plates-formes cibles lorsqu'ils choisissent entre ces bibliothèques d'impression pour leurs projets C#.

IronPrint simplifie l'impression de documents au sein des applications .NET en fournissant une API conviviale et une compatibilité étendue entre diverses plates-formes et divers types de projets. En suivant les étapes décrites dans cet article, vous pouvez intégrer de manière transparente la fonctionnalité d'impression dans vos projets .NET, améliorant ainsi leur convivialité et leur productivité. Explorez les possibilités offertes par IronPrint et accédez à un monde d'impression de documents efficace au sein de vos applications.

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.
SUIVANT >
Comment imprimer un code QR en C#