Comment migrer de RawPrint à IronPDF en C#
Passer de RawPrintà IronPDF est moins un remplacement qu'une refonte : RawPrintet IronPDF résolvent des problèmes différents, et l'encadrement honnête pour la plupart des équipes est " complément ", pas " remplacer ". Ce guide examine les cas oùIronPDF subsume réellement un pipeline RawPrint(mettre en place un PDF, puis pousser les flux de travail sur Windows) et signale les cas où vous devez garder RawPrinten place (ESC/POS, ZPL, EPL, PCL brut).
Pourquoi migrer de RawPrintà IronPDF
Comprendre RawPrint
RawPrint est le package NuGet RawPrint (frogmorecs/RawPrint, v0.5.0, dernière version en septembre 2019, maintenant non répertorié/historique sur nuget.org). C'est un mince wrapper P/Invoke sur winspool.Drv qui envoie un flux d'octets directement au spouleur d'impression Fenêtresavec le type de données RAW. L'API publique est petite : une classe Printer implémentant IPrinter dans l'espace de noms RawPrint, exposant les surcharges PrintRawFile et PrintRawStream. Les appels Win32 sous-jacents (OpenPrinter, StartDocPrinter, WritePrinter, EndDocPrinter, ClosePrinter) sont cachés derrière cette interface — vous ne les écrivez pas vous-même lors de l'utilisation du package.
Cela fait de RawPrintun bon choix pour les imprimantes de reçus ESC/POS, les imprimantes d'étiquettes ZPL/EPL Zebra et les travaux hérités PCL/PostScript où vous avez déjà produit les octets que le firmware de l'imprimante attend. Pour les développeurs ciblant des environnements spécifiques à Fenêtreset nécessitant une communication directe avec l'imprimante, RawPrintoffre un moyen efficace de contourner les couches intermédiaires telles que les pilotes ou les interfaces graphiques.
Cependant, RawPrintn'est pas une bibliothèque PDF — il envoie simplement des données aux imprimantes. Si votre application construit actuellement un PDF dans une autre bibliothèque, puis le remet à RawPrint, tout le pipeline peut généralement s'effondrer dans IronPDF sur Windows.
Le problème principal : pas de création de PDF
RawPrint présente des limitations notables qui le rendent inadapté aux flux de travail documentaires modernes :
-
Pas de création de PDF : RawPrintse concentre uniquement sur la transmission de données et ne propose aucune fonctionnalité de création, de rendu ou de manipulation de PDF.
-
Très bas niveau : En manipulant directement des octets bruts, les développeurs doivent avoir une connaissance approfondie du langage de commande de l'imprimante, ce qui le rend moins adapté aux tâches d'impression de documents simples.
-
Spécifique à la plateforme : Il dépend des spouleurs d'impression Windows, ce qui limite son applicabilité multiplateforme.
-
Aucun traitement de document : simple transmission d'octets sans aucune capacité de rendu.
- Contrôle limité : options de configuration minimales des travaux d'impression.
Comparaison entre RawPrintet IronPDF
| Fonction | RawPrint | IronPDF |
|---|---|---|
| Fonctionnalité | Envoie les données d'impression brutes directement à l'imprimante | Création et manipulation complètes de fichiers PDF |
| Cas d'utilisation | Impression spécialisée comme les étiquettes | Gestion et création de documents généraux |
| Dépendance de la plate-forme | Spécifique à Windows | Multiplateforme |
| Complexité | Bas niveau, nécessite des connaissances en matière de commande d'imprimante | API de haut niveau et conviviale |
| Création de PDF | Non | Oui |
| Créer un PDF à partir de HTML | Non | Oui |
| Créer un PDF à partir d'une URL | Non | Oui |
| Éditer/modifier des PDF | Non | Oui |
| Fusionner/séparer des PDF | Non | Oui |
| Imprimer le PDF existant | Oui (octets bruts) | Oui (API de haut niveau) |
| Contrôle d'impression | Basique | Options complètes |
| Idéal pour | Besoins en matière d'accès direct à l'imprimante | Tâches liées au PDF dans les applications web et de bureau |
| Flexibilité | Limité par la manipulation d'octets bruts | Extensif avec de multiples fonctionnalités |
Contrairement à RawPrint,IronPDF propose une API robuste et polyvalente permettant de gérer les PDF de manière exhaustive. En tant que nom établi dans l'environnement .NET,IronPDF permet aux développeurs de créer, d'éditer et de convertir des PDF sans effort sur toutes les plateformes.
Pour les équipes ciblant le .NET moderne,IronPDF offre une compatibilité multiplateforme que RawPrint, par conception, n'offre pas.
Avant de commencer
Prérequis
- Environnement .NET : .NET Framework 4.6.2+ ou .NET Core 3.1+ / .NET 5/6/7/8/9+
- Accès à NuGet : possibilité d'installer des packages NuGet
- Licence IronPDF : Obtenez votre clé de licence sur IronPDF
Modifications du paquet NuGet
# Remove RawPrint
dotnet remove package RawPrint
# Install IronPDF
dotnet add package IronPdf
# Remove RawPrint
dotnet remove package RawPrint
# Install IronPDF
dotnet add package IronPdf
Configuration de la licence
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Trouver l'utilisation de RawPrint
# Identify all RawPrintusage
grep -r "using RawPrint" --include="*.cs" .
grep -r "PrintRawFile\|PrintRawStream" --include="*.cs" .
# Identify all RawPrintusage
grep -r "using RawPrint" --include="*.cs" .
grep -r "PrintRawFile\|PrintRawStream" --include="*.cs" .
Remarque : les wrappers P/Invoke faits à la main autour de winspool.Drv utilisent parfois le nom de classe RawPrinterHelper et ressemblent superficiellement à l'utilisation de RawPrint, mais ils ne sont pas le package — ils appellent directement le spouleur Win32. Le package lui-même ne fait qu'exposer IPrinter avec PrintRawFile et PrintRawStream.
Référence API complète
Modifications de l'espace de nommage
// Before: RawPrint
using RawPrint;
// After: IronPDF
using IronPdf;
// Before: RawPrint
using RawPrint;
// After: IronPDF
using IronPdf;
Imports IronPdf
Mappages de l'API de base
| RawPrint (API publique réelle) | IronPDF | Notes |
|---|---|---|
new Printer() / IPrinter |
new ChromePdfRenderer() / PdfDocument |
RawPrint envoie des octets ;IronPDF génère des PDFs |
printer.PrintRawFile(name, path, paused) |
PdfDocument.FromFile(path).Print() |
IronPDF réinterprète au système d'impression de l'OS ; pas RAW |
printer.PrintRawStream(name, stream, doc, paused) |
new PdfDocument(stream).Print() |
Même mise en garde |
événement printer.OnJobCreated |
n/a | Utilisez les options d'impression d'IronPDF à la place |
| n/a | ChromePdfRenderer.RenderHtmlAsPdf() |
Créer des PDF |
| n/a | PdfDocument.Merge() |
Fusionner des PDF |
| n/a | pdf.ApplyWatermark() |
Ajouter des filigranes |
IronPDF imprime en remettant le document au système d'exploitation, non pas en envoyant des octets bruts au spouleur. Si votre imprimante nécessite le type de données RAW (ESC/POS, ZPL, certaines configurations PCL), cela relève de la compétence de RawPrintet IronPDF ne peut s'y substituer.
Exemples de migration de code
Exemple 1 : Conversion HTML vers PDF
Avant (RawPrint):
// NuGet: Install-Package RawPrint
using System;
using System.IO;
using System.Text;
using RawPrint;
class Program
{
static void Main()
{
// RawPrintcannot convert HTML to PDF. Sending raw HTML bytes to a printer just
// prints the HTML source as text — the markup is not rendered.
string html = "<html><body><h1>Hello World</h1></body></html>";
byte[] data = Encoding.ASCII.GetBytes(html);
IPrinter printer = new Printer();
using (var stream = new MemoryStream(data))
{
// PrintRawStream(printerName, stream, documentName, paused)
printer.PrintRawStream("Microsoft Print to PDF", stream, "HTML Document", false);
}
Console.WriteLine("Raw HTML bytes sent to spooler (not rendered).");
}
}
// NuGet: Install-Package RawPrint
using System;
using System.IO;
using System.Text;
using RawPrint;
class Program
{
static void Main()
{
// RawPrintcannot convert HTML to PDF. Sending raw HTML bytes to a printer just
// prints the HTML source as text — the markup is not rendered.
string html = "<html><body><h1>Hello World</h1></body></html>";
byte[] data = Encoding.ASCII.GetBytes(html);
IPrinter printer = new Printer();
using (var stream = new MemoryStream(data))
{
// PrintRawStream(printerName, stream, documentName, paused)
printer.PrintRawStream("Microsoft Print to PDF", stream, "HTML Document", false);
}
Console.WriteLine("Raw HTML bytes sent to spooler (not rendered).");
}
}
Imports System
Imports System.IO
Imports System.Text
Imports RawPrint
Class Program
Shared Sub Main()
' RawPrint cannot convert HTML to PDF. Sending raw HTML bytes to a printer just
' prints the HTML source as text — the markup is not rendered.
Dim html As String = "<html><body><h1>Hello World</h1></body></html>"
Dim data As Byte() = Encoding.ASCII.GetBytes(html)
Dim printer As IPrinter = New Printer()
Using stream As New MemoryStream(data)
' PrintRawStream(printerName, stream, documentName, paused)
printer.PrintRawStream("Microsoft Print to PDF", stream, "HTML Document", False)
End Using
Console.WriteLine("Raw HTML bytes sent to spooler (not rendered).")
End Sub
End Class
Après (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Dim renderer = New ChromePdfRenderer()
Dim html As String = "<html><body><h1>Hello World</h1></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF created successfully")
End Sub
End Class
L'inadéquation architecturale est visible même avec l'API amie du package : RawPrintenvoie des octets à un spouleur Fenêtresavec le type de données RAW, donc lui donner du HTML cause simplement à l'imprimante de l'imprimer en texte source. Le ChromePdfRenderer de IronPDF rend en fait le balisage. Voir la documentation HTML vers PDF pour des exemples complets.
Exemple 2 : Conversion d'une URL en PDF
Avant (RawPrint):
// NuGet: Install-Package RawPrint
using System;
using System.IO;
using System.Net.Http;
using System.Text;
using RawPrint;
class Program
{
static void Main()
{
// RawPrintcannot fetch a URL or render a web page; downloading the HTML and
// shipping it to the spooler just prints the raw HTML source.
using (var client = new HttpClient())
{
string htmlSource = client.GetStringAsync("https://example.com").GetAwaiter().GetResult();
byte[] data = Encoding.UTF8.GetBytes(htmlSource);
IPrinter printer = new Printer();
using (var stream = new MemoryStream(data))
{
printer.PrintRawStream("Microsoft Print to PDF", stream, "Web Page", false);
}
Console.WriteLine("Raw HTML sent to spooler (not a rendered PDF).");
}
}
}
// NuGet: Install-Package RawPrint
using System;
using System.IO;
using System.Net.Http;
using System.Text;
using RawPrint;
class Program
{
static void Main()
{
// RawPrintcannot fetch a URL or render a web page; downloading the HTML and
// shipping it to the spooler just prints the raw HTML source.
using (var client = new HttpClient())
{
string htmlSource = client.GetStringAsync("https://example.com").GetAwaiter().GetResult();
byte[] data = Encoding.UTF8.GetBytes(htmlSource);
IPrinter printer = new Printer();
using (var stream = new MemoryStream(data))
{
printer.PrintRawStream("Microsoft Print to PDF", stream, "Web Page", false);
}
Console.WriteLine("Raw HTML sent to spooler (not a rendered PDF).");
}
}
}
Imports System
Imports System.IO
Imports System.Net.Http
Imports System.Text
Imports RawPrint
Class Program
Shared Sub Main()
' RawPrint cannot fetch a URL or render a web page; downloading the HTML and
' shipping it to the spooler just prints the raw HTML source.
Using client As New HttpClient()
Dim htmlSource As String = client.GetStringAsync("https://example.com").GetAwaiter().GetResult()
Dim data As Byte() = Encoding.UTF8.GetBytes(htmlSource)
Dim printer As IPrinter = New Printer()
Using stream As New MemoryStream(data)
printer.PrintRawStream("Microsoft Print to PDF", stream, "Web Page", False)
End Using
Console.WriteLine("Raw HTML sent to spooler (not a rendered PDF).")
End Using
End Sub
End Class
Après (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
var renderer = new ChromePdfRenderer();
// Render a live website directly to PDF with full CSS, JavaScript, and images
var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.SaveAs("webpage.pdf");
Console.WriteLine("Website rendered to PDF successfully");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
var renderer = new ChromePdfRenderer();
// Render a live website directly to PDF with full CSS, JavaScript, and images
var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.SaveAs("webpage.pdf");
Console.WriteLine("Website rendered to PDF successfully");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Dim renderer = New ChromePdfRenderer()
' Render a live website directly to PDF with full CSS, JavaScript, and images
Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
pdf.SaveAs("webpage.pdf")
Console.WriteLine("Website rendered to PDF successfully")
End Sub
End Class
RawPrint ne peut pas rendre les pages Web — il ne fait qu'envoyer les octets au spouleur. Télécharger du HTML et le pousser à travers entraîne l'impression du texte source par l'imprimante, pas du contenu rendu. Le RenderUrlAsPdf() de IronPDF capture la page web entièrement rendue avec CSS, JavaScript et images. Pour en savoir plus, consultez nos tutoriels.
Exemple 3 : Formatage des documents
Avant (RawPrint):
// NuGet: Install-Package RawPrint
using System;
using System.IO;
using System.Text;
using RawPrint;
class Program
{
static void Main()
{
// RawPrinthas no concept of fonts, margins, or layout — formatting must be
// expressed in the printer's own command language (PCL, PostScript, ESC/POS, ZPL).
// Example: a tiny PCL5 stream that selects portrait and a 16.66cpi font.
string pclCommands = "\x1B&l0O\x1B(s0p16.66h8.5v0s0b3T";
string text = "Plain text document - formatting must be expressed in printer command language";
byte[] data = Encoding.ASCII.GetBytes(pclCommands + text);
IPrinter printer = new Printer();
using (var stream = new MemoryStream(data))
{
printer.PrintRawStream("HP LaserJet", stream, "Raw Document", false);
}
}
}
// NuGet: Install-Package RawPrint
using System;
using System.IO;
using System.Text;
using RawPrint;
class Program
{
static void Main()
{
// RawPrinthas no concept of fonts, margins, or layout — formatting must be
// expressed in the printer's own command language (PCL, PostScript, ESC/POS, ZPL).
// Example: a tiny PCL5 stream that selects portrait and a 16.66cpi font.
string pclCommands = "\x1B&l0O\x1B(s0p16.66h8.5v0s0b3T";
string text = "Plain text document - formatting must be expressed in printer command language";
byte[] data = Encoding.ASCII.GetBytes(pclCommands + text);
IPrinter printer = new Printer();
using (var stream = new MemoryStream(data))
{
printer.PrintRawStream("HP LaserJet", stream, "Raw Document", false);
}
}
}
Imports System
Imports System.IO
Imports System.Text
Imports RawPrint
Class Program
Shared Sub Main()
' RawPrint has no concept of fonts, margins, or layout — formatting must be
' expressed in the printer's own command language (PCL, PostScript, ESC/POS, ZPL).
' Example: a tiny PCL5 stream that selects portrait and a 16.66cpi font.
Dim pclCommands As String = ChrW(&H1B) & "&l0O" & ChrW(&H1B) & "(s0p16.66h8.5v0s0b3T"
Dim text As String = "Plain text document - formatting must be expressed in printer command language"
Dim data As Byte() = Encoding.ASCII.GetBytes(pclCommands & text)
Dim printer As IPrinter = New Printer()
Using stream As New MemoryStream(data)
printer.PrintRawStream("HP LaserJet", stream, "Raw Document", False)
End Using
End Sub
End Class
Après (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
var renderer = new ChromePdfRenderer();
string html = @"
<html>
<head>
<style>
body { font-family: Arial; margin: 40px; }
h1 { color: #2c3e50; font-size: 24px; }
p { line-height: 1.6; color: #34495e; }
.highlight { background-color: yellow; font-weight: bold; }
</style>
</head>
<body>
<h1>Formatted Document</h1>
<p>This is a <span class='highlight'>beautifully formatted</span> document with CSS styling.</p>
<p>Complex layouts, fonts, colors, and images are fully supported.</p>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("formatted.pdf");
Console.WriteLine("Formatted PDF created successfully");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
var renderer = new ChromePdfRenderer();
string html = @"
<html>
<head>
<style>
body { font-family: Arial; margin: 40px; }
h1 { color: #2c3e50; font-size: 24px; }
p { line-height: 1.6; color: #34495e; }
.highlight { background-color: yellow; font-weight: bold; }
</style>
</head>
<body>
<h1>Formatted Document</h1>
<p>This is a <span class='highlight'>beautifully formatted</span> document with CSS styling.</p>
<p>Complex layouts, fonts, colors, and images are fully supported.</p>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("formatted.pdf");
Console.WriteLine("Formatted PDF created successfully");
}
}
Imports IronPdf
Imports System
Module Program
Sub Main()
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Dim renderer As New ChromePdfRenderer()
Dim html As String = "
<html>
<head>
<style>
body { font-family: Arial; margin: 40px; }
h1 { color: #2c3e50; font-size: 24px; }
p { line-height: 1.6; color: #34495e; }
.highlight { background-color: yellow; font-weight: bold; }
</style>
</head>
<body>
<h1>Formatted Document</h1>
<p>This is a <span class='highlight'>beautifully formatted</span> document with CSS styling.</p>
<p>Complex layouts, fonts, colors, and images are fully supported.</p>
</body>
</html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("formatted.pdf")
Console.WriteLine("Formatted PDF created successfully")
End Sub
End Module
Avec RawPrint, formater au-delà des octets bruts signifie rédiger manuellement des séquences de commandes d'imprimante comme "\x1B&l0O\x1B(s0p16.66h8.5v0s0b3T" et connaître le dialecte PCL ou PostScript de l'imprimante cible.IronPDF utilise du HTML et CSS standards — des mises en page complexes, des polices, des couleurs et des images sont entièrement pris en charge sans connaissance spécifique de l'imprimante.
Résumé de la comparaison des fonctionnalités
| Fonction | RawPrint | IronPDF |
|---|---|---|
| Création de PDF | ||
| HTML vers PDF | Non | Oui |
| URL vers PDF | Non | Oui |
| Créer à partir de zéro | Non | Oui |
| Manipulation de PDF | ||
| Fusionner des PDF | Non | Oui |
| Diviser les PDF | Non | Oui |
| Ajouter des filigranes | Non | Oui |
| Modifier un document existant | Non | Oui |
| Imprimer | ||
| Envoyer des octets RAW au spouleur | Oui | Non |
| ESC/POS, ZPL, PCL brut | Oui | Non |
| Imprimer via le système d'impression de l'OS | Non | Oui |
| Plateforme | ||
| Fenêtres | Oui | Oui |
| Linux | Non | Oui |
| macOS | Non | Oui |
| Docker | Non | Oui |
| Autres | ||
| Cryptage / Sécurité | Non | Oui |
| Signatures numériques | Non | Oui |
| PDF/A | Non | Oui |
Nouvelles capacités après la migration
Après avoir migré vers IronPDF, vous bénéficiez de fonctionnalités que RawPrintne peut pas vous offrir :
Fusion de fichiers PDF
var pdfs = pdfFiles.Select(f => PdfDocument.FromFile(f)).ToList();
var merged = PdfDocument.Merge(pdfs);
merged.SaveAs("complete.pdf");
var pdfs = pdfFiles.Select(f => PdfDocument.FromFile(f)).ToList();
var merged = PdfDocument.Merge(pdfs);
merged.SaveAs("complete.pdf");
Dim pdfs = pdfFiles.Select(Function(f) PdfDocument.FromFile(f)).ToList()
Dim merged = PdfDocument.Merge(pdfs)
merged.SaveAs("complete.pdf")
Imprimer avec les paramètres
var pdf = PdfDocument.FromFile("report.pdf");
pdf.Print(new PrintOptions
{
PrinterName = "HP LaserJet",
NumberOfCopies = 2,
DPI = 300,
GrayScale = false
});
var pdf = PdfDocument.FromFile("report.pdf");
pdf.Print(new PrintOptions
{
PrinterName = "HP LaserJet",
NumberOfCopies = 2,
DPI = 300,
GrayScale = false
});
Dim pdf = PdfDocument.FromFile("report.pdf")
pdf.Print(New PrintOptions With {
.PrinterName = "HP LaserJet",
.NumberOfCopies = 2,
.DPI = 300,
.GrayScale = False
})
Créer et imprimer en un seul flux de travail
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(@"
<h1>Invoice #12345</h1>
<p>Customer: John Doe</p>
<p>Amount: $150.00</p>
");
// Print directly
pdf.Print("HP LaserJet");
// Or save first
pdf.SaveAs("invoice.pdf");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(@"
<h1>Invoice #12345</h1>
<p>Customer: John Doe</p>
<p>Amount: $150.00</p>
");
// Print directly
pdf.Print("HP LaserJet");
// Or save first
pdf.SaveAs("invoice.pdf");
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("
<h1>Invoice #12345</h1>
<p>Customer: John Doe</p>
<p>Amount: $150.00</p>
")
' Print directly
pdf.Print("HP LaserJet")
' Or save first
pdf.SaveAs("invoice.pdf")
Liste de contrôle de la migration
Pré-migration
- Identifier toutes les utilisations de RawPrint(
PrintRawFile,PrintRawStream) - Classifiez chaque site d'appel : les PDFs allant aux imprimantes de bureau sont candidats pour IronPDF ; ESC/POS, ZPL, EPL, ou octets PCL/PostScript faits à la main devraient rester sur RawPrint
- Documenter les noms des imprimantes utilisés dans votre application —IronPDF imprime via le système d'impression de l'OS, donc les noms doivent encore être résolus
- Notez tout code externe de création de PDF pouvant être consolidé.
- Obtenez votre clé de licence IronPDF sur IronPDF
Mises à jour du code
- Installer le package IronPDF:
dotnet add package IronPdf - Ne supprimer RawPrintque lorsqu'il ne reste aucun canal d'octets bruts :
dotnet remove package RawPrint - Remplacer les pipelines create-then-RawPrint par
ChromePdfRendererpluspdf.Print() - Consolider la création de PDF et l'impression en un seul flux de travail sur Windows
- Ajouter l'initialisation de la licence au démarrage de l'application
Essai
- Impression de test sur les imprimantes cibles
- Vérifier la qualité d'impression
- Tester plusieurs copies
- Test d'impression silencieuse
- Vérification multiplateforme si nécessaire

