Wie man von MuPDF zu IronPDF in C# migriert
Warum von MuPDF zu IronPDF migrieren
Die MuPDF-Herausforderungen
MuPDF ist ein hervorragender PDF-Renderer, aber seine AGPL-Lizenz und der reine Rendering-Fokus schränken .NET-Entwickler, die kommerzielle Anwendungen erstellen, erheblich ein:
-
AGPL-Lizenzfalle: MuPDF s virale Lizenzierung erfordert entweder, dass Sie Ihre gesamte Anwendung unter der AGPL als Open Source veröffentlichen oder teure kommerzielle Lizenzen mit intransparenter, kontaktbasierter Preisgestaltung erwerben.
-
Fokus ausschließlich auf Rendering: MuPDF ist ein Viewer/Renderer – es ist nicht für die PDF-Erstellung aus HTML, Dokumentengenerierungs-Workflows, das Ausfüllen von Formularen oder das Hinzufügen von Wasserzeichen und Kopf-/Fußzeilen konzipiert.
-
Keine HTML-Unterstützung: MuPDF unterstützt keine direkte HTML-zu-PDF-Konvertierung. Sie müssten zunächst eine andere Bibliothek verwenden, um HTML in ein unterstütztes Format zu konvertieren. Dies ist eine grundlegende Einschränkung - MuPDF ist in erster Linie ein PDF-Renderer/Viewer.
-
Native Abhängigkeiten: Plattformspezifische Binärdateien erfordern für Windows, Linux und macOS eine manuelle Verwaltung. Die Bereitstellung von Docker wird durch die Anforderungen an native Bibliotheken komplex, und die Paketierung der Bereitstellung stellt eine Herausforderung dar.
-
Eingeschränkte Bearbeitungsmöglichkeiten: Keine integrierte Unterstützung für das Zusammenführen/Aufteilen von PDFs, das Drehen oder Neuanordnen von Seiten, Wasserzeichen oder Anmerkungen oder digitale Signaturen.
- C Interop-Komplexität: Native Bindungen führen zu Problemen bei der Speicherverwaltung, plattformspezifischen Fehlern und Marshalling-Overhead.
MuPDF vs IronPDFVergleich
| Feature | MuPDF | IronPDF |
|---|---|---|
| Lizenz | AGPL (viral) oder teure kommerzielle Übersetzung | Kommerziell mit transparenter Preisgestaltung |
| Primäres Ziel | Rendering/Betrachtung | Vollständige PDF-Lösung |
| HTML zu PDF | Nicht unterstützt | Vollständige Chromium-Engine |
| PDF-Erstellung | Nicht unterstützt | HTML, URL, Bilder |
| PDF-Bearbeitung | Beschränkt | Vervollständigen (zusammenführen, aufteilen, bearbeiten) |
| Abhängigkeiten | Native Binärdateien | Vollständig verwaltet |
| Plattform-Unterstützung | Handbuch pro Plattform | Automatisch |
| Async-Unterstützung | Beschränkt | Vollständig async/await |
| .NET-Integration | C interop | Native .NET |
Für Teams, die die Einführung von .NET 10 und C# 14 bis 2025 und 2026 planen, bietet IronPDF eine zukunftssichere Grundlage als vollständig verwaltete .NET-Bibliothek ohne native Interop-Komplexität.
Migrationskomplexitätsbewertung
Geschätzter Aufwand nach Merkmalen
| Feature | Komplexität der Migration |
|---|---|
| Dokument laden | Sehr niedrig |
| Textextraktion | Sehr niedrig |
| PDF-Zusammenführung | Niedrig |
| Bild-Rendering | Niedrig |
| HTML zu PDF | N/A (Neue Fähigkeit) |
| Sicherheit/Wassermarken | N/A (Neue Fähigkeit) |
Paradigmen-Verschiebung
Der grundlegende Shift bei dieser MuPDF-Migration besteht in der Umstellung von einem reinen Rendering-Viewer hin zu einer vollständigen PDF-Lösung:
MuPDF: MuPDFContext → MuPDFDocument → Seiten-Iteration → Nur Rendern/Extrahieren
IronPDF: PdfDocument.FromFile() → Vollständige Manipulation → Erstellen/Bearbeiten/Zusammenführen/Sichern
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 MuPDF packages
dotnet remove package MuPDF.NET
dotnet remove package MuPDFCore
dotnet remove package MuPDFCore.MuPDFWrapper
# Install IronPDF
dotnet add package IronPdf
# Remove MuPDF packages
dotnet remove package MuPDF.NET
dotnet remove package MuPDFCore
dotnet remove package MuPDFCore.MuPDFWrapper
# Install IronPDF
dotnet add package IronPdf
Entferne auch die nativen MuPDF-Binärdateien aus deinem Einsatz:
- Löschen Sie
mupdf.dll,libmupdf.so,libmupdf.dylib - Plattformspezifische Ordner entfernen (
runtimes/*/native/) - Docker-Dateien aktualisieren, um die MuPDF-Installation zu entfernen
Lizenz-Konfiguration
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup (Program.vb or Startup.vb)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
MuPDF-Verwendung identifizieren
# Find all MuPDF references
grep -r "MuPDF\|MuPDFCore\|MuPDFDocument" --include="*.cs" .
# Find all MuPDF references
grep -r "MuPDF\|MuPDFCore\|MuPDFDocument" --include="*.cs" .
Komplette API-Referenz
Dokument laden
| MuPDF | IronPDF |
|---|---|
new MuPDFDocument(path) |
PdfDocument.FromFile(path) |
new MuPDFDocument(stream) |
PdfDocument.FromStream(stream) |
document.Dispose() |
pdf.Dispose() |
Seitenzugang
| MuPDF | IronPDF |
|---|---|
document.Pages.Count |
pdf.PageCount |
document.Pages[index] |
pdf.Pages[index] |
page.GetText() |
page.Text |
Textextraktion
| MuPDF | IronPDF |
|---|---|
Schleife durch document.Pages[i].GetText() |
pdf.ExtractAllText() |
PDF-Erstellung (nicht in MuPDF verfügbar)
| MuPDF | IronPDF |
|---|---|
| (nicht unterstützt) | ChromePdfRenderer.RenderHtmlAsPdf(html) |
| (nicht unterstützt) | ChromePdfRenderer.RenderUrlAsPdf(url) |
PDF-Bearbeitung (eingeschränkt in MuPDF)
| MuPDF | IronPDF |
|---|---|
| Handbuch Seite kopieren Schleifen | PdfDocument.Merge(pdf1, pdf2) |
| (nicht unterstützt) | pdf.ApplyWatermark(html) |
| (nicht unterstützt) | pdf.SecuritySettings |
Beispiele für die Code-Migration
Beispiel 1: Konvertierung von HTML in PDF (MuPDF kann das nicht)
Vor (MuPDF):
// NuGet: Install-Package MuPDF.NET
using MuPDFCore;
using System.IO;
class Program
{
static void Main()
{
// MuPDF doesn't support HTML zu PDFconversion directly
// You would need to use another library to convert HTML to a supported format first
// This is a limitation - MuPDF is primarily a PDF renderer/viewer
// Alternative: Use a browser engine or intermediate conversion
string html = "<html><body><h1>Hello World</h1></body></html>";
// Not natively supported in MuPDF
throw new NotSupportedException("MuPDF does not support direct HTML zu PDFconversion");
}
}
// NuGet: Install-Package MuPDF.NET
using MuPDFCore;
using System.IO;
class Program
{
static void Main()
{
// MuPDF doesn't support HTML zu PDFconversion directly
// You would need to use another library to convert HTML to a supported format first
// This is a limitation - MuPDF is primarily a PDF renderer/viewer
// Alternative: Use a browser engine or intermediate conversion
string html = "<html><body><h1>Hello World</h1></body></html>";
// Not natively supported in MuPDF
throw new NotSupportedException("MuPDF does not support direct HTML zu PDFconversion");
}
}
Imports MuPDFCore
Imports System.IO
Class Program
Shared Sub Main()
' MuPDF doesn't support HTML to PDF conversion directly
' You would need to use another library to convert HTML to a supported format first
' This is a limitation - MuPDF is primarily a PDF renderer/viewer
' Alternative: Use a browser engine or intermediate conversion
Dim html As String = "<html><body><h1>Hello World</h1></body></html>"
' Not natively supported in MuPDF
Throw New NotSupportedException("MuPDF does not support direct HTML to PDF conversion")
End Sub
End Class
Nach (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Class Program
Shared Sub Main()
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")
End Sub
End Class
Dieses Beispiel verdeutlicht die größte Einschränkung von MuPDF: Es kann HTML überhaupt nicht in PDF umwandeln. Der MuPDF-Code löst explizit den Fehler NotSupportedException aus, da die Konvertierung von HTML in PDF einfach nicht zu den Funktionen von MuPDF gehört. Wenn man diese Funktionalität mit MuPDF benötigte, musste man eine separate Bibliothek wie wkhtmltopdf oder eine Browser-Engine verwenden und dann das resultierende PDF mit MuPDF zur Ansicht laden.
IronPDF's ChromePdfRenderer verwendet eine vollständige Chromium-Engine, um HTML mit vollständiger Unterstützung für CSS3, JavaScript und moderne Webstandards zu rendern. Die Methode RenderHtmlAsPdf() akzeptiert HTML-Strings direkt. In der HTML to PDF-Dokumentation finden Sie zusätzliche Rendering-Optionen wie URL-Rendering und HTML-Dateikonvertierung.
Beispiel 2: Textextraktion
Vor (MuPDF):
// NuGet: Install-Package MuPDF.NET
using MuPDFCore;
using System;
using System.Text;
class Program
{
static void Main()
{
using (MuPDFDocument document = new MuPDFDocument("input.pdf"))
{
StringBuilder allText = new StringBuilder();
for (int i = 0; i < document.Pages.Count; i++)
{
string pageText = document.Pages[i].GetText();
allText.AppendLine(pageText);
}
Console.WriteLine(allText.ToString());
}
}
}
// NuGet: Install-Package MuPDF.NET
using MuPDFCore;
using System;
using System.Text;
class Program
{
static void Main()
{
using (MuPDFDocument document = new MuPDFDocument("input.pdf"))
{
StringBuilder allText = new StringBuilder();
for (int i = 0; i < document.Pages.Count; i++)
{
string pageText = document.Pages[i].GetText();
allText.AppendLine(pageText);
}
Console.WriteLine(allText.ToString());
}
}
}
Imports MuPDFCore
Imports System
Imports System.Text
Class Program
Shared Sub Main()
Using document As New MuPDFDocument("input.pdf")
Dim allText As New StringBuilder()
For i As Integer = 0 To document.Pages.Count - 1
Dim pageText As String = document.Pages(i).GetText()
allText.AppendLine(pageText)
Next
Console.WriteLine(allText.ToString())
End Using
End Sub
End Class
Nach (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("input.pdf");
string text = pdf.ExtractAllText();
Console.WriteLine(text);
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("input.pdf");
string text = pdf.ExtractAllText();
Console.WriteLine(text);
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim pdf = PdfDocument.FromFile("input.pdf")
Dim text As String = pdf.ExtractAllText()
Console.WriteLine(text)
End Sub
End Class
Der MuPDF-Ansatz erfordert das Erstellen eines using Blocks mit einem MuPDFDocument, das manuelle Iterieren durch document.Pages.Count mit einer for-Schleife, den Aufruf von document.Pages[i].GetText() für jede Seite und das Aufbauen des Textes mit einem StringBuilder. Dies sind 12 Codezeilen für eine einfache Textextraktion.
IronPDF reduziert dies auf 3 Zeilen: Dokument laden mit PdfDocument.FromFile(), ExtractAllText() aufrufen und Ergebnis ausgeben. Für diese einfache Operation sind keine manuelle Iteration, kein StringBuilder und keine explizite Ressourcenverwaltung mit using Blöcken erforderlich. Erfahren Sie mehr über die Textextraktion aus PDFs .
Beispiel 3: Zusammenführen mehrerer PDFs
Vor (MuPDF):
// NuGet: Install-Package MuPDF.NET
using MuPDFCore;
using System.IO;
class Program
{
static void Main()
{
using (MuPDFDocument doc1 = new MuPDFDocument("file1.pdf"))
using (MuPDFDocument doc2 = new MuPDFDocument("file2.pdf"))
{
// Create a new document
using (MuPDFDocument mergedDoc = MuPDFDocument.Create())
{
// Copy pages from first document
for (int i = 0; i < doc1.Pages.Count; i++)
{
mergedDoc.CopyPage(doc1, i);
}
// Copy pages from second document
for (int i = 0; i < doc2.Pages.Count; i++)
{
mergedDoc.CopyPage(doc2, i);
}
mergedDoc.Save("merged.pdf");
}
}
}
}
// NuGet: Install-Package MuPDF.NET
using MuPDFCore;
using System.IO;
class Program
{
static void Main()
{
using (MuPDFDocument doc1 = new MuPDFDocument("file1.pdf"))
using (MuPDFDocument doc2 = new MuPDFDocument("file2.pdf"))
{
// Create a new document
using (MuPDFDocument mergedDoc = MuPDFDocument.Create())
{
// Copy pages from first document
for (int i = 0; i < doc1.Pages.Count; i++)
{
mergedDoc.CopyPage(doc1, i);
}
// Copy pages from second document
for (int i = 0; i < doc2.Pages.Count; i++)
{
mergedDoc.CopyPage(doc2, i);
}
mergedDoc.Save("merged.pdf");
}
}
}
}
Imports MuPDFCore
Imports System.IO
Class Program
Shared Sub Main()
Using doc1 As New MuPDFDocument("file1.pdf"),
doc2 As New MuPDFDocument("file2.pdf")
' Create a new document
Using mergedDoc As MuPDFDocument = MuPDFDocument.Create()
' Copy pages from first document
For i As Integer = 0 To doc1.Pages.Count - 1
mergedDoc.CopyPage(doc1, i)
Next
' Copy pages from second document
For i As Integer = 0 To doc2.Pages.Count - 1
mergedDoc.CopyPage(doc2, i)
Next
mergedDoc.Save("merged.pdf")
End Using
End Using
End Sub
End Class
Nach (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var pdf1 = PdfDocument.FromFile("file1.pdf");
var pdf2 = PdfDocument.FromFile("file2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var pdf1 = PdfDocument.FromFile("file1.pdf");
var pdf2 = PdfDocument.FromFile("file2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
}
}
Imports IronPdf
Class Program
Shared Sub Main()
Dim pdf1 = PdfDocument.FromFile("file1.pdf")
Dim pdf2 = PdfDocument.FromFile("file2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
End Sub
End Class
Der MuPDF-Zusammenführungsvorgang ist besonders umfangreich. Sie müssen beide Quelldokumente in verschachtelten using Blöcken öffnen, ein neues leeres Dokument mit MuPDFDocument.Create() erstellen, jede Seite des ersten Dokuments durchlaufen, indem Sie CopyPage() aufrufen, jede Seite des zweiten Dokuments durchlaufen, indem Sie CopyPage() aufrufen, und schließlich speichern. Das sind mehr als 20 Zeilen Code mit komplexer Verschachtelung.
Die statische Methode PdfDocument.Merge() von IronPDF akzeptiert mehrere PDF-Dokumente und gibt ein einzelnes zusammengeführtes Dokument zurück. Der gesamte Vorgang besteht aus 4 Zeilen lesbarem Code. Zum Zusammenführen mehrerer Dokumente können Sie eine Liste übergeben: PdfDocument.Merge(pdfList). Weitere Optionen finden Sie in der Dokumentation zum Zusammenführen und Teilen von PDFs.
Kritische Hinweise zur Migration
Entfernen nativer Binärdateien
MuPDF erfordert plattformspezifische native Bibliotheken. Nach der Migration zu IronPDF müssen alle nativen MuPDF-Binärdateien entfernt werden:
# Delete native libraries
rm -f mupdf*.dll libmupdf*.so libmupdf*.dylib
# Remove runtime folders
rm -rf runtimes/*/native/
# Update Docker files to remove MuPDF installation
# Delete native libraries
rm -f mupdf*.dll libmupdf*.so libmupdf*.dylib
# Remove runtime folders
rm -rf runtimes/*/native/
# Update Docker files to remove MuPDF installation
IronPDF ist vollständig verwalteter .NET-Code - es müssen keine nativen Binärdateien für verschiedene Plattformen verwaltet werden.
Dispose-Muster vereinfacht
MuPDF erfordert eine explizite Kontext- und Dokumentenverwaltung:
// MuPDF: Nested using blocks required
using (MuPDFDocument document = new MuPDFDocument("input.pdf"))
{
// Work with document
}
// IronPDF: Simpler pattern
var pdf = PdfDocument.FromFile("input.pdf");
// Work with pdf
// MuPDF: Nested using blocks required
using (MuPDFDocument document = new MuPDFDocument("input.pdf"))
{
// Work with document
}
// IronPDF: Simpler pattern
var pdf = PdfDocument.FromFile("input.pdf");
// Work with pdf
Imports MuPDF
Using document As New MuPDFDocument("input.pdf")
' Work with document
End Using
Dim pdf = PdfDocument.FromFile("input.pdf")
' Work with pdf
Seite Iterationsmuster ändern
MuPDF verwendet eine indexbasierte Iteration mit expliziter Seitenzählung:
// MuPDF
for (int i = 0; i < document.Pages.Count; i++)
{
var pageText = document.Pages[i].GetText();
}
//IronPDF(foreach supported)
foreach (var page in pdf.Pages)
{
var pageText = page.Text;
}
// MuPDF
for (int i = 0; i < document.Pages.Count; i++)
{
var pageText = document.Pages[i].GetText();
}
//IronPDF(foreach supported)
foreach (var page in pdf.Pages)
{
var pageText = page.Text;
}
' MuPDF
For i As Integer = 0 To document.Pages.Count - 1
Dim pageText = document.Pages(i).GetText()
Next
' IronPDF (foreach supported)
For Each page In pdf.Pages
Dim pageText = page.Text
Next
Neue Funktionen verfügbar
Nach der Umstellung auf IronPDF erhalten Sie Funktionen, die MuPDF nicht bieten kann:
// PDF-Erstellungfrom HTML (not possible in MuPDF)
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello</h1>");
// Watermarks (not possible in MuPDF)
pdf.ApplyWatermark("<div style='color:red;opacity:0.3;'>DRAFT</div>");
// Password Protection (not possible in MuPDF)
pdf.SecuritySettings.OwnerPassword = "admin";
pdf.SecuritySettings.UserPassword = "user";
// Headers and Footers (not possible in MuPDF)
pdf.AddTextHeader("Document Title");
pdf.AddTextFooter("Page {page} of {total-pages}");
// PDF-Erstellungfrom HTML (not possible in MuPDF)
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello</h1>");
// Watermarks (not possible in MuPDF)
pdf.ApplyWatermark("<div style='color:red;opacity:0.3;'>DRAFT</div>");
// Password Protection (not possible in MuPDF)
pdf.SecuritySettings.OwnerPassword = "admin";
pdf.SecuritySettings.UserPassword = "user";
// Headers and Footers (not possible in MuPDF)
pdf.AddTextHeader("Document Title");
pdf.AddTextFooter("Page {page} of {total-pages}");
' PDF-Erstellungfrom HTML (not possible in MuPDF)
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello</h1>")
' Watermarks (not possible in MuPDF)
pdf.ApplyWatermark("<div style='color:red;opacity:0.3;'>DRAFT</div>")
' Password Protection (not possible in MuPDF)
pdf.SecuritySettings.OwnerPassword = "admin"
pdf.SecuritySettings.UserPassword = "user"
' Headers and Footers (not possible in MuPDF)
pdf.AddTextHeader("Document Title")
pdf.AddTextFooter("Page {page} of {total-pages}")
Fehlerbehebung
Ausgabe 1: MuPDFDocument nicht gefunden
Problem: Die Klasse MuPDFDocument existiert nicht in IronPDF.
Lösung: Verwenden Sie PdfDocument.FromFile():
// MuPDF
using (MuPDFDocument document = new MuPDFDocument("input.pdf"))
// IronPDF
var pdf = PdfDocument.FromFile("input.pdf");
// MuPDF
using (MuPDFDocument document = new MuPDFDocument("input.pdf"))
// IronPDF
var pdf = PdfDocument.FromFile("input.pdf");
Imports MuPDF
Imports IronPDF
Using document As New MuPDFDocument("input.pdf")
End Using
Dim pdf = PdfDocument.FromFile("input.pdf")
Ausgabe 2: Pages.Count Not Found
Problem: Das Muster document.Pages.Count funktioniert nicht.
Lösung: Verwenden Sie pdf.PageCount:
// MuPDF
for (int i = 0; i < document.Pages.Count; i++)
// IronPDF
for (int i = 0; i < pdf.PageCount; i++)
// Or use: foreach (var page in pdf.Pages)
// MuPDF
for (int i = 0; i < document.Pages.Count; i++)
// IronPDF
for (int i = 0; i < pdf.PageCount; i++)
// Or use: foreach (var page in pdf.Pages)
' MuPDF
For i As Integer = 0 To document.Pages.Count - 1
' IronPDF
For i As Integer = 0 To pdf.PageCount - 1
' Or use: For Each page In pdf.Pages
Ausgabe 3: GetText() nicht gefunden
Problem: Die Methode page.GetText() existiert nicht.
Lösung: Verwenden Sie die Eigenschaft page.Text oder pdf.ExtractAllText():
// MuPDF
string pageText = document.Pages[i].GetText();
// IronPDF
string pageText = pdf.Pages[i].Text;
// Or for all text:
string allText = pdf.ExtractAllText();
// MuPDF
string pageText = document.Pages[i].GetText();
// IronPDF
string pageText = pdf.Pages[i].Text;
// Or for all text:
string allText = pdf.ExtractAllText();
' MuPDF
Dim pageText As String = document.Pages(i).GetText()
' IronPDF
Dim pageText As String = pdf.Pages(i).Text
' Or for all text:
Dim allText As String = pdf.ExtractAllText()
Ausgabe 4: KopieSeite nicht gefunden
Problem: Manuelles Seitenkopiermuster für die Zusammenführung.
Lösung: Verwenden Sie statische PdfDocument.Merge():
// MuPDF
mergedDoc.CopyPage(doc1, i);
// IronPDF
var merged = PdfDocument.Merge(pdf1, pdf2);
// MuPDF
mergedDoc.CopyPage(doc1, i);
// IronPDF
var merged = PdfDocument.Merge(pdf1, pdf2);
' MuPDF
mergedDoc.CopyPage(doc1, i)
' IronPDF
Dim merged = PdfDocument.Merge(pdf1, pdf2)
Migrations-Checkliste
Vor der Migration
- Inventarisieren Sie alle MuPDF-Verwendungen in der Codebasis
- Alle Rendering-Operationen dokumentieren (DPI, Skalierungsfaktoren)
- Ermitteln Sie den Bedarf an PDF-Erstellung (derzeit werden externe Tools verwendet)
- Anforderungen an die Listentextextraktion
- Überprüfung der Bereitstellungsskripte hinsichtlich der nativen Binärverarbeitung -IronPDF-Lizenzschlüssel erhalten
Paketänderungen
- Entfernen Sie das Paket
MuPDF.NET - Entfernen Sie das Paket
MuPDFCore - Entfernen Sie das Paket
MuPDFCore.MuPDFWrapper - Installieren Sie das NuGet Paket
IronPdf:dotnet add package IronPdf - Namespace-Importe aktualisieren
Code-Änderungen
- Lizenzschlüsselkonfiguration beim Start hinzufügen
- Ersetzen Sie
MuPDFDocumentdurchPdfDocument.FromFile() - Ersetzen Sie
document.Pages.Countdurchpdf.PageCount - Ersetzen Sie
page.GetText()durchpage.Textoderpdf.ExtractAllText() - Ersetzen Sie manuelle
CopyPageSchleifen durchPdfDocument.Merge() - Entfernen Sie verschachtelte
usingBlöcke für die Kontextverwaltung - Fügen Sie bei Bedarf Code zur PDF-Erstellung hinzu (HTML zu PDF)
Nach der Migration
- Native MuPDF-Binärdateien aus dem Projekt entfernen
- Docker-Dateien aktualisieren, um die MuPDF-Installation zu entfernen
- Plattformspezifische Laufzeitordner entfernen
- Führe Regressionstests durch, um die gerenderte Ausgabe zu vergleichen
- Test auf allen Zielplattformen (Windows, Linux, macOS)
- Erwägen Sie die Hinzufügung neuer Funktionen (Wasserzeichen, Sicherheit, Kopf-/Fußzeilen)

