KARşıLAşTıRMA

PeachPDF ve IronPDF Karşılaştırması: Teknik Kılavuz

.NET uygulamaları için doğru PDF kütüphanesini seçmek, işleme yeteneklerini, API tasarımını, özellik derinliğini ve uzun vadeli sürdürülebilirliğini değerlendirmeyi içerir. Bu teknik karşılaştırma, PDF oluşturma iş akışlarını geleceğe planlayan profesyonel .NET geliştiricileri ve mimarları için en önemli boyutlar arasındaPeachPDFve IronPDF'yi ele alır.

PeachPDFNedir?

PeachPDF, HTML'den PDF'ye dönüşüm gereksinimi olan geliştiriciler için tasarlanmış, .NET ekosisteminde nispeten yeni bir seçenektir. Kütüphane, dışa bağımlı süreçlere dayanmayarak saf bir .NET uygulaması sunarak kendini ayırır. Bu yönetilen yaklaşım, proje hedefi .NET'in desteklendiği platformlarda dağıtımı basit hale getiren hafif bir seçim yapar.

BSD-3-Clause altında lisanslı bir open-source kütüphane olarak PeachPDF, geliştiricilere kütüphaneyi belirli ihtiyaçlara göre değiştirme ve ayarlama konusunda sınırsız erişim sağlar. Ancak, gelişme durumu devam ediyor, bu da hem heyecan verici olanaklar hem de belirgin sınırlamalar anlamına gelmektedir. Daha küçük kullanıcı tabanı, topluluk desteğinin sınırlı olabileceği anlamına gelir, bu da sorunlar ortaya çıktığında geniş dokümantasyon bulmayı veya hızlı yardım almayı zorlaştırabilir.

IronPDFNedir?

IronPDF, 40 milyonun üzerinde NuGet indirmesi olan yerleşik bir .NET PDF kütüphanesidir. Kütüphane, yüksek sadakatli HTML'den PDF'ye dönüşüm sağlamak için yerleşik bir Google Chromium oluşturma motoru kullanır ve düzeni ve stili doğru bir şekilde korur. IronPDF, dijital imzalar, PDF/A uyumu, form doldurma, metin çıkarma ve ileri düzey güvenlik seçenekleri dahil olmak üzere tam özellik seti sağlar.

IronPDF, modern .NET çerçevelerini destekler ve gelecekteki dağıtım zaman çizelgelerini hedefleyen uygulamalar geliştiren ekipler için .NET 10 ve C# 14 ile tam uyumluluk sunar. Kütüphane, kurumsal uygulamalar için özel yardım ile birinci sınıf destek içerir.

Temel Mimari Karşılaştırması

PeachPDF ve IronPDF'nin temel farkı, oluşturma yaklaşımlarındadır. Bu mimari seçimlerin anlaşılması, ekiplerin gereksinimlerine en uygun kütüphaneyi seçmeleri için bilinçli kararlar almalarına yardımcı olur.

AspektPeachPDFIronPDF
UygulamaSaf .NET yönetilen kodChromium motoru ile yönetiliyor
Oluşturma MotoruTemel HTML ayrıştırıcıTam Google Chromium
Dış BağımlılıklarNoneMinumum, platform tabanlı
Lisans ModeliAçık Kaynak (BSD-3-Clause)Ticari
Geliştirme DurumuGeliştirme aşamasındaOlgun, kararlı sürümler
Kullanıcı TabanıKüçük toplulukBüyük (40M+ indirme)
Destek ModeliTopluluk tarafından yürütülüyorProfesyonel özel destek

PeachPDF'nin saf .NET çekirdeği, dışa bağımlılıklar olmadan tüm .NET destekli ortamlarda dağıtım sağlar. Bu, konteynerizasyonu basitleştirebilir ve dağıtım karmaşıklığını azaltabilir. Ancak, ticari diğini için oluşturma sadakatinden ödün veriyor— temel HTML ayrıştırma, tam bir tarayıcı motorunun piksel-tam doğruluğunu karşılayamaz.

IronPDF'nin Chromium tabanlı yaklaşımı, geliştiricilerin Chrome DevTools'ta gördükleri ile eşleşen oluşturma sağlar. Bu, özellikle karmaşık web uygulamalarını, panoları veya CSS Grid, Flexbox ve JavaScript çalıştırmasının nihai çıktıyı etkilediği tarz raporları dönüştürürken özellikle değerlidir.

HTML'den PDF'ye Dönüşüm

HTML içeriğini PDF'ye dönüştürmek, her iki kütüphane için de en yaygın kullanım durumunu temsil eder. API tasarımı ve oluşturma yetenekleri, iki çözüm arasında önemli farklılık gösterir.

PeachPDFHTML'den PDF'ye Uygulaması

PeachPDF, geliştiricilerin bir HtmlToPdfConverter örneği oluşturup Convert metodunu çağırdığı bir dönüştürücü tabanlı desen kullanır:

using PeachPDF;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = converter.Convert(html);
        File.WriteAllBytes("output.pdf", pdf);
    }
}
using PeachPDF;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = converter.Convert(html);
        File.WriteAllBytes("output.pdf", pdf);
    }
}
Imports PeachPDF
Imports System.IO

Class Program
    Shared Sub Main()
        Dim converter = New HtmlToPdfConverter()
        Dim html = "<html><body><h1>Hello World</h1></body></html>"
        Dim pdf = converter.Convert(html)
        File.WriteAllBytes("output.pdf", pdf)
    End Sub
End Class
$vbLabelText   $csharpLabel

Dönüştürücü bir byte dizisi döndürür ve çıktıyı kalıcı hale getirmek için manuel dosya işlemleri gerektirir. Bu desen basit dönüşümler için çalışır ancak doğrudan diske kaydetmek gibi yaygın işlemler için ek kod gerektirir.

IronPDFHTML-to-PDF Uygulaması

IronPDF, yerleşik kaydetme işlemleriyle akıcı bir API sağlayan ChromePdfRenderer sınıfını kullanır:

using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var 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 = "<html><body><h1>Hello World</h1></body></html>"
        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

RenderHtmlAsPdf metodu, işlenmiş içeriği kapsayan ve kaydetme, manipülasyon ve meta veri erişimi için yöntemler sunan bir PdfDocument nesnesi döndürür. Bu nesne yönelimli yaklaşım, filigran ekleme, belgeleri birleştirme veya güvenlik ayarlarını uygulama gibi sonraki işlemlerle doğal bir şekilde bütünleşir.

IronPDF'nin Chromium motoru, dönüşüm sırasında HTML5, CSS3 ve JavaScript destekleyerek animasyonlar, duyarlı düzenler ve dinamik olarak oluşturulan öğeleri de içeren modern web içeriğinin doğru bir şekilde işlenmesini sağlar.

URL-to-PDF Dönüşümü

Canlı web sayfalarını PDF'ye dönüştürmek, uzaktaki içeriği getirmeyi ve JavaScript yürütmeyi içermesi gerektiğinden zordur. İki kütüphane bu senaryoyu farklı şekilde ele alır.

PeachPDFURL Dönüşümü

PeachPDF, url dönüşümünü kendi dönüştürücü sınıfı üzerinden sağlar:

using PeachPDF;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var url = "https://www.example.com";
        var pdf = converter.ConvertUrl(url);
        File.WriteAllBytes("webpage.pdf", pdf);
    }
}
using PeachPDF;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var url = "https://www.example.com";
        var pdf = converter.ConvertUrl(url);
        File.WriteAllBytes("webpage.pdf", pdf);
    }
}
Imports PeachPDF
Imports System.IO

Class Program
    Shared Sub Main()
        Dim converter = New HtmlToPdfConverter()
        Dim url = "https://www.example.com"
        Dim pdf = converter.ConvertUrl(url)
        File.WriteAllBytes("webpage.pdf", pdf)
    End Sub
End Class
$vbLabelText   $csharpLabel

Bu uygulama, temel URL getirme işlemlerini yönetir ancak içerik işleme için yoğun bir şekilde JavaScript'e dayanan veya sayfa tamamen yüklenmeden önce belirli bekleme koşulları gerektiren sayfalarla sorun yaşayabilir.

IronPDFURL Dönüşümü

IronPDF'nin URL-to-PDF dönüşümü, Chromium motorunun tam JavaScript çalışma zamanından yararlanır.

using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var url = "https://www.example.com";
        var pdf = renderer.RenderUrlAsPdf(url);
        pdf.SaveAs("webpage.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var url = "https://www.example.com";
        var pdf = renderer.RenderUrlAsPdf(url);
        pdf.SaveAs("webpage.pdf");
    }
}
Imports IronPdf

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim url = "https://www.example.com"
        Dim pdf = renderer.RenderUrlAsPdf(url)
        pdf.SaveAs("webpage.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Dinamik içeriğe sahip sayfalar için IronPDF, JavaScript yürütme zamanlamasını kontrol etmek için işleme seçenekleri sunar:

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.JavaScript(3000);

var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.SaveAs("webpage.pdf");
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.JavaScript(3000);

var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.SaveAs("webpage.pdf");
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.WaitFor.JavaScript(3000)

Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
pdf.SaveAs("webpage.pdf")
$vbLabelText   $csharpLabel

WaitFor.JavaScript metodu, PDF oluşturma başlamadan önce istemci tarafı işlemenin tamamlanmasını sağlamak için bir gecikme belirtmeye olanak tanır. Bu, tek sayfa uygulamaları veya eşzamanlı yüklenen içeriği olan sayfalar için gereklidir.

Başlıklar ve Altbilgiler

PDF belgelerine başlıklar ve altbilgiler eklemek profesyonel bir sunumu geliştirir ve sayfa numaralandırma, markalama ve belge meta verilerini gösterme imkanı sağlar. Uygulama yaklaşımları kütüphaneler arasında büyük ölçüde farklılık gösterir.

PeachPDFBaşlıklar ve Altbilgiler

PeachPDF, dönüştürücü üzerinde dize tabanlı başlık ve altbilgi özellikleri sağlar:

using PeachPDF;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        converter.Header = "<div style='text-align:center'>My Header</div>";
        converter.Footer = "<div style='text-align:center'>Page {page}</div>";
        var html = "<html><body><h1>Document Content</h1></body></html>";
        var pdf = converter.Convert(html);
        File.WriteAllBytes("document.pdf", pdf);
    }
}
using PeachPDF;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        converter.Header = "<div style='text-align:center'>My Header</div>";
        converter.Footer = "<div style='text-align:center'>Page {page}</div>";
        var html = "<html><body><h1>Document Content</h1></body></html>";
        var pdf = converter.Convert(html);
        File.WriteAllBytes("document.pdf", pdf);
    }
}
Imports PeachPDF
Imports System.IO

Class Program
    Shared Sub Main()
        Dim converter = New HtmlToPdfConverter()
        converter.Header = "<div style='text-align:center'>My Header</div>"
        converter.Footer = "<div style='text-align:center'>Page {page}</div>"
        Dim html = "<html><body><h1>Document Content</h1></body></html>"
        Dim pdf = converter.Convert(html)
        File.WriteAllBytes("document.pdf", pdf)
    End Sub
End Class
$vbLabelText   $csharpLabel

{page} yer tutucu, temel sayfa numaralandırmayı sağlar. Uygulama, basit senaryoları işler ancak karmaşık başlık düzenleri veya koşullu biçimlendirme için gelişmiş özelleştirme seçeneklerinden yoksundur.

IronPDFBaşlıklar ve Altbilgiler

IronPDF, tam CSS desteği ve birden fazla birleşme alanı ile HTML tabanlı başlıklar ve altbilgiler sunar.

using IronPdf;
using IronPdf.Rendering;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() 
        { 
            HtmlFragment = "<div style='text-align:center'>My Header</div>" 
        };
        renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() 
        { 
            HtmlFragment = "<div style='text-align:center'>Page {page}</div>" 
        };
        var html = "<html><body><h1>Document Content</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("document.pdf");
    }
}
using IronPdf;
using IronPdf.Rendering;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() 
        { 
            HtmlFragment = "<div style='text-align:center'>My Header</div>" 
        };
        renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() 
        { 
            HtmlFragment = "<div style='text-align:center'>Page {page}</div>" 
        };
        var html = "<html><body><h1>Document Content</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("document.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Rendering

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
            .HtmlFragment = "<div style='text-align:center'>My Header</div>"
        }
        renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
            .HtmlFragment = "<div style='text-align:center'>Page {page}</div>"
        }
        Dim html = "<html><body><h1>Document Content</h1></body></html>"
        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("document.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF, {total-pages}, {url}, {date}, {time}, {html-title} ve {pdf-title} dahil olmak üzere ek birleştirme alanlarını destekler. HtmlHeaderFooter sınıfı, başlık/altbilgi boyutlarını kontrol etmek için bir MaxHeight özelliğini de kabul eder:

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = @"<div style='text-align:center; font-size:10pt;'>Company Report</div>",
    MaxHeight = 30
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = @"<div style='text-align:center; font-size:9pt;'>Page {page} of {total-pages}</div>",
    MaxHeight = 25
};
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = @"<div style='text-align:center; font-size:10pt;'>Company Report</div>",
    MaxHeight = 30
};

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

renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With {
    .HtmlFragment = "<div style='text-align:center; font-size:10pt;'>Company Report</div>",
    .MaxHeight = 30
}

renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With {
    .HtmlFragment = "<div style='text-align:center; font-size:9pt;'>Page {page} of {total-pages}</div>",
    .MaxHeight = 25
}
$vbLabelText   $csharpLabel

Özellik Karşılaştırma Matrisi

Temel dönüşümün ötesinde, PDF kütüphaneleri belge manipülasyonu, güvenlik ve gelişmiş biçimlendirmeyi desteklemelidir. Bu karşılaştırma, belgelenmiş yeteneklerine dayalı olarak iki kütüphane arasındaki özellik açığını vurgular.

ÖzellikPeachPDFIronPDF
HTML'den PDF'yeTemelTam Chromium
URL'yi PDF'ye çevirSınırlıDesteklenen
CSS Grid/FlexboxHayırEvet
JavaScript YürütmeSınırlıTam ES2024
PDF'leri birleştirEvetEvet
PDF AyırmaSınırlıEvet
FiligranlarSınırlıTam HTML
Başlıklar/AltbilgilerTemelTam HTML
Dijital İmzalarHayırEvet
PDF/A UygunlukHayırEvet
Form DoldurmaSınırlıEvet
Metin ÇıkarmaTemelEvet
Resim ÇıkarmaHayırEvet
Şifre KorumasıSınırlıEvet
Asenkron DestekSınırlıEvet
Platformlar ArasıBilinmiyorWindows, Linux, macOS, Docker

Dijital İmzalar ve Güvenlik

Kurumsal uygulamalar sıklıkla kriptografik imzalar ve belge güvenliği gerektirir. Bu yetenekler olgun PDF kütüphanelerini temel dönüşüm araçlarından ayırır.

PeachPDF şu anda dijital imzaları desteklemediği için, kimlik doğrulama veya yasal uygunluk gerektiren belge iş akışları için uygulanabilirliğini sınırlar.

IronPDF, X.509 sertifikaları kullanarak kapsamlı dijital imza yetenekleri sağlar.

using IronPdf;
using IronPdf.Signing;

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

var signature = new PdfSignature("certificate.pfx", "password")
{
    SigningReason = "Document Approval",
    SigningLocation = "New York"
};

pdf.Sign(signature);
pdf.SaveAs("signed.pdf");
using IronPdf;
using IronPdf.Signing;

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

var signature = new PdfSignature("certificate.pfx", "password")
{
    SigningReason = "Document Approval",
    SigningLocation = "New York"
};

pdf.Sign(signature);
pdf.SaveAs("signed.pdf");
Imports IronPdf
Imports IronPdf.Signing

Dim pdf = PdfDocument.FromFile("document.pdf")

Dim signature = New PdfSignature("certificate.pfx", "password") With {
    .SigningReason = "Document Approval",
    .SigningLocation = "New York"
}

pdf.Sign(signature)
pdf.SaveAs("signed.pdf")
$vbLabelText   $csharpLabel

Parola koruma ve erişim kontrolü için IronPDF, ince ayarlı güvenlik ayarlarını sunar.

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

pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;

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

pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;

pdf.SaveAs("protected.pdf");
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Confidential</h1>")

pdf.SecuritySettings.OwnerPassword = "owner123"
pdf.SecuritySettings.UserPassword = "user123"
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint

pdf.SaveAs("protected.pdf")
$vbLabelText   $csharpLabel

PDF Manipülasyon İşlemleri

Mevcut PDF'lerle çalışmak, yükleme, değiştirme ve birleştirme yeteneklerini gerektirir. Her iki kütüphane de temel işlemleri destekler ancak işlevsellik derinliği farklılık gösterir.

PDF Yükleme ve Değiştirme

PeachPDF yaklaşımı:

using PeachPDF;

var document = PdfReader.LoadFromFile("input.pdf");
document.AddPage();
document.Save("modified.pdf");
using PeachPDF;

var document = PdfReader.LoadFromFile("input.pdf");
document.AddPage();
document.Save("modified.pdf");
Imports PeachPDF

Dim document = PdfReader.LoadFromFile("input.pdf")
document.AddPage()
document.Save("modified.pdf")
$vbLabelText   $csharpLabel

IronPDF yaklaşımı:

using IronPdf;

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

var renderer = new ChromePdfRenderer();
var newPage = renderer.RenderHtmlAsPdf("<h1>New Page</h1>");
pdf.AppendPdf(newPage);

pdf.ApplyWatermark("<div style='color: red; font-size: 48pt;'>DRAFT</div>");

pdf.SaveAs("modified.pdf");
using IronPdf;

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

var renderer = new ChromePdfRenderer();
var newPage = renderer.RenderHtmlAsPdf("<h1>New Page</h1>");
pdf.AppendPdf(newPage);

pdf.ApplyWatermark("<div style='color: red; font-size: 48pt;'>DRAFT</div>");

pdf.SaveAs("modified.pdf");
Imports IronPdf

Dim pdf = PdfDocument.FromFile("input.pdf")

Dim renderer = New ChromePdfRenderer()
Dim newPage = renderer.RenderHtmlAsPdf("<h1>New Page</h1>")
pdf.AppendPdf(newPage)

pdf.ApplyWatermark("<div style='color: red; font-size: 48pt;'>DRAFT</div>")

pdf.SaveAs("modified.pdf")
$vbLabelText   $csharpLabel

IronPDF, yeni sayfalar olarak HTML ile render edilen içerik eklemeyi ve tam HTML/CSS formatlamasını kullanarak filigranlar uygulamayı sağlar.

Birden Fazla PDF'yi Birleştirme

PeachPDF birleştirme:

using PeachPDF;

var doc1 = PdfReader.LoadFromFile("doc1.pdf");
var doc2 = PdfReader.LoadFromFile("doc2.pdf");
doc1.MergeWith(doc2);
doc1.Save("merged.pdf");
using PeachPDF;

var doc1 = PdfReader.LoadFromFile("doc1.pdf");
var doc2 = PdfReader.LoadFromFile("doc2.pdf");
doc1.MergeWith(doc2);
doc1.Save("merged.pdf");
Imports PeachPDF

Dim doc1 = PdfReader.LoadFromFile("doc1.pdf")
Dim doc2 = PdfReader.LoadFromFile("doc2.pdf")
doc1.MergeWith(doc2)
doc1.Save("merged.pdf")
$vbLabelText   $csharpLabel

IronPDF birleştirme:

using IronPdf;

var pdf1 = PdfDocument.FromFile("doc1.pdf");
var pdf2 = PdfDocument.FromFile("doc2.pdf");

var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
using IronPdf;

var pdf1 = PdfDocument.FromFile("doc1.pdf");
var pdf2 = PdfDocument.FromFile("doc2.pdf");

var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
Imports IronPdf

Dim pdf1 = PdfDocument.FromFile("doc1.pdf")
Dim pdf2 = PdfDocument.FromFile("doc2.pdf")

Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
$vbLabelText   $csharpLabel

IronPDF'in statik Merge metodu, birden fazla belgeyi kabul eder ve kaynak belgeleri değiştirmeden yeni bir birleştirilmiş PDF üretir. Kütüphane ayrıca PDF'leri bölme ve belirli sayfa aralıklarını çıkarma işlemlerini destekler.

Asenkron İşlemler

Modern .NET uygulamaları, I/O tabanlı işlemler için async/await desenlerinden yararlanır. Bu yetenek, eşzamanlı PDF oluşturma isteklerini ele alan web uygulamaları ve hizmetlerde performansı etkiler.

PeachPDF esasen eşzamanlı işlemler sağlar.

var document = PdfDocument.Create();
document.AddHtmlContent(html);
var document = PdfDocument.Create();
document.AddHtmlContent(html);
Dim document = PdfDocument.Create()
document.AddHtmlContent(html)
$vbLabelText   $csharpLabel

IronPDF, asenkron PDF oluşturmayı destekler.

using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Async PDF</h1>");
pdf.SaveAs("async_output.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Async PDF</h1>");
pdf.SaveAs("async_output.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()
Dim pdf = Await renderer.RenderHtmlAsPdfAsync("<h1>Async PDF</h1>")
pdf.SaveAs("async_output.pdf")
$vbLabelText   $csharpLabel

Asenkron destek, ASP.NET Core uygulamaları ve arka plan hizmetlerinde iş parçacıklarını engellemeden çoklu eşzamanlı PDF oluşturma isteklerinin verimli bir şekilde ele alınmasına olanak tanır, throughput sağlar.

PeachPDFGeçişi için API Eşlemesi

PeachPDF'den IronPDF'ye geçiş yapmayı değerlendiren ekipler, eşdeğer işlemlerin bu eşlemesini referans alabilir.

PeachPDFIronPDF
PdfDocument.Create()new ChromePdfRenderer()
document.AddHtmlContent(html)renderer.RenderHtmlAsPdf(html)
document.Save(path)pdf.SaveAs(path)
document.ToByteArray()pdf.BinaryData
PdfReader.LoadFromFile(path)PdfDocument.FromFile(path)
document.AddPage()pdf.AddPdfPages(newPdf)
document.SetMetadata()pdf.MetaData
document.MergeWith(other)PdfDocument.Merge(pdfs)

Ana desen farkı, IronPDF'nin dönüştürücü (içeriği dönüştüren) ile belgeyi (PDF'yi temsil eden) ayırmasındaki yapısal farklılıktır. Bu ayrım, bir kez yapılandırma yapılmasına ve birden fazla dönüşümde kullanılmasına olanak tanır.

TakımlarPeachPDFGeçişini Düşündüğünde

Birkaç faktör, geliştirme ekiplerini PeachPDF'ye alternatifleri değerlendirmeye yönlendirir:

Render sınırlamaları uygulamalar, karmaşık CSS düzenlerini, duyarlı tasarımları veya JavaScript ile yönlendirilen içeriği doğru şekilde çoğaltmak zorunda olduğunda belirginleşir. PeachPDF'nin temel HTML ayrıştırması, sofistike web içeriği için tarayıcı-motor sadakatini yakalayamaz.

Özellik gereksinimleri, uygulamalar olgunlaştıkça genişler. Dijital imzalar, arşivleme için PDF/A uygunluğu, form doldurma ve gelişmiş güvenlik, PeachPDF'nin şu anda eksik olduğu yeteneklerdir. Eksik özellikler için çözümler geliştirmek, teknik borcu ve bakım yükünü artırır.

Destek konuları, üretim dağıtımlarını etkiler. Daha yeni bir kütüphane için topluluk destekli destek, mission critical uygulamalar için gereken yanıt sürelerini veya uzmanlığı sağlamayabilir. SLA'larla profesyonel destek, kurumsal operasyonlar için öngörülebilirlik sağlar.

Dokümantasyon derinliği, geliştirici verimliliğini etkiler. Kapsamlı eğitimler, kod örnekleri ve API referansları, uygulamayı hızlandırır ve hata ayıklama süresini azaltır. IronPDF'nin dokümantasyonu ve eğitimleri, yaygın senaryoların kapsamlı bir şekilde kapsanmasını sağlar.

Güçlü Yönler ve Uzlaşmalar

PeachPDFGüçlü Yönleri

  • Harici bağımlılıklar olmadan saf .NET uygulaması
  • Geliştirici başına maliyet olmadan açık kaynak lisansı
  • Temel HTML-to-PDF dönüşümü için basit API
  • Hafif dağıtım ayak izi

PeachPDFSınırlamaları

  • Tam CSS3 desteği olmadan temel HTML renderleme
  • Sınırlı JavaScript yürütme yeteneği
  • Dijital imza işlevselliği yok
  • Daha küçük topluluk ve dokümantasyon kaynakları
  • Yeni bir kütüphane olarak belirsiz yol haritası

IronPDFGüçlü Yönleri

  • Piksel mükemmel çıktı için tam Chromium render motoru
  • İmzalar, formlar ve güvenlik dahil kapsamlı özellik seti
  • Kod örnekleri ile kapsamlı dokümantasyon
  • Özel destek ile profesyonel yardım
  • Düzenli güncellemeler ile aktif geliştirme
  • Docker ve bulut ortamlarını içeren çapraz platform dağıtımı

IronPDFDikkate Alınacaklar

  • Ticari lisans modeli bütçe ayrımı gerektirir
  • Chromium bağımlılığı, dağıtım boyutunu artırır
  • Üretim kullanımı için lisans anahtarı yapılandırmayı gerektirir

Sonuç

PeachPDF, temel HTML-to-PDF gereksinimlerini ve sıkı bütçe kısıtlamalarını karşılamak için hafif bir açık kaynak seçeneği sunar. Saf .NET uygulaması, dağıtımı basitleştirir ve izinli lisansı maliyet engellerini kaldırır.

IronPDF, üretim uygulamalarının genellikle gerektirdiği render doğruluğu, özellik derinliği ve profesyonel destek sunar. Chromium motoru, karmaşık web içeriğinin güvenilir bir şekilde dönüştürülmesini sağlarken, kapsamlı güvenlik ve manipülasyon özellikleri kurumsal belge iş akışlarını destekler.

.NET uygulamalarında gelecekteki dağıtım hedefleyen PDF oluşturma yeteneklerini planlayan ekipler için IronPDF'nin olgun mimarisi, geniş özellik seti ve aktif bakımı uzun vadeli geliştirme yatırımları için sağlam bir seçimdir. Kütüphanenin .NET 10 ve modern C# özellikleri ile uyumluluğu, .NET ekosistemi geliştikçe uygulamaların güncel kalmasını sağlar.


Ek uygulama rehberliği için, IronPDF HTML-to-PDF tutorial ve kod örneklerini inceleyin.

Lütfen dikkate alınPeachPDF, ilgili sahibinin tescilli bir markasıdır. Bu site,PeachPDFile bağlantılı, onaylanmış veya desteklenmiş değildir. Tüm ürün adları, logolar ve markalar kendi sahiplerine aittir. Karşılaştırmalar, yalnızca bilgilendirme amaçlıdır ve yazı sırasında halka açık bilgilerle alakalı olarak yansıtılmaktadır.