TuesPechkin ve IronPDF Karşılaştırması: Teknik Kılavuz
.NET geliştiricilerinin HTML'yi PDF'ye dönüştürmesi gerektiğinde, eski oluşturma motorları etrafında oluşturulmuş birkaç kütüphane seçeneği ortaya çıkar. TuesPechkin, wkhtmltopdf kütüphanesini sararak PDF oluşturma yetenekleri sağlayan bu tür bir çözümü temsil eder. Bu teknik karşılaştırma, mimarların ve geliştiricilerin eski sarıcılar ve modern PDF kütüphaneleri arasındaki ödünleşimleri anlamalarına yardımcı olmak içinTuesPechkinve IronPDF'yi inceler.
TuesPechkin'i Anlamak
TuesPechkin, HTML içeriğinden PDF belgeleri üretmek için geliştiricilere yardımcı olmak üzere tasarlanmış wkhtmltopdf kütüphanesinin bir iş parçacığı güvenli sarıcıdır. Bu kütüphane, ThreadSafeConverter uygulaması sağlayarak wkhtmltopdf'e özgü eşzamanlılık sorunlarını ele almaya çalışır.
Ancak,TuesPechkintemel teknolojisinden temel sınırlamalar mevcuttur:
- Terk Edilmiş Alt Yapı: wkhtmltopdf'yi saran TuesPechkin, 2015'te güncellenmiş olup Aralık 2022'de resmen terk edilmiştir
- Güncel Olmayan Oluşturma Motoru: Pre-Chrome dönemi Qt WebKit 4.8 motorunu kullanır
- Kompleks Thread Yönetimi: Geliştiricilerin
RemotingToolsetve dağıtım desenleri aracılığıyla thread güvenliğini manuel olarak yapılandırmasını gerektirir - Yük Altında Kararlılık: Thread-güvenli yapılandırmaya rağmen, kütüphane yüksek eşzamanlılık altında
AccessViolationExceptionile çökebilir veya işlem kilitlenmeleri oluşabilir - Sınırlı CSS Desteği: Flexbox veya CSS Grid gibi modern CSS özelliklerini desteklemez
- JavaScript Sınırlamaları: ES6+ desteği olmadan güvenilmez JavaScript çalıştırımı
Güvenlik Hususları
TuesPechkin, wkhtmltopdf'nin güvenlik açıklarını devralır. Kritik (9.8/10) olarak derecelendirilen CVE-2022-35583, tümTuesPechkinsürümlerini etkileyen bir Sunucu Tarafı İstek Sahteciliği güvenlik açığını temsil eder. Wkhtmltopdf terkedildiği için, bu güvenlik açığı asla yamalanmayacaktır, bu daTuesPechkinkullanan uygulamaların kalıcı olarak açık olacağı anlamına gelir.
IronPDF'yi Anlamak
IronPDF, modern, ticari bir PDF kütüphanesi sağlayarak kökten farklı bir yaklaşım benimser, yerel iş parçacığı güvenliği ve bir Chromium tabanlı oluşturma motoru sunar. Geçmişte kalan araçları sarmak yerine,IronPDFPDF oluşturmayı birincil odaklanması olarak sunar.
IronPDF'in ana özellikleri şunları içerir:
- Modern Chromium Motoru: HTML5, CSS3, Flexbox, CSS Grid ve ES6+ JavaScript için desteklidir
- Yerel İş Parçacığı Güvenliği: Manuel iş parçacığı yönetimi gerekliliği yok—eşzamanlı işlemler otomatik olarak çalışır
- Aktif Geliştirme: Haftalık güncellemeler ve sürekli iyileştirmeler
- Kapsamlı PDF Özellikleri: Oluşturmanın ötesinde, düzenleme, dijital imzalar, PDF/A uyumluluğu ve form doldurma içerir
- Basit Entegrasyon: Yerel ikili dağıtım olmadan basit NuGet kurulumu
Özellik Karşılaştırması
Aşağıdaki tablo, teknik farklılıklarıTuesPechkinveIronPDFarasında vurgular:
| Özellik | TuesPechkin | IronPDF |
|---|---|---|
| Lisans | Ücretsiz (MIT Lisansı) | Ticari |
| İş Parçacığı Güvenliği | Manuel Yönetim Gerektirir | Yerel Destek |
| Eşzamanlılık | Sınırlı, yük altında çökebilir | Sağlam, yüksek eşzamanlılığı işler |
| Geliştirme Durumu | Aktifsiz, en son güncellemeler 2015 | Aktif, sürekli iyileştirmeler |
| Kullanım Kolaylığı | Karmaşık kurulum | Kullanıcı dostu rehberlerle |
| Dokümantasyon | Temel | Örneklerle kapsamlı |
| Render Motoru | Qt WebKit 4.8 (güncel değil) | Modern Krom |
| CSS3 Desteği | Kısmi | Desteklenen |
| Flexbox/Grid | Desteklenmiyor | Desteklenen |
| JavaScript | Güvensiz | Tam ES6+ |
| PDF Manipülasyonu | Mevcut değil | Desteklenen |
| Dijital İmzalar | Mevcut değil | Desteklenen |
| PDF/A Uyumlu | Mevcut değil | Desteklenen |
| Form Doldurma | Mevcut değil | Desteklenen |
| Filigranlar | Mevcut değil | Desteklenen |
| Birleştirme/Bölme | Mevcut değil | Desteklenen |
| Başlıklar/Altbilgiler | Sadece temel metin | Tam HTML desteği |
| Güvenlik Yamaları | Asla (terk edilmiş) | Düzenli güncellemeler |
API Mimarisi Farklılıkları
Başlatma desenleri ve temel kullanım incelendiğinde,TuesPechkinveIronPDFarasındaki mimari farklılıklar hemen ortaya çıkar.
TuesPechkinBaşlatma Karmaşıklığı
TuesPechkin, dönüştürücüler, araç setleri ve dağıtım yapılandırmalarını içeren karmaşık bir başlatma ritüelini gerekli kılar:
// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;
class Program
{
static void Main()
{
var converter = new StandardConverter(
new RemotingToolset<PdfToolset>(
new Win64EmbeddedDeployment(
new TempFolderDeployment())));
string html = "<html><body><h1>Hello World</h1></body></html>";
byte[] pdfBytes = converter.Convert(new HtmlToPdfDocument
{
Objects = { new ObjectSettings { HtmlText = html } }
});
File.WriteAllBytes("output.pdf", pdfBytes);
}
}// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;
class Program
{
static void Main()
{
var converter = new StandardConverter(
new RemotingToolset<PdfToolset>(
new Win64EmbeddedDeployment(
new TempFolderDeployment())));
string html = "<html><body><h1>Hello World</h1></body></html>";
byte[] pdfBytes = converter.Convert(new HtmlToPdfDocument
{
Objects = { new ObjectSettings { HtmlText = html } }
});
File.WriteAllBytes("output.pdf", pdfBytes);
}
}Imports TuesPechkin
Imports System.IO
Class Program
Shared Sub Main()
Dim converter = New StandardConverter(
New RemotingToolset(Of PdfToolset)(
New Win64EmbeddedDeployment(
New TempFolderDeployment())))
Dim html As String = "<html><body><h1>Hello World</h1></body></html>"
Dim pdfBytes As Byte() = converter.Convert(New HtmlToPdfDocument With {
.Objects = {New ObjectSettings With {.HtmlText = html}}
})
File.WriteAllBytes("output.pdf", pdfBytes)
End Sub
End ClassBu desen, StandardConverter, RemotingToolset, Win64EmbeddedDeployment ve TempFolderDeployment gibi birden çok iç içe sınıfın anlaşılmasını gerektirir. Dağıtım yapılandırmasının ayrıca hedef platform mimarisi (x86/x64) ile eşleşmesi gerekir.
IronPDFBasitleştirilmiş Yaklaşımı
IronPDF, doğrudan bir API ile tüm dağıtım karmaşıklığını ortadan kaldırır:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}Imports IronPdf
Imports System
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 ClassChromePdfRenderer sınıfı, platform spesifik yapılandırma gerektirmeden PDF üretimine anında erişim sağlar. Kapsamlı HTML dönüşüm rehberliği için HTML'den PDF'e öğreticisini inceleyin.
URL'den PDF'ye Dönüştürme
Web sayfalarını PDF belgelere dönüştürmek, iki kütüphane arasındaki API kullanılabilirliği farklarını gösterir.
TuesPechkinUygulaması
TuesPechkin, URL'yi belirtmek için ObjectSettings içinde PageUrl özelliğini kullanır:
// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;
class Program
{
static void Main()
{
var converter = new StandardConverter(
new RemotingToolset<PdfToolset>(
new Win64EmbeddedDeployment(
new TempFolderDeployment())));
byte[] pdfBytes = converter.Convert(new HtmlToPdfDocument
{
Objects = {
new ObjectSettings {
PageUrl = "https://www.example.com"
}
}
});
File.WriteAllBytes("webpage.pdf", pdfBytes);
}
}// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;
class Program
{
static void Main()
{
var converter = new StandardConverter(
new RemotingToolset<PdfToolset>(
new Win64EmbeddedDeployment(
new TempFolderDeployment())));
byte[] pdfBytes = converter.Convert(new HtmlToPdfDocument
{
Objects = {
new ObjectSettings {
PageUrl = "https://www.example.com"
}
}
});
File.WriteAllBytes("webpage.pdf", pdfBytes);
}
}Imports TuesPechkin
Imports System.IO
Class Program
Shared Sub Main()
Dim converter = New StandardConverter(
New RemotingToolset(Of PdfToolset)(
New Win64EmbeddedDeployment(
New TempFolderDeployment())))
Dim pdfBytes As Byte() = converter.Convert(New HtmlToPdfDocument With {
.Objects = {
New ObjectSettings With {
.PageUrl = "https://www.example.com"
}
}
})
File.WriteAllBytes("webpage.pdf", pdfBytes)
End Sub
End ClassAynı başlatma karmaşıklığı geçerlidir ve eski WebKit motoru, eksik CSS3 ve JavaScript desteği nedeniyle modern web sitelerini yanlış oluşturabilir.
IronPDFUygulaması
IronPDF, modern Chromium motoru ile URL rendere etmeyi sağlayan özel bir yöntem sunar:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
pdf.SaveAs("webpage.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
pdf.SaveAs("webpage.pdf");
}
}Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")
pdf.SaveAs("webpage.pdf")
End Sub
End ClassRenderUrlAsPdf method sayfaları başsız Chromium tarayıcıda yükler, JavaScript'i çalıştırır ve tüm modern CSS stillerini doğru bir şekilde uygular. React, Angular veya Vue.js gibi çerçevelerle oluşturulmuş web uygulamaları için bu, TuesPechkin'in doğru şekilde işleyemediği yerlerde önemlidir.
Özel İşleme Ayarları
Sayfa boyutları, kenar boşlukları ve yönlendirmeyi yapılandırmak, belge ayarlarına yönelik farklı yaklaşımları ortaya çıkarır.
TuesPechkinYapılandırması
TuesPechkin, iç içe yapılandırma ile GlobalSettings ve ObjectSettings sınıflarını kullanır:
// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;
class Program
{
static void Main()
{
var converter = new StandardConverter(
new RemotingToolset<PdfToolset>(
new Win64EmbeddedDeployment(
new TempFolderDeployment())));
string html = "<html><body><h1>Custom PDF</h1></body></html>";
var document = new HtmlToPdfDocument
{
GlobalSettings = {
Orientation = GlobalSettings.PdfOrientation.Landscape,
PaperSize = GlobalSettings.PdfPaperSize.A4,
Margins = new MarginSettings { Unit = Unit.Millimeters, Top = 10, Bottom = 10 }
},
Objects = {
new ObjectSettings { HtmlText = html }
}
};
byte[] pdfBytes = converter.Convert(document);
File.WriteAllBytes("custom.pdf", pdfBytes);
}
}// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;
class Program
{
static void Main()
{
var converter = new StandardConverter(
new RemotingToolset<PdfToolset>(
new Win64EmbeddedDeployment(
new TempFolderDeployment())));
string html = "<html><body><h1>Custom PDF</h1></body></html>";
var document = new HtmlToPdfDocument
{
GlobalSettings = {
Orientation = GlobalSettings.PdfOrientation.Landscape,
PaperSize = GlobalSettings.PdfPaperSize.A4,
Margins = new MarginSettings { Unit = Unit.Millimeters, Top = 10, Bottom = 10 }
},
Objects = {
new ObjectSettings { HtmlText = html }
}
};
byte[] pdfBytes = converter.Convert(document);
File.WriteAllBytes("custom.pdf", pdfBytes);
}
}Imports TuesPechkin
Imports System.IO
Module Program
Sub Main()
Dim converter = New StandardConverter(
New RemotingToolset(Of PdfToolset)(
New Win64EmbeddedDeployment(
New TempFolderDeployment())))
Dim html As String = "<html><body><h1>Custom PDF</h1></body></html>"
Dim document = New HtmlToPdfDocument With {
.GlobalSettings = New GlobalSettings With {
.Orientation = GlobalSettings.PdfOrientation.Landscape,
.PaperSize = GlobalSettings.PdfPaperSize.A4,
.Margins = New MarginSettings With {.Unit = Unit.Millimeters, .Top = 10, .Bottom = 10}
},
.Objects = {
New ObjectSettings With {.HtmlText = html}
}
}
Dim pdfBytes As Byte() = converter.Convert(document)
File.WriteAllBytes("custom.pdf", pdfBytes)
End Sub
End ModuleIronPDFYapılandırması
IronPDF, RenderingOptions özelliğinde ayarları sezgisel özellik adlarıyla merkezileştirir:
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Engines.Chrome;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
string html = "<html><body><h1>Custom PDF</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("custom.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Engines.Chrome;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
string html = "<html><body><h1>Custom PDF</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("custom.pdf");
}
}Imports IronPdf
Imports IronPdf.Engines.Chrome
Imports System
Module Program
Sub Main()
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.MarginTop = 10
renderer.RenderingOptions.MarginBottom = 10
Dim html As String = "<html><body><h1>Custom PDF</h1></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("custom.pdf")
End Sub
End ModuleRenderingOptions sınıfı, milimetre cinsinden doğrudan belirtilen kenar boşluğu değerleri ile tek bir yapılandırma yaklaşımı sunar.
İş Parçacığı Güvenliği ve Eşzamanlılık
İş parçacığı güvenliği, sunucu tarafı PDF oluşturma için kritik bir husus olup, iki kütüphane köklü olarak farklı yaklaşımlar benimser.
TuesPechkinİş Parçacığı Yönetimi
TuesPechkin, ThreadSafeConverter ile thread-güvenli çalışma reklamı yapar, ancak uygulamanın belgelenmiş sınırlamaları vardır:
//TuesPechkin- Even with ThreadSafeConverter, crashes under load
var converter = new TuesPechkin.ThreadSafeConverter(
new TuesPechkin.RemotingToolset<PechkinBindings>());
// Under high load, applications may experience:
// - System.AccessViolationException
// - StackOverflowException
// - Process hangs indefinitely
// - Memory corruption//TuesPechkin- Even with ThreadSafeConverter, crashes under load
var converter = new TuesPechkin.ThreadSafeConverter(
new TuesPechkin.RemotingToolset<PechkinBindings>());
// Under high load, applications may experience:
// - System.AccessViolationException
// - StackOverflowException
// - Process hangs indefinitely
// - Memory corruption' TuesPechkin- Even with ThreadSafeConverter, crashes under load
Dim converter = New TuesPechkin.ThreadSafeConverter(
New TuesPechkin.RemotingToolset(Of PechkinBindings)())
' Under high load, applications may experience:
' - System.AccessViolationException
' - StackOverflowException
' - Process hangs indefinitely
' - Memory corruptionAltında yatan wkhtmltopdf kütüphanesi yüksek eşzamanlılık senaryoları için tasarlanmamıştır ve sarıcı düzeyinde iş parçacığı yönetimi ile bile, kararlılık sorunları önemli yük altında devam eder.
IronPDFYerel Eşzamanlılık
IronPDF herhangi bir yapılandırma olmadan yerel iş parçacığı güvenliği sağlar:
//IronPDF- Native thread safety
var renderer = new ChromePdfRenderer();
// Safe for concurrent use across multiple threads
// No AccessViolationException
// No process hangs
// Stable under high load//IronPDF- Native thread safety
var renderer = new ChromePdfRenderer();
// Safe for concurrent use across multiple threads
// No AccessViolationException
// No process hangs
// Stable under high load'IronPDF- Native thread safety
Dim renderer As New ChromePdfRenderer()
' Safe for concurrent use across multiple threads
' No AccessViolationException
' No process hangs
' Stable under high loadChromePdfRenderer içsel olarak eşzamanlılıkla işlenir, geliştiricilerin iş parçacığı senkronizasyonundan ziyade uygulama mantığına odaklanmasına olanak tanır.
Modern CSS ve JavaScript Desteği
TuesPechkin veIronPDFarasındaki oluşturma motoru farkları, modern web teknolojileriyle çalışırken en belirgin hale gelir.
TuesPechkinOluşturma Sınırlamaları
TuesPechkin'in Qt WebKit 4.8 motoru modern CSS düzen sistemlerinden önce gelmektedir:
<div style="display: flex; justify-content: space-between; gap: 20px;">
<div style="flex: 1;">Column 1</div>
<div style="flex: 1;">Column 2</div>
</div>
<div style="display: grid; grid-template-columns: repeat(3, 1fr);">
<div>Grid Item 1</div>
<div>Grid Item 2</div>
<div>Grid Item 3</div>
</div>
<div style="display: flex; justify-content: space-between; gap: 20px;">
<div style="flex: 1;">Column 1</div>
<div style="flex: 1;">Column 2</div>
</div>
<div style="display: grid; grid-template-columns: repeat(3, 1fr);">
<div>Grid Item 1</div>
<div>Grid Item 2</div>
<div>Grid Item 3</div>
</div>TuesPechkin kullanan uygulamaların çok sütunlu tasarımlara ulaşmak için tablo tabanlı düzenlere veya diğer CSS2.1 çözümlerine dayanması gerekmektedir.
IronPDFModern Oluşturma
IronPDF'nin Chromium motoru tüm modern CSS ve JavaScript'i destekler:
// Modern CSS works correctly with IronPDF
var html = @"
<div style='display: flex; justify-content: space-between;'>
<div>Left</div>
<div>Right</div>
</div>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
// Renders correctly with full Flexbox support// Modern CSS works correctly with IronPDF
var html = @"
<div style='display: flex; justify-content: space-between;'>
<div>Left</div>
<div>Right</div>
</div>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
// Renders correctly with full Flexbox supportDim html As String = "
<div style='display: flex; justify-content: space-between;'>
<div>Left</div>
<div>Right</div>
</div>"
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
' Renders correctly with full Flexbox supportBu, geliştiricilerin web görüntüsü ve PDF oluşturma için aynı HTML/CSS'i uygun hale getirmesini sağlar, ayrı şablonlar sürdürmeye gerek kalmaz.
EkiplerinTuesPechkinAlternatiflerini Değerlendirdikleri Durumlar
Birçok senaryo, geliştirme ekiplerinin TuesPechkin'e alternatifleri değerlendirmeye ittiğinde ortaya çıkar:
Güvenlik Gereksinimleri
9.8/10 kritiklik derecesine sahip CVE-2022-35583 ve altta yatan wkhtmltopdf kütüphanesi resmen terk edilmiş olduğundan, güvenlik uyum gereksinimlerine sahip kuruluşlarTuesPechkinkullanmaya devam edemez. SSRF güvenlik açığı, saldırganların iç ağlara erişmesine, kimlik bilgilerini çalmasına ve kötü niyetli HTML içeriği yoluyla veri dışa çıkarmasına olanak tanır.
Modern Web Teknolojisi Benimsemesi
Modern ön uç çerçevelerini (React, Angular, Vue.js) veya CSS düzen sistemlerini (Flexbox, Grid) benimseyen ekipler, TuesPechkin'in içeriğini doğru bir şekilde işleyemediğini bulur. Güncel olmayan WebKit 4.8 motoru, neredeyse on yılı aşkın süredir standart olan teknolojileri desteklemez.
Yük Altında Kararlılık
Eşzamanlı PDF oluşturma yükü altında çökme, takılma veya AccessViolationException hatası yaşayan sunucu tarafı uygulamalar, genellikle bu sorunları TuesPechkin'in thread sınırlamalarıyla ilişkilendirir. ThreadSafeConverter yapılandırmasına rağmen, alttaki wkhtmltopdf kütüphanesi yüksek eşzamanlılık ortamları için tasarlanmamıştır.
PDF Özellik Gereksinimleri
TuesPechkin yalnızca HTML'den PDF'e dönüşüm sağlamaktadır. PDF manipülasyonu (birleştirme, bölme), dijital imzalar, PDF/A uyumluluğu, form doldurma veya filigranlama gerektiren ekipler, bu yetenekleri doğal olarak sağlayanIronPDFgibi alternatifleri düşünmelidir.
Basitleştirilmiş Dağıtım
RemotingToolset, Win64EmbeddedDeployment ve TempFolderDeployment ileTuesPechkinbaşlatma deseni dağıtım karmaşıklığı ekler. Hedef ortam için platforma özgü doğal ikili dosyaların doğru şekilde yapılandırılması gerekmektedir. IronPDF, standart bir NuGet kurulumu ile bu karmaşıklığı ortadan kaldırır.
API Eşleme Başvurusu
TuesPechkin'den IronPDF'ye geçişi değerlendiren ekipler, kavramsal eşitlikleri anlamak için bu haritalamayı faydalı bulacaktır:
| TuesPechkin | IronPDF |
|---|---|
StandardConverter / ThreadSafeConverter | ChromePdfRenderer |
HtmlToPdfDocument | Metot parametreleri |
GlobalSettings.PaperSize | RenderingOptions.PaperSize |
GlobalSettings.Orientation | RenderingOptions.PaperOrientation |
GlobalSettings.Margins | RenderingOptions.MarginTop/Bottom/Left/Right |
ObjectSettings.HtmlText | RenderHtmlAsPdf(html) |
ObjectSettings.PageUrl | RenderUrlAsPdf(url) |
RemotingToolset + Deployment | Gerekli değil |
[page] placeholder | {page} placeholder |
[toPage] placeholder | {total-pages} placeholder |
Ek PDF Yetenekleri
HTML'den PDF'e dönüşümün ötesinde, IronPDF, TuesPechkin'in sunamayacağı belge manipülasyon özellikleri sunar:
- PDF'leri Birleştirme: Birden fazla belgeyi tek bir dosyada birleştirin
- Belgeleri Bölme: Sayfa aralıklarını ayrı PDF'lere ayırın
- Dijital İmzalar: Belge doğruluğu için kriptografik imzalar uygulayın
- Filigran Oluşturma: HTML/CSS ile metin veya resim filigranları ekleyin
- PDF/A Uygunluğu: Arşiv standartlarına uygun belgeler oluşturun
- Form Doldurma: PDF form alanlarını programatik olarak doldurun
- Başlıklar ve Alt Bilgiler: Sayfa numarası yer tutucularıyla tam HTML desteği
- Şifre Koruma: Kullanıcı ve sahip şifreleriyle PDF'leri şifreleme
.NET Uyumluluğu ve Geleceğe Hazırlık
TuesPechkin'in aktif olmayan geliştirme durumu, daha yeni .NET sürümleri için güncelleme yapılmayacağı anlamına gelir. IronPDF, .NET 8, .NET 9 ve 2026'da beklenen .NET 10 dahil olmak üzere, gelecekteki sürümlerle uyumluluğu sağlamak için düzenli güncellemelerle aktif geliştirme yapar. Kütüphanenin async/await desteği, modern C# geliştirme uygulamalarına uygun şekilde tüm API'si boyunca yaygın olup, C# 13'teki özellikleri ve beklenen C# 14 yeteneklerini içerir.
Sonuç
TuesPechkin ve IronPDF, .NET PDF oluşturmanın farklı dönemlerini temsil eder. TuesPechkin, wkhtmltopdf'yi saran ücretsiz, MIT lisanslı bir sarıcı sunarken, kritik güvenlik açıklarını, güncel olmayan bir oluşturma motorunu, karmaşık iş parçacığı yönetimi gerekliliklerini ve yük altında kararlılık sorunlarını devralır. Altta yatan teknoloji 2022'de terk edilmiştir ve güvenlik yamaları olmayacaktır.
IronPDF, current web teknolojilerini destekleyen bir Chromium tabanlı rendering motoru ile modern, aktif olarak sürdürülen bir alternatif sunar. Doğal iş parçacığı güvenliği, kapsamlı PDF özellikleri ve sadeleştirilmiş bir API tasarımı, wkhtmltopdf sarıcılarındaki sınırlamaları ele alır.
Şu anda TuesPechkin'i kullanan ekiplerde, geçiş kararı genellikle güvenlik gereksinimlerinden, işleme kalitesi ihtiyaçlarından, kararlılık endişelerinden veya temel HTML dönüşümünün ötesindeki PDF özellik gereksinimlerinden kaynaklanır. İki kütüphane arasındaki API eşleme doğrudan olup,IronPDFgenel itibariyle, basitleştirilmiş başlatma ve yapılandırma desenleri nedeniyle daha az kod gerektirir.
Ek uygulama kılavuzu için, IronPDF belgelerini ve belirli kullanım durumları ile gelişmiş özellikleri kapsayan eğitimleri keşfedin.
