MuPDF'den IronPDF'e C# ile Nasıl Geçilir
MuPDF'den IronPDF'ye Geçiş Nedenleri
MuPDFZorlukları
MuPDF mükemmel bir PDF işleyicisidir, ancak AGPL lisansı ve sadece işleme odaklanması, ticari uygulamalar geliştiren .NET geliştiricileri için önemli sınırlamalar yaratır:
-
AGPL Lisans Tuzağı: MuPDF'nin viral lisansı, ya tüm uygulamanızı AGPL altında açık kaynak yapmak ya da pahalı ticari lisanslar satın almak zorunluluğu getirir ve bunu da muğlak, satış temsilciliği fiyatlandırmasıyla yapar.
-
Yalnızca İşleme Odaklılık:MuPDFbir görüntüleyici/işleyicidir—HTML'den PDF oluşturma, belge oluşturma iş akışları, form doldurma veya filigranlar ve başlık/altbilgiler eklemek için tasarlanmamıştır.
-
HTML Desteği Yok:MuPDFdoğrudan HTML'den PDF'ye dönüşümü desteklemiyor. HTML'yi önce desteklenen bir formata çevirmek için başka bir kütüphane kullanmanız gerekir. Bu, temel bir sınırlamadır—MuPDF öncelikle bir PDF işleyici/görüntüleyicisidir.
-
Yerel Bağımlılıklar: Platforma özgü ikili dosyalar, Windows, Linux ve macOS için manuel yönetim gerektirir. Docker dağıtımları, yerel kütüphane gereksinimleri ile karmaşık hale gelir ve dağıtım paketleme zorluklar yaratır.
-
Sınırlı Manipülasyon: PDF'leri birleştirme/bölme, sayfa döndürme veya sıralama, filigranlar veya açıklamalar veya dijital imzalar için yerleşik destek yoktur.
- C Interop Karmaşıklığı: Yerel bağlar, bellek yönetim endişeleri, platforma özgü hatalar ve marshalling yükü getirir.
MuPDF veIronPDFKarşılaştırması
| Özellik | MuPDF | IronPDF |
|---|---|---|
| Lisans | AGPL (viral) veya pahalı ticari | Şeffaf fiyatlandırmalı ticari |
| Birincil Odak | Renderlama/görüntüleme | Tam PDF çözümü |
| HTML'den PDF'ye | Desteklenmiyor | Tam Chromium motoru |
| PDF Oluşturma | Desteklenmiyor | HTML, URL, resimler |
| PDF Manipülasyonu | Sınırlı | Tam (birleştirme, bölme, düzenleme) |
| Bağımlılıklar | Yerel ikililer | Tamamen yönetilen |
| Platform Desteği | Platform başına manuel | Otomatik |
| Async Destegi | Sınırlı | Tam async/await |
| .NET Entegrasyonu | C birlikte çalışabilirlik | Yerel .NET |
takımları, 2025 ve 2026 boyunca .NET 10 ve C# 14 benimsemeyi planlayanlar için, IronPDF, yerel interop karmaşıklığı olmayan tamamen yönetilen bir .NET kütüphanesi olarak geleceğe yönelik bir temel sağlar.
Göç Karmaşıklık Değerlendirmesi
Özelliklere Göre Tahmini Çaba
| Özellik | Göç Karmaşıklığı |
|---|---|
| Belge Yükleme | Çok Düşük |
| Metin Çıkarma | Çok Düşük |
| PDF Merging | Low |
| Görüntü İşleme | Low |
| HTML'den PDF'ye | Yok (Yeni Özellik) |
| Güvenlik/Filigranlar | Yok (Yeni Özellik) |
Paradigma Değişikliği
BuMuPDFgeçişindeki temel değişiklik, yalnızca görüntüleyici olduğundan tam PDF çözümüne dönüşmektir:
MuPDF: MuPDFContext → MuPDFDocument → Sayfa yinelemesi → Yalnızca İşleme/Veri Çekme
IronPDF: PdfDocument.FromFile() → Tam manipulasyon → Oluşturma/Düzenleme/Birleştirme/Güvenli hale getirme
Başlamadan Önce
Önkoşullar
- .NET Ortamı: .NET Framework 4.6.2+ veya .NET Core 3.1+ / .NET 5/6/7/8/9+
- NuGet Erişimi: NuGet paketlerini yükleme yeteneği
- IronPDF Lisansı: Lisans anahtarınızı ironpdf.com adresinden edinin
NuGet Paket Değişiklikleri
# RemoveMuPDFpackages
dotnet remove package MuPDF.NET
dotnet remove package MuPDFCore
dotnet remove package MuPDFCore.MuPDFWrapper
# Install IronPDF
dotnet add package IronPdf
# RemoveMuPDFpackages
dotnet remove package MuPDF.NET
dotnet remove package MuPDFCore
dotnet remove package MuPDFCore.MuPDFWrapper
# Install IronPDF
dotnet add package IronPdf
Ayrıca, yerelMuPDFikili dosyalarını dağıtımınızdan kaldırın:
mupdf.dll,libmupdf.so,libmupdf.dylibsil- Platforma özgü klasörleri kaldır (
runtimes/*/native/) -MuPDFkurulumunu kaldırmak için Docker dosyalarını güncelleyin
Lisans Yapılandırması
// 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"
MuPDFKullanımını Belirleme
# Find allMuPDFreferences
grep -r "MuPDF\|MuPDFCore\|MuPDFDocument" --include="*.cs" .
# Find allMuPDFreferences
grep -r "MuPDF\|MuPDFCore\|MuPDFDocument" --include="*.cs" .
API Referansının Tamamı
Belge Yükleme
| MuPDF | IronPDF |
|---|---|
new MuPDFDocument(path) |
PdfDocument.FromFile(path) |
new MuPDFDocument(stream) |
PdfDocument.FromStream(stream) |
document.Dispose() |
pdf.Dispose() |
Sayfa Erişimi
| MuPDF | IronPDF |
|---|---|
document.Pages.Count |
pdf.PageCount |
document.Pages[index] |
pdf.Pages[index] |
page.GetText() |
page.Text |
Metin Çıkarma
| MuPDF | IronPDF |
|---|---|
document.Pages[i].GetText() üzerinde döngü oluştur |
pdf.ExtractAllText() |
PDF Oluşturma (MuPDF'de Mevcut Değil)
| MuPDF | IronPDF |
|---|---|
| (desteklenmiyor) | ChromePdfRenderer.RenderHtmlAsPdf(html) |
| (desteklenmiyor) | ChromePdfRenderer.RenderUrlAsPdf(url) |
PDF Manipülasyonu (MuPDF'de Sınırlı)
| MuPDF | IronPDF |
|---|---|
| Manuel sayfa kopyalama döngüleri | PdfDocument.Merge(pdf1, pdf2) |
| (desteklenmiyor) | pdf.ApplyWatermark(html) |
| (desteklenmiyor) | pdf.SecuritySettings |
Kod Geçiş Örnekleri
Örnek 1: HTML'den PDF'ye Dönüşüm (MuPDF Bunu Yapamaz)
Önce (MuPDF):
// NuGet: Install-Package MuPDF.NET
using MuPDFCore;
using System.IO;
class Program
{
static void Main()
{
//MuPDFdoesn't supportHTML'den PDF'yeconversion directly
// You would need to use another library to convert HTML to a supported format first
// This is a limitation -MuPDFis 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 directHTML'den PDF'yeconversion");
}
}
// NuGet: Install-Package MuPDF.NET
using MuPDFCore;
using System.IO;
class Program
{
static void Main()
{
//MuPDFdoesn't supportHTML'den PDF'yeconversion directly
// You would need to use another library to convert HTML to a supported format first
// This is a limitation -MuPDFis 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 directHTML'den PDF'yeconversion");
}
}
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
Sonra (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
Bu örnek, MuPDF'nin en büyük sınırlamasını vurgular: HTML'den PDF'ye dönüştürme hiç yapamaz.MuPDFkodu açıkça NotSupportedException fırlatıyor çünkü HTML'den PDF'e dönüştürme sadece MuPDF'in sunduğu bir yetenek değildir. Bu işlevselliğeMuPDFile ihtiyaçınız olsaydı, wkhtmltopdf gibi ayrı bir kütüphane veya bir tarayıcı motoru kullanmanız, ardından görüntülemek için oluşan PDF'yiMuPDFile yüklemeniz gerekirdi.
IronPDF'in ChromePdfRenderer, HTML'i CSS3, JavaScript ve modern web standartları desteği ile tam olarak işlemek için tam bir Chromium motoru kullanır. RenderHtmlAsPdf() yöntemi HTML dizelerini doğrudan kabul eder. URL oluşturma ve HTML dosya dönüştürme gibi ek işleme seçenekleri için HTML'den PDF'e dokümantasyonuna bakın.
Örnek 2: Metin Çıkarma
Önce (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
Sonra (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
MuPDF yaklaşımı, bir using bloğu oluşturmayı, bir MuPDFDocument ile elle document.Pages.Count üzerinde döngü yapmayı, her sayfa için document.Pages[i].GetText() çağrısı yapmayı ve metni bir StringBuilder ile birleştirmeyi gerektirir. Bu, basit bir metin çıkarma için 12 satırlık bir koddur.
IronPDF bunu 3 satıra indirir: PdfDocument.FromFile() ile belgeyi yükleyin, ExtractAllText() çağrısı yapın ve sonucu yazdırın. Bu basit işlem için elle döngü yapma, StringBuilder kullanma, using blokları ile açık kaynak yönetimi gerekmez. PDF'lerden metin çıkarma hakkında daha fazla bilgi edinin.
Örnek 3: Birden Çok PDF'yi Birleştirme
Önce (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
Sonra (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
MuPDF birleştirme işlemi özellikle detaylıdır. using bloklarında hem kaynak belgeleri açmalı, MuPDFDocument.Create() ile yeni boş bir belge oluşturmalı, ilk belgenin her sayfasında CopyPage() çağırarak döngü oluşturmalı, ikinci belgenin her sayfasında CopyPage() çağırarak döngü oluşturmalı ve sonunda kaydetmelisiniz. Bu, karmaşık iç içe geçmiş olan 20+ satırlık bir koddur.
IronPDF'in statik PdfDocument.Merge() yöntemi birden fazla PDF belgesini kabul eder ve tek bir birleştirilmiş belge döndürür. Tüm işlem, okunabilir 4 satırlık bir koddur. Birçok belgeyi birleştirmek için bir liste geçebilirsiniz: PdfDocument.Merge(pdfList). Ek seçenekler için PDF'leri birleştirme ve ayırma dokümantasyonuna bakın.
Kritik Geçiş Notları
Yerel İkili Dosyaları Kaldır
MuPDF, platforma özgü yerel kütüphaneler gerektirir. IronPDF'e geçtikten sonra tümMuPDFyerel ikili dosyalarını kaldırın:
# Delete native libraries
rm -f mupdf*.dll libmupdf*.so libmupdf*.dylib
# Remove runtime folders
rm -rf runtimes/*/native/
# Update Docker files to removeMuPDFinstallation
# Delete native libraries
rm -f mupdf*.dll libmupdf*.so libmupdf*.dylib
# Remove runtime folders
rm -rf runtimes/*/native/
# Update Docker files to removeMuPDFinstallation
IronPDF, tamamen yönetilen .NET kodudur—platformlar arasında yönetilecek yerel ikili dosyalar yoktur.
Dispose Pattern Basitleştirildi
MuPDF açıkça gerekli bağlam ve belge yönetimi gerektirir:
// 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
Sayfa Yineleme Kalıbı Değişikliği
MuPDF, açıkça belirtilen sayfa sayısı ile indeks tabanlı yineleme kullanır:
// 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
Kullanılabilir Yeni Özellikler
IronPDF'e geçtikten sonra, MuPDF'in sağlayamayacağı özelliklere sahip olursunuz:
//PDF Oluşturmafrom 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 Oluşturmafrom 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 Oluşturmafrom 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}")
Ariza Giderme
Sorun 1: MuPDFDocument Bulunamadı
Problem: MuPDFDocument sınıfı IronPDF'te yok.
Çözüm: PdfDocument.FromFile() kullanın:
// 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")
Sorun 2: Pages.Count Bulunamadı
Problem: document.Pages.Count deseni çalışmıyor.
Çözüm: pdf.PageCount kullanın:
// 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
Sorun 3: GetText() Bulunamadı
Problem: page.GetText() yöntemi yok.
Çözüm: page.Text özelliğini veya pdf.ExtractAllText() kullanın:
// 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()
Sorun 4: CopyPage Bulunamadı
Sorun: Birleştirme için elle sayfa kopyalama kalıbı.
Çözüm: Statik PdfDocument.Merge() kullanın:
// 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)
Goc Kontrol Listesi
Geçiş Öncesi
- Kod tabanındaki tümMuPDFkullanımlarını envantere alın
- Tüm oluşturma işlemlerini belgelendirin (DPI, ölçek faktörleri)
- Herhangi bir PDF oluşturma ihtiyaçını tespit edin (şu anda harici araçlar kullanıyor)
- Metin çıkarma gereksinimlerini listeleyin
- Yerel ikili dosya yönetimi için dağıtım komut dosyalarını gözden geçirin -IronPDFlisans anahtarını edinin
Paket Değişiklikleri
MuPDF.NETpaketini kaldırMuPDFCorepaketini kaldırMuPDFCore.MuPDFWrapperpaketini kaldırIronPdfNuGet paketini kur:dotnet add package IronPdf- Ad alanı eklerini güncelleyin
Kod Değişiklikleri
- Başlangıçta lisans anahtarı yapılandırması ekleyin
MuPDFDocumentilePdfDocument.FromFile()değiştirindocument.Pages.Countilepdf.PageCountdeğiştirinpage.GetText()ilepage.Textveyapdf.ExtractAllText()değiştirin- Manuel
CopyPagedöngüleriniPdfDocument.Merge()ile değiştirin - Bağlam yönetimi için iç içe geçmiş
usingbloklarını kaldır - Gerekirse PDF oluşturma kodu ekleyin (HTML'den PDF'e)
Geçişten Sonra
- Projeden yerelMuPDFikili dosyalarını kaldırın -MuPDFkurulumunu kaldırmak için Docker dosyalarını güncelleyin
- Platforma özgü çalışma zamanı dosya klasörlerini kaldırın
- Oluşturulan çıktıyı karşılaştırarak regresyon testlerini çalıştırın
- Tüm hedef platformlarda test edin (Windows, Linux, macOS)
- Yeni özellikler eklemeyi düşünün (filigranlar, güvenlik, başlıklar/altbilgiler)

