Altbilgi içeriğine atla
GEçIş KıLAVUZLARı

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:

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

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

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

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

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

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

  1. .NET Ortamı: .NET Framework 4.6.2+ veya .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGet Erişimi: NuGet paketlerini yükleme yeteneği
  3. 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
SHELL

Ayrıca, yerelMuPDFikili dosyalarını dağıtımınızdan kaldırın:

  • mupdf.dll, libmupdf.so, libmupdf.dylib sil
  • 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"
$vbLabelText   $csharpLabel

MuPDFKullanımını Belirleme

# Find allMuPDFreferences
grep -r "MuPDF\|MuPDFCore\|MuPDFDocument" --include="*.cs" .
# Find allMuPDFreferences
grep -r "MuPDF\|MuPDFCore\|MuPDFDocument" --include="*.cs" .
SHELL

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
SHELL

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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}")
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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()
$vbLabelText   $csharpLabel

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)
$vbLabelText   $csharpLabel

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.NET paketini kaldır
  • MuPDFCore paketini kaldır
  • MuPDFCore.MuPDFWrapper paketini kaldır
  • IronPdf NuGet paketini kur: dotnet add package IronPdf
  • Ad alanı eklerini güncelleyin

Kod Değişiklikleri

  • Başlangıçta lisans anahtarı yapılandırması ekleyin
  • MuPDFDocument ile PdfDocument.FromFile() değiştirin
  • document.Pages.Count ile pdf.PageCount değiştirin
  • page.GetText() ile page.Text veya pdf.ExtractAllText() değiştirin
  • Manuel CopyPage döngülerini PdfDocument.Merge() ile değiştirin
  • Bağlam yönetimi için iç içe geçmiş using blokları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)

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara