Wie man eine PDF aus einer Vorlage in C# generiert | IronPDF
Der Wechsel von RawPrintzu IronPDF ist weniger ein Ersatz als eine Umgestaltung: RawPrintund IronPDF lösen unterschiedliche Probleme, und der ehrliche Rahmen für die meisten Teams ist 'Ergänzung', nicht 'Ersatz'. Dieser Leitfaden erläutert die Fälle, in denen IronPDF tatsächlich eine RawPrint-Pipeline übernimmt (Erstellen-eines-PDF-und-es-dann-Schieben-Workflows auf Windows) und verweist auf die Fälle, in denen Sie RawPrintbehalten sollten (ESC/POS, ZPL, EPL, Raw PCL).
Warum von RawPrintzu IronPDF migrieren
RawPrintverstehen
RawPrint ist das NuGet-Paket RawPrint (frogmorecs/RawPrint, v0.5.0, zuletzt veröffentlicht im September 2019, nun auf nuget.org unaufgeführt/veraltet). Es ist ein dünner P/Invoke-Wrapper über winspool.Drv, der einen Bytestrom direkt an den Windows-Druckerwarteschlangendienst mit dem RAW-Datentyp sendet. Die öffentliche API ist klein: eine Printer-Klasse, die IPrinter im RawPrint-Namespace implementiert und PrintRawFile und PrintRawStream Überladungen bereitstellt. Die zugrunde liegenden Win32-Aufrufe (OpenPrinter, StartDocPrinter, WritePrinter, EndDocPrinter, ClosePrinter) sind hinter dieser Schnittstelle verborgen – Sie schreiben sie nicht selbst, wenn Sie das Paket verwenden.
Das macht RawPrintzu einer guten Wahl für ESC/POS-Belegdrucker, ZPL/EPL-Zebra-Etikettendrucker und Legacy-PCL/PostScript-Jobs, bei denen Sie bereits die Bytes erstellt haben, die die Drucker-Firmware erwartet. Für Entwickler, die auf Windows-spezifische Umgebungen abzielen und eine direkte Druckerkommunikation benötigen, bietet RawPrinteinen effizienten Weg, der Zwischenschichten wie Treiber oder grafische Schnittstellen umgeht.
RawPrint ist jedoch keine PDF-Bibliothek - es verschickt nur Daten an Drucker. Wenn Ihre Anwendung derzeit in einer anderen Bibliothek ein PDF erstellt und es dann an RawPrintübergibt, kann diese gesamte Pipeline auf Windowsnormalerweise zu IronPDF zusammenbrechen.
Das Kernproblem: Keine PDF-Erstellung
RawPrint hat bemerkenswerte Einschränkungen, die es für moderne Dokumenten-Workflows ungeeignet machen:
-
Keine PDF-Erstellung: RawPrintkonzentriert sich ausschließlich auf die Datenübertragung und bietet keine Funktionen zur PDF-Erstellung, -Darstellung oder -Bearbeitung.
-
Sehr niedrige Ebene: Da die Entwickler direkt mit Rohbytes arbeiten, müssen sie die Befehlssprache des Druckers genau verstehen, was diese Methode für einfache Dokumentendruckaufgaben weniger geeignet macht.
-
Plattformspezifisch: Es ist von Windows-Druckspoolern abhängig, was seine plattformübergreifende Anwendbarkeit einschränkt.
-
Keine Dokumentenverarbeitung: Nur Byte-Übertragung ohne Darstellungsmöglichkeiten.
- Eingeschränkte Kontrolle: Minimale Konfigurationsmöglichkeiten für Druckaufträge.
Vergleich zwischen RawPrintund IronPDF
| Feature | RawPrint | IronPDF |
|---|---|---|
| Funktionalität | Sendet Druckrohdaten direkt an den Drucker | Umfassende PDF-Erstellung und -Bearbeitung |
| Anwendungsfall | Spezialisierte Drucksachen wie Etiketten | Allgemeine Verwaltung und Erstellung von Dokumenten |
| Plattform-Abhängigkeit | Windows-spezifisch | Plattformübergreifend |
| Komplexität | Low-Level, erfordert Kenntnisse der Druckerbefehle | Benutzerfreundliche API auf hohem Niveau |
| PDF-Erstellung | Nein | Ja |
| PDF aus HTML erstellen | Nein | Ja |
| PDF von URL erstellen | Nein | Ja |
| PDFs bearbeiten/ändern | Nein | Ja |
| PDFs zusammenführen/aufteilen | Nein | Ja |
| Vorhandenes PDF ausdrucken | Ja (Rohbytes) | Ja (API auf hoher Ebene) |
| Drucksteuerung | Basic | Vollständige Optionen |
| Ideal für | Direkter Druckerzugriff erforderlich | PDF-bezogene Aufgaben in Web- und Desktop-Anwendungen |
| Flexibilität | Begrenzt durch die Verarbeitung von Rohbytes | Umfangreich mit mehreren Funktionalitäten |
Im Gegensatz zu RawPrintbietet IronPDF eine robuste und vielseitige API für den umfassenden Umgang mit PDFs. Als etablierter Name in der .NET-Umgebung ermöglicht IronPDF Entwicklern die mühelose plattformübergreifende Erstellung, Bearbeitung und Konvertierung von PDFs.
Für Teams, die auf modernes .NET abzielen, bietet IronPDF plattformübergreifende Kompatibilität, die RawPrintvon Design her nicht bietet.
Bevor Sie beginnen
Voraussetzungen
- .NET -Umgebung: .NET Framework 4.6.2+ oder .NET Core 3.1+ / .NET 5/6/7/8/9+
- NuGet -Zugriff: Möglichkeit zur Installation von NuGet -Paketen
- IronPDF -Lizenz: Ihren Lizenzschlüssel erhalten Sie unter IronPDF.
NuGet-Paketänderungen
# Remove RawPrint
dotnet remove package RawPrint
# Install IronPDF
dotnet add package IronPdf
# Remove RawPrint
dotnet remove package RawPrint
# Install IronPDF
dotnet add package IronPdf
Lizenz-Konfiguration
// 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"
Finden Sie die Verwendung von 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" .
Hinweis: Eigene P/Invoke-Wrapper um winspool.Drv verwenden manchmal den Klassennamen RawPrinterHelper und sehen oberflächlich RawPrintähnlich, aber sie sind nicht das Paket – sie rufen den Win32-Druckerwarteschlangendienst direkt auf. Das Paket selbst stellt nur IPrinter mit PrintRawFile und PrintRawStream zur Verfügung.
Komplette API-Referenz
Namensraumänderungen
// Before: RawPrint
using RawPrint;
// After: IronPDF
using IronPdf;
// Before: RawPrint
using RawPrint;
// After: IronPDF
using IronPdf;
Imports IronPdf
Kern-API-Zuordnungen
| RawPrint (echte öffentliche API) | IronPDF | Notizen |
|---|---|---|
new Printer() / IPrinter |
new ChromePdfRenderer() / PdfDocument |
RawPrint schiebt Bytes;IronPDF generiert PDFs |
printer.PrintRawFile(name, path, paused) |
PdfDocument.FromFile(path).Print() |
IronPDF rendert erneut zum Betriebssystem-Drucksystem; nicht RAW |
printer.PrintRawStream(name, stream, doc, paused) |
new PdfDocument(stream).Print() |
Gleicher Vorbehalt |
printer.OnJobCreated-Ereignis |
n/a | Verwenden Sie stattdessen IronPDF-Druckoptionen |
| n/a | ChromePdfRenderer.RenderHtmlAsPdf() |
PDFs erstellen |
| n/a | PdfDocument.Merge() |
PDFs zusammenführen |
| n/a | pdf.ApplyWatermark() |
Wasserzeichen hinzufügen |
IronPDF druckt, indem das Dokument an das Betriebssystem übergeben wird, nicht indem rohe Bytes an den Spooler gestreamt werden. Wenn Ihr Drucker den RAW-Datentyp erfordert (ESC/POS, ZPL, bestimmte PCL-Workflows), ist das die Domäne von RawPrintund IronPDF kann ihn nicht ersetzen.
Beispiele für die Code-Migration
Beispiel 1: Konvertierung von HTML in PDF
Vor (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
Nach (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
Die architektonische Missanpassung ist selbst mit der benutzerfreundlichen API des Pakets sichtbar: RawPrintverschickt Bytes an einen Windows-Spooler mit dem RAW-Datentyp, daher führt das Übergeben von HTML dazu, dass der Drucker den Quelltext druckt. IronPDFs ChromePdfRenderer rendert tatsächlich das Markup. Siehe die HTML zu PDF-Dokumentation für umfassende Beispiele.
Beispiel 2: Konvertierung von URL in PDF
Vor (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
Nach (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 kann keine Webseiten rendern - es verschickt nur Bytes an den Spooler. HTML herunterladen und durchschieben führt dazu, dass der Drucker den Quelltext druckt, nicht den gerenderten Inhalt. IronPDFs RenderUrlAsPdf() erfasst die vollständig gerenderte Webseite mit CSS, JavaScript und Bildern. Erfahren Sie mehr in unseren Tutorials.
Beispiel 3: Dokumentformatierung
Vor (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
Nach (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
Mit RawPrintbedeutet Formatierung über einfache Bytes hinaus, dass Sie Druckerbefehlsequenzen wie "\x1B&l0O\x1B(s0p16.66h8.5v0s0b3T" selbst erstellen und den PCL- oder PostScript-Dialekt des Ziel-Druckers kennen müssen.IronPDF verwendet standardisierte HTML und CSS – komplexe Layouts, Schriftarten, Farben und Bilder werden ohne druckerspezifisches Wissen vollständig unterstützt.
Zusammenfassung des Funktionsvergleichs
| Feature | RawPrint | IronPDF |
|---|---|---|
| PDF-Erstellung | ||
| HTML zu PDF | Nein | Ja |
| URL zu PDF | Nein | Ja |
| Von Grund auf neu erstellen | Nein | Ja |
| PDF-Bearbeitung | ||
| PDFs zusammenführen | Nein | Ja |
| PDFs teilen | Nein | Ja |
| Wasserzeichen hinzufügen | Nein | Ja |
| Vorhandenes bearbeiten | Nein | Ja |
| RAW-Bytes an den Spooler senden | Ja | Nein |
| ESC/POS, ZPL, Raw PCL | Ja | Nein |
| Über OS-Drucksystem drucken | Nein | Ja |
| Plattform | ||
| Windows | Ja | Ja |
| Linux | Nein | Ja |
| macOS | Nein | Ja |
| Docker | Nein | Ja |
| Anderes | ||
| Verschlüsselung / Sicherheit | Nein | Ja |
| Digitale Signaturen | Nein | Ja |
| PDF/A | Nein | Ja |
Neue Funktionen nach der Migration
Nach der Umstellung auf IronPDF erhalten Sie Funktionen, die RawPrintnicht bieten kann:
PDF-Zusammenführung
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")
Drucken mit Einstellungen
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
})
Erstellen und Drucken in einem Arbeitsgang
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")
Migrations-Checkliste
Vor der Migration
- Identifizieren Sie alle Verwendungen von RawPrint(
PrintRawFile,PrintRawStream) - Jede Aufrufstelle klassifizieren: PDFs, die an Bürorucksner gehen, sind Kandidaten für IronPDF; ESC/POS, ZPL, EPL oder manuell erstellte PCL/PostScript-Bytes sollten bei RawPrintbleiben
- Dokumentieren Sie die in Ihrer Anwendung verwendeten Druckernamen –IronPDF druckt über das Betriebssystem-Drucksystem, daher müssen die Namen immer noch aufgelöst werden
- Notieren Sie jeglichen externen PDF-Erstellungscode, der konsolidiert werden kann.
- Den IronPDF Lizenzschlüssel erhalten Sie unter IronPDF
Code-Aktualisierungen
- Installieren Sie das IronPDF-Paket:
dotnet add package IronPdf - Entfernen Sie RawPrintnur, wenn keine Rohbyte-Kanäle mehr vorhanden sind:
dotnet remove package RawPrint - Ersetzen Sie Erstellen-dann-RawPrint-Pipelines durch
ChromePdfRendererpluspdf.Print() - Konsolidieren Sie die Erstellung und das Drucken von PDFs in einem Workflow auf Windows
- Lizenzinitialisierung beim Anwendungsstart hinzufügen
Testen
- Testdruck auf den Zieldruckern
- Druckqualität überprüfen
- Mehrere Kopien testen
- Testen Sie den geräuschlosen Druck
- Plattformübergreifende Verifizierung, falls erforderlich

