IRONSOFTWAREHOME
VIDEOS

Wie man eine PDF aus einer Vorlage in C# generiert | IronPDF

Curtis Chau
Curtis Chau
Updated: 19. Juli 2026

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:

  1. Keine PDF-Erstellung: RawPrintkonzentriert sich ausschließlich auf die Datenübertragung und bietet keine Funktionen zur PDF-Erstellung, -Darstellung oder -Bearbeitung.

  2. 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.

  3. Plattformspezifisch: Es ist von Windows-Druckspoolern abhängig, was seine plattformübergreifende Anwendbarkeit einschränkt.

  4. Keine Dokumentenverarbeitung: Nur Byte-Übertragung ohne Darstellungsmöglichkeiten.

  5. Eingeschränkte Kontrolle: Minimale Konfigurationsmöglichkeiten für Druckaufträge.

Vergleich zwischen RawPrintund IronPDF

FeatureRawPrintIronPDF
FunktionalitätSendet Druckrohdaten direkt an den DruckerUmfassende PDF-Erstellung und -Bearbeitung
AnwendungsfallSpezialisierte Drucksachen wie EtikettenAllgemeine Verwaltung und Erstellung von Dokumenten
Plattform-AbhängigkeitWindows-spezifischPlattformübergreifend
KomplexitätLow-Level, erfordert Kenntnisse der DruckerbefehleBenutzerfreundliche API auf hohem Niveau
PDF-ErstellungNeinJa
PDF aus HTML erstellenNeinJa
PDF von URL erstellenNeinJa
PDFs bearbeiten/ändernNeinJa
PDFs zusammenführen/aufteilenNeinJa
Vorhandenes PDF ausdruckenJa (Rohbytes)Ja (API auf hoher Ebene)
DrucksteuerungBasicVollständige Optionen
Ideal fürDirekter Druckerzugriff erforderlichPDF-bezogene Aufgaben in Web- und Desktop-Anwendungen
FlexibilitätBegrenzt durch die Verarbeitung von RohbytesUmfangreich 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

  1. .NET -Umgebung: .NET Framework 4.6.2+ oder .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGet -Zugriff: Möglichkeit zur Installation von NuGet -Paketen
  3. IronPDF -Lizenz: Ihren Lizenzschlüssel erhalten Sie unter IronPDF.

NuGet-Paketänderungen

# Remove RawPrint
dotnet remove package RawPrint

# Install IronPDF
dotnet add package IronPdf
SHELL

Lizenz-Konfiguration

// 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" .
SHELL

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;

Kern-API-Zuordnungen

RawPrint (echte öffentliche API)IronPDFNotizen
new Printer() / IPrinternew ChromePdfRenderer() / PdfDocumentRawPrint 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-Ereignisn/aVerwenden Sie stattdessen IronPDF-Druckoptionen
n/aChromePdfRenderer.RenderHtmlAsPdf()PDFs erstellen
n/aPdfDocument.Merge()PDFs zusammenführen
n/apdf.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).");
    }
}
C#

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");
    }
}

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).");
        }
    }
}
C#

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");
    }
}

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);
        }
    }
}
C#

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");
    }
}
C#

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

FeatureRawPrintIronPDF
PDF-Erstellung
HTML zu PDFNeinJa
URL zu PDFNeinJa
Von Grund auf neu erstellenNeinJa
PDF-Bearbeitung
PDFs zusammenführenNeinJa
PDFs teilenNeinJa
Wasserzeichen hinzufügenNeinJa
Vorhandenes bearbeitenNeinJa
Drucken
RAW-Bytes an den Spooler sendenJaNein
ESC/POS, ZPL, Raw PCLJaNein
Über OS-Drucksystem druckenNeinJa
Plattform
WindowsJaJa
LinuxNeinJa
macOSNeinJa
DockerNeinJa
Anderes
Verschlüsselung / SicherheitNeinJa
Digitale SignaturenNeinJa
PDF/ANeinJa

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");

Drucken mit Einstellungen

var pdf = PdfDocument.FromFile("report.pdf");

pdf.Print(new PrintOptions
{
    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");

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 ChromePdfRenderer plus pdf.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

Hinweis:: RawPrint ist eine eingetragene Marke ihres jeweiligen Eigentümers. Diese Seite ist nicht mit RawPrintverbunden, wird nicht von RawPrintunterstützt oder gesponsert. Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Eigentümer. Vergleiche dienen nur zu Informationszwecken und spiegeln öffentlich zugängliche Informationen zum Zeitpunkt des Schreibens wider.
Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender Handbücher.

...
Weiterlesen

Verwandte Artikel

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Buchen Sie Ihre kostenlose Live-Demo
Booking Badge

Von Millionen von Ingenieur*innen weltweit vertraut

Kundenlogos von Iron Software
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Kundenlogos von Iron Software
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.