IRONSOFTWAREHOME
VIDEOS

Wie man HTML zu PDF-Umbrüche mit C# verwaltet

Curtis Chau
Curtis Chau
Updated: 18. Mai 2026

BitMiracle Docotic PDF ist eine angesehene .NET-PDF-Bibliothek, die für ihre 100%ige Managed-Code-Architektur und ihre umfangreichen programmatischen PDF-Manipulationsmöglichkeiten bekannt ist. Die modulare Add-on-Struktur, die separate Pakete für die HTML-zu-PDF-Konvertierung, Layout-Funktionen und andere Funktionen erfordert, erhöht jedoch die Komplexität des Projektmanagements und der Lizenzierung. Dieser umfassende Leitfaden bietet einen schrittweisen Migrationspfad von BitMiracle Docotic PDFzu IronPDF- einer einheitlichen .NET-PDF-Bibliothek mit integriertem Chromium-basiertem HTML-Rendering und allen Funktionen, die in einem einzigen NuGet-Paket enthalten sind.

Warum von BitMiracle Docotic PDFzu IronPDF migrieren?

Obwohl BitMiracle Docotic PDFrobuste Funktionen zur PDF-Bearbeitung bietet, suchen Entwicklungsteams aufgrund verschiedener Faktoren nach Alternativen mit einer schlankeren Architektur.

Vergleich der Paketarchitektur

BitMiracle Docotic PDF verwendet einen modularen Add-on-Ansatz, der mehrere Pakete für die volle Funktionalität erfordert:

AspektBitMiracle Docotic PDFIronPDF
HTML-zu-PDFErfordert separates Add-on (HtmlToPdf)Eingebaute Kernfunktion
PaketstrukturKern + mehrere Add-onsEinzelnes NuGet-Paket
LizenzierungsmodellPro-Add-on-LizenzierungAlle Funktionen enthalten
API-KomplexitätSeparate Namensräume pro Add-onVereinheitlichte API
HTML EngineChromium (über ein Add-on)Chromium (eingebaut)
GemeinschaftsgrößeKleinerGrößer, mehr Ressourcen
DokumentationTechnische ReferenzAusführliche Tutorials

Funktionsparität

Beide Bibliotheken unterstützen umfassende PDF-Funktionen:

FeatureBitMiracle Docotic PDFIronPDF
PDF von Grund auf neu erstellen
HTML zu PDF✅(Add-on erforderlich)✅(eingebaut)
URL zu PDF✅(Add-on erforderlich)✅(eingebaut)
PDF-Manipulation
Textextraktion
Zusammenführen/Spalten
Digitale Signaturen
Verschlüsselung
Ausfüllen von Formularen
PDF/A-Konformität

Schlüsselunterschiede im Ansatz

BitMiracle Docotic PDF verwendet eine canvas-basierte Zeichnung mit Koordinatenpositionierung (canvas.DrawString(x, y, text)), während IronPDF HTML/CSS für Layout und Positionierung nutzt. Dies stellt einen Paradigmenwechsel dar, der die Erstellung von Inhalten für Entwickler, die mit Webtechnologien vertraut sind, vereinfacht.

Vorbereitung auf die Migration

Voraussetzungen

Stellen Sie sicher, dass Ihre Umgebung diese Anforderungen erfüllt:

  • .NET Framework 4.6.2+ oder .NET Core 3.1 / .NET 5-9
  • Visual Studio 2019+ oder VS Code mit C#-Erweiterung
  • NuGet Package Manager Zugang
  • IronPDF-Lizenzschlüssel (kostenlose Testversion erhältlich unter ironpdf.com)

Prüfung der BitMiracle Docotic PDF-Nutzung

Führen Sie diese Befehle in Ihrem Lösungsverzeichnis aus, um alle Docotic.Pdf-Referenzen zu identifizieren:

# Find all Docotic.Pdf usages in your codebase
grep -r "using BitMiracle.Docotic" --include="*.cs" .
grep -r "PdfDocument\|PdfPage\|PdfCanvas" --include="*.cs" .

# Find NuGet package references
grep -r "Docotic.Pdf" --include="*.csproj" .
SHELL

Bahnbrechende Änderungen, die zu erwarten sind

Ändern SieBitMiracle Docotic PDFIronPDFAuswirkungen
HTML-RenderingErfordert das Add-on HtmlToPdfEingebautAdd-on-Paket entfernen
Seitenindizierung0-basiert (Pages[0])0-basiert (Pages[0])Keine Änderung erforderlich
KoordinatensystemUrsprung unten linksHTML/CSS-FlussCSS für die Positionierung verwenden
LeinwandzeichnungPdfCanvas.DrawText()HTML-AuszeichnungParadigmenwechsel
Textextraktionpage.GetText()pdf.ExtractAllText()Änderung des Methodennamens
Dokument ladennew PdfDocument(path)PdfDocument.FromFile(path)Konstruktor → statische Methode
Sparendocument.Save(path)pdf.SaveAs(path)Änderung des Methodennamens
EntsorgungIDisposable MusterNicht erforderlichEinfachere Ressourcenverwaltung

Schritt-für-Schritt-Migrationsprozess

Schritt 1: NuGet-Pakete aktualisieren

Entfernen Sie BitMiracle Docotic PDF-Pakete und installieren Sie IronPDF:

# Remove Docotic.Pdf packages
dotnet remove package BitMiracle.Docotic.Pdf
dotnet remove package BitMiracle.Docotic.Pdf.HtmlToPdf
dotnet remove package BitMiracle.Docotic.Pdf.Layout

# Install IronPDF
dotnet add package IronPdf
SHELL

Schritt 2: Namensraumreferenzen aktualisieren

Ersetzen Sie BitMiracle Docotic PDF-Namensräume durch IronPDF:

// Remove these
using BitMiracle.Docotic.Pdf;
using BitMiracle.Docotic.Pdf.Layout;
// HtmlConverter from the BitMiracle.Docotic.Pdf.HtmlToPdf NuGet package
// also lives in the BitMiracle.Docotic.Pdf namespace (no extra using needed).

// Add this
using IronPdf;

Schritt 3: Lizenz konfigurieren

// Add at application startup (Program.cs or Global.asax)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

Komplette API-Migrationsreferenz

Dokumentenoperationen

AufgabeBitMiracle Docotic PDFIronPDF
Leeres Dokument erstellennew PdfDocument()new PdfDocument()
Aus Datei ladennew PdfDocument(path)PdfDocument.FromFile(path)
Vom Stream ladenPdfDocument.Load(stream)PdfDocument.FromStream(stream)
Aus Bytes ladenPdfDocument.Load(bytes)PdfDocument.FromBinaryData(bytes)
In Datei speicherndocument.Save(path)pdf.SaveAs(path)
Seitenzahl abrufendocument.PageCountpdf.PageCount
Schließen/Entsorgendocument.Dispose()Nicht erforderlich

HTML-zu-PDF-Konvertierung

AufgabeBitMiracle Docotic PDF(HtmlToPdf Add-on)IronPDF
HTML-String in PDFawait converter.CreatePdfFromStringAsync(html)renderer.RenderHtmlAsPdf(html)
HTML-Datei in PDFawait converter.CreatePdfAsync(filePath)renderer.RenderHtmlFileAsPdf(path)
URL zu PDFawait converter.CreatePdfAsync(new Uri(url))renderer.RenderUrlAsPdf(url)
Seitengröße festlegenoptions.Page.SetSize(PdfPaperSize.A4)renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
Ränder setzenoptions.Page.MarginTop = 20 (etc.)renderer.RenderingOptions.MarginTop = 20

Merge- und Split-Operationen

AufgabeBitMiracle Docotic PDFIronPDF
Dokumente zusammenführendoc1.Append("file.pdf") (Pfad/Stream/bytes)PdfDocument.Merge(pdf1, pdf2)
Dokument teilendocument.CopyPage(index) zu neuem Dokumentpdf.CopyPages(start, end)

Beispiele für die Code-Migration

HTML-zu-PDF-Konvertierung

Der häufigste Vorgang verdeutlicht die erhebliche Vereinfachung, die IronPDF bietet.

BitMiracle Docotic PDF-Implementierung:

// NuGet: Install-Package BitMiracle.Docotic.Pdf
// NuGet: Install-Package BitMiracle.Docotic.Pdf.HtmlToPdf  (separate add-on required)
using BitMiracle.Docotic.Pdf;
using System;
using System.Threading.Tasks;

class Program
{
    static async AufgabeMain()
    {
        // HtmlConverter is async-only and downloads Chromium on first use
        using var converter = await HtmlConverter.CreateAsync();

        string html = "<html><body><h1>Hello World</h1><p>This is HTML zu PDFconversion.</p></body></html>";

        using var pdf = await converter.CreatePdfFromStringAsync(html);
        pdf.Save("output.pdf");

        Console.WriteLine("PDF created successfully");
    }
}
C#

IronPDF-Implementierung:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string html = "<html><body><h1>Hello World</h1><p>This is HTML zu PDFconversion.</p></body></html>";
        
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
        
        Console.WriteLine("PDF created successfully");
    }
}
C#

IronPDF beseitigt die Anforderung einer using-Anweisung und bietet eine spezielle ChromePdfRenderer-Klasse, die ihre auf Chromium basierende Rendering-Fähigkeit klar anzeigt. Weitere Optionen zur HTML-Konvertierung finden Sie in der HTML to PDF-Dokumentation.

Mehrere PDFs zusammenführen

BitMiracle Docotic PDF-Implementierung:

// NuGet: Install-Package BitMiracle.Docotic.Pdf
using BitMiracle.Docotic.Pdf;
using System;

class Program
{
    static void Main()
    {
        using (var pdf1 = new PdfDocument("document1.pdf"))
        {
            // PdfDocument.Append accepts a file path, Stream, or byte[] —
            // not another PdfDocument instance.
            pdf1.Append("document2.pdf");
            pdf1.Save("merged.pdf");
        }

        Console.WriteLine("PDFs merged successfully");
    }
}

IronPDF-Implementierung:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");
        
        var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 });
        merged.SaveAs("merged.pdf");
        
        Console.WriteLine("PDFs merged successfully");
    }
}

IronPDFs statische Merge-Methode akzeptiert mehrere Dokumente direkt und bietet eine sauberere API als das iterative Append-Muster. Weitere Optionen finden Sie in der Dokumentation zum Zusammenführen von PDFs .

Textextraktion

BitMiracle Docotic PDF-Implementierung:

// NuGet: Install-Package BitMiracle.Docotic.Pdf
using BitMiracle.Docotic.Pdf;
using System;

class Program
{
    static void Main()
    {
        using (var pdf = new PdfDocument("document.pdf"))
        {
            string allText = "";
            
            foreach (var page in pdf.Pages)
            {
                allText += page.GetText();
            }
            
            Console.WriteLine("Extracted text:");
            Console.WriteLine(allText);
        }
    }
}
C#

IronPDF-Implementierung:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("document.pdf");
        string allText = pdf.ExtractAllText();
        
        Console.WriteLine("Extracted text:");
        Console.WriteLine(allText);
    }
}

IronPDF reduziert die Textextraktion von einer mehrzeiligen Schleife auf einen einzigen Methodenaufruf. Weitere Extraktionsoptionen finden Sie in der Dokumentation zur Textextraktion .

Passwortschutz und Verschlüsselung

IronPDF-Implementierung:

using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Document</h1>");

// Set security
pdf.SecuritySettings.UserPassword = "userPassword";
pdf.SecuritySettings.OwnerPassword = "ownerPassword";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;

pdf.SaveAs("protected.pdf");

Ausführliche Informationen zu den Sicherheitsoptionen finden Sie in der Dokumentation zur Verschlüsselung .

Kopf- und Fußzeilen

IronPDF-Implementierung:

using IronPdf;

var renderer = new ChromePdfRenderer();

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='text-align:center; font-size:12px;'>
            Company Header - Confidential
        </div>",
    DrawDividerLine = true,
    MaxHeight = 30
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='text-align:center; font-size:10px;'>
            Page {page} of {total-pages}
        </div>",
    DrawDividerLine = true,
    MaxHeight = 25
};

var pdf = renderer.RenderHtmlAsPdf("<h1>Document Content</h1>");
pdf.SaveAs("with_headers.pdf");

IronPDF unterstützt Platzhalter-Token wie {page} und {total-pages} für dynamische Seitenzahlen. Weitere Optionen finden Sie in der Kopf- und Fußzeilen-Dokumentation.

Kritische Hinweise zur Migration

Paradigmenwechsel von Canvas zu HTML

Der auf Leinwand basierende Zeichenansatz von BitMiracle Docotic PDFmuss in HTML mit CSS-Positionierung umgewandelt werden:

BitMiracle Docotic PDF-Muster:

var canvas = pdfPage.Canvas;
canvas.DrawString(50, 50, "Hello, World!");

IronPDF-Muster:

var html = "<div style='position:absolute; left:50px; top:50px;'>Hello, World!</div>";
var pdf = renderer.RenderHtmlAsPdf(html);

Gleiche Seite indexieren

Beide Bibliotheken verwenden eine 0-basierte Indizierung (Pages[0] ist die erste Seite) – keine Änderungen am Seitenzugriffscode erforderlich.

Entsorgung nicht erforderlich

IronPDF benötigt keine using-Anweisungen für das Speichermanagement und vereinfacht dadurch die Code-Struktur:

// BitMiracle Docotic PDF- disposal required
using (var pdf = new PdfDocument("input.pdf"))
{
    // operations
}

//IronPDF- disposal optional
var pdf = PdfDocument.FromFile("input.pdf");
// operations - no using statement needed

Async-Unterstützung

Das HtmlToPdf-Add-on von BitMiracle Docotic PDFerfordert überall asynchrone Muster.IronPDF unterstützt sowohl synchrone als auch asynchrone Methoden:

// Synchronous
var pdf = renderer.RenderHtmlAsPdf(html);

// Asynchronous
var pdf = await renderer.RenderHtmlAsPdfAsync(html);

ASP.NET Core -Integration

IronPDF-Muster:

[ApiController]
[Route("[controller]")]
public class PdfController : ControllerBase
{
    [HttpGet("generate")]
    public IActionResult GeneratePdf()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Report</h1>");

        return File(pdf.BinaryData, "application/pdf", "report.pdf");
    }

    [HttpGet("generate-async")]
    public async Task<IActionResult> GeneratePdfAsync()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Report</h1>");

        return File(pdf.BinaryData, "application/pdf", "report.pdf");
    }
}

Post-Migrations-Checkliste

Überprüfen Sie nach Abschluss der Codemigration Folgendes:

Führen Sie alle Unit-Tests aus, um zu überprüfen, ob die PDF-Generierung korrekt funktioniert.

  • Vergleichen Sie die PDF-Ausgabequalität (die Chromium-Engine von IronPDF kann die Darstellung geringfügig verändern – in der Regel ist sie jedoch besser).
  • Überprüfung der Genauigkeit der Textextraktion
  • Test der Formularausfüllfunktion
  • Digitale Signaturen gegebenenfalls validieren.
  • Batch-Operationen für Leistungstests
  • Test in allen Zielumgebungen
  • CI/CD-Pipelines aktualisieren
  • Docotic.Pdf-Lizenzdateien entfernen.

Zusätzliche Ressourcen


Durch die Migration von BitMiracle Docotic PDFzu IronPDF entfällt die Komplexität der Verwaltung mehrerer Zusatzpakete, während die gleichen Chromium-basierten HTML-Rendering-Funktionen zur Verfügung stehen. Der Übergang vom Canvas-basierten Zeichnen zur HTML/CSS-Positionierung nutzt die Webentwicklungskenntnisse, über die die meisten .NET-Entwickler bereits verfügen, und führt zu einem besser wartbaren Code für die PDF-Erstellung.

Hinweis:: Bitmiracle Docotic.Pdf ist ein eingetragenes Warenzeichen seines jeweiligen Eigentümers. Diese Seite ist nicht mit, unterstützt oder gesponsert von Bit Miracle. 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.