HiQPdf ve IronPDF Karşılaştırması: Teknik Kılavuz
.NET geliştiricileri HTML'den PDF'e çözümleri değerlendirirken, HiQPdf, WebKit tabanlı bir işleme motoru kullanan ticari bir kütüphane olarak öne çıkıyor.HiQPdfHTML5/CSS3 desteklemekte olsa da, eski WebKit motoru modern JavaScript çerçeveleriyle zorlanabilir ve ücretsiz versiyonu 3 sayfa ile sınırlıdır ve fark edilir filigran içermektedir. Buna karşılık,IronPDFbir modern Chromium tabanlı işleme motoru kullanmakta, tam JavaScript desteği ve tüm .NET platformları için birleştirilmiş bir paket sunmaktadır.
Bu karşılaştırma, profesyonel geliştiricilere ve mimarlara .NET PDF ihtiyaçları için bilinçli kararlar vermelerine yardımcı olmak amacıyla her iki kütüphaneyi ilgili teknik yönleriyle değerlendirir.
HiQPdfGenel Bakışı
HiQPdf, WebKit tabanlı bir işleme motoru kullanan ticari bir HTML'den PDF'e kütüphanesidir. Kütüphanenin ana dönüştürücü sınıfı, HtmlToPdf, ConvertHtmlToMemory() ve ConvertUrlToMemory() gibi yöntemler içerir ve ham byte[] verisi döndürür. Yapılandırma, Document nesnesi üzerindeki özellik zincirleri aracılığıyla, örneğin Document.Header, Document.Footer ve Document.PageSize gibi, yönetilir.
HiQPdf'in ücretsiz versiyonu önemli bir sınırlama içerir: PDF çıktılarında 3 sayfa maksimum sınır ve müdahaleci bir filigran, bu da değerlendirme sırasında daha büyük belgeler üzerinde kapsamlı test yapmayı zorlaştırır. Kütüphane, farklı platformlar için birden fazla NuGet paket varyantı sunar (HiQPdf, HiQPdf.Free, HiQPdf.NetCore, HiQPdf.NetCore.x64, HiQPdf.Client) ve belgelerde .NET Core veya .NET 5+ desteği açık bir şekilde belirtilmez.
Başlıklar ve alt bilgiler için HiQPdf, HtmlToPdfVariableElement nesnelerini Document.Header ve Document.Footer koleksiyonlarına ekleyerek kullanır. Sayfa numarası yer tutucuları, mevcut sayfa için {CrtPage} ve toplam sayfa için {PageCount} sözdizimini kullanır.
IronPDFİncelemesi
IronPDF, modern bir Chromium işleme motoru kullanan, HTML5, CSS3 ve React, Angular ve Vue dahil olmak üzere JavaScript çerçevelerinin tam desteğini sağlayan bir .NET PDF kütüphanesidir. Kütüphanenin birincil işleme sınıfı ChromePdfRenderer, RenderHtmlAsPdf() ve RenderUrlAsPdf() gibi yöntemler içerir ve PdfDocument nesneleri döndürür.
IronPDF, tüm platformlar için belgelenmiş .NET 6, 7, 8, 9 ve 10 uyumluluğuna sahip tek bir birleşik NuGet paketi sunar. Yapılandırma doğrudan işlemcide RenderingOptions özelliklerini kullanır. Başlıklar ve alt bilgiler, TextHeaderFooter ile CenterText ve FontSize gibi özellikler kullanabilir. Sayfa numarası yer tutucuları {page} ve {total-pages} sözdizimini kullanır.
İşleme Motoru ve Uyumluluk Karşılaştırması
Bu kütüphaneler arasındaki temel fark, işleme motorlarında ve platform desteğindedir.
| Aspekt | HiQPdf | IronPDF |
|---|---|---|
| Render Motoru | WebKit tabanlı (eski) | Modern Krom |
| Ücretsiz Katman | 3 sayfa sınırı + filigran | 30 günlük tam deneme |
| Modern JS Desteği | Sınırlı | Tam (React, Angular, Vue) |
| .NET Core/5+ Desteği | Birden fazla paket gerekiyor | Tek birleştirilmiş paket |
| API Tasarımı | Karmaşık özellik zincirleri | Temiz akıcı API |
| CSS3 Desteği | Kısmi | Desteklenen |
| Dokümantasyon | Parçalanmış | Tam |
| NuGet Paketi | Birden fazla varyant | Tek paket |
HiQPdf'in WebKit tabanlı motoru, modern JavaScript çerçeveleri ve karmaşık HTML yapıları ile zorluklar yaşayabilen eski bir teknolojidir. IronPDF'in Chromium motoru, modern web içeriğinin doğru bir şekilde dönüştürülmesini sağlar ve Google Chrome ile aynı işleme kalitesini sunar.
Kod Karşılaştırması: Ortak PDF İşlemleri
HTML ve URL'den PDF'e Dönüştürme
En temel operasyonlar, API tasarımı farklılıklarını gösterir.
HiQPdf:
// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;
class Program
{
static void Main()
{
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
byte[] pdfBuffer = htmlToPdfConverter.ConvertUrlToMemory("https://example.com");
System.IO.File.WriteAllBytes("output.pdf", pdfBuffer);
// Convert HTML string
string html = "<h1>Hello World</h1><p>This is a PDF document.</p>";
byte[] pdfFromHtml = htmlToPdfConverter.ConvertHtmlToMemory(html, "");
System.IO.File.WriteAllBytes("fromhtml.pdf", pdfFromHtml);
}
}// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;
class Program
{
static void Main()
{
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
byte[] pdfBuffer = htmlToPdfConverter.ConvertUrlToMemory("https://example.com");
System.IO.File.WriteAllBytes("output.pdf", pdfBuffer);
// Convert HTML string
string html = "<h1>Hello World</h1><p>This is a PDF document.</p>";
byte[] pdfFromHtml = htmlToPdfConverter.ConvertHtmlToMemory(html, "");
System.IO.File.WriteAllBytes("fromhtml.pdf", pdfFromHtml);
}
}Imports HiQPdf
Imports System
Class Program
Shared Sub Main()
Dim htmlToPdfConverter As New HtmlToPdf()
Dim pdfBuffer As Byte() = htmlToPdfConverter.ConvertUrlToMemory("https://example.com")
System.IO.File.WriteAllBytes("output.pdf", pdfBuffer)
' Convert HTML string
Dim html As String = "<h1>Hello World</h1><p>This is a PDF document.</p>"
Dim pdfFromHtml As Byte() = htmlToPdfConverter.ConvertHtmlToMemory(html, "")
System.IO.File.WriteAllBytes("fromhtml.pdf", pdfFromHtml)
End Sub
End ClassIronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.SaveAs("output.pdf");
// Convert HTML string
string html = "<h1>Hello World</h1><p>This is a PDF document.</p>";
var pdfFromHtml = renderer.RenderHtmlAsPdf(html);
pdfFromHtml.SaveAs("fromhtml.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.SaveAs("output.pdf");
// Convert HTML string
string html = "<h1>Hello World</h1><p>This is a PDF document.</p>";
var pdfFromHtml = renderer.RenderHtmlAsPdf(html);
pdfFromHtml.SaveAs("fromhtml.pdf");
}
}Imports IronPdf
Imports System
Module Program
Sub Main()
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
pdf.SaveAs("output.pdf")
' Convert HTML string
Dim html As String = "<h1>Hello World</h1><p>This is a PDF document.</p>"
Dim pdfFromHtml = renderer.RenderHtmlAsPdf(html)
pdfFromHtml.SaveAs("fromhtml.pdf")
End Sub
End ModuleHiQPdf, bir HtmlToPdf dönüştürücü oluşturur, ham byte[] verisi almak için ConvertUrlToMemory() veya ConvertHtmlToMemory() çağırır ve ardından File.WriteAllBytes() kullanarak diske elle yazar. ConvertHtmlToMemory() yöntemi, temel URL için (gerekli değilse boş string) ikinci bir parametre gerektirir.
IronPDF, bir ChromePdfRenderer oluşturur, bir PdfDocument nesnesi almak için RenderUrlAsPdf() veya RenderHtmlAsPdf() çağırır ve ardından doğrudan SaveAs() ile kaydeder. API, nesne yönelimli belge yönetimi ile daha özlüdür.
Gelişmiş HTML renderleme seçenekleri için, HTML to PDF dönüştürme kılavuzunu keşfedin.
Birden Fazla PDF'yi Birleştirme
PDF birleştirme, belge manipülasyonuna farklı yaklaşımları gösterir.
HiQPdf:
// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;
class Program
{
static void Main()
{
// Create first PDF
HtmlToPdf converter1 = new HtmlToPdf();
byte[] pdf1 = converter1.ConvertHtmlToMemory("<h1>First Document</h1>", "");
System.IO.File.WriteAllBytes("doc1.pdf", pdf1);
// Create second PDF
HtmlToPdf converter2 = new HtmlToPdf();
byte[] pdf2 = converter2.ConvertHtmlToMemory("<h1>Second Document</h1>", "");
System.IO.File.WriteAllBytes("doc2.pdf", pdf2);
// Merge PDFs
PdfDocument document1 = PdfDocument.FromFile("doc1.pdf");
PdfDocument document2 = PdfDocument.FromFile("doc2.pdf");
document1.AddDocument(document2);
document1.WriteToFile("merged.pdf");
}
}// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;
class Program
{
static void Main()
{
// Create first PDF
HtmlToPdf converter1 = new HtmlToPdf();
byte[] pdf1 = converter1.ConvertHtmlToMemory("<h1>First Document</h1>", "");
System.IO.File.WriteAllBytes("doc1.pdf", pdf1);
// Create second PDF
HtmlToPdf converter2 = new HtmlToPdf();
byte[] pdf2 = converter2.ConvertHtmlToMemory("<h1>Second Document</h1>", "");
System.IO.File.WriteAllBytes("doc2.pdf", pdf2);
// Merge PDFs
PdfDocument document1 = PdfDocument.FromFile("doc1.pdf");
PdfDocument document2 = PdfDocument.FromFile("doc2.pdf");
document1.AddDocument(document2);
document1.WriteToFile("merged.pdf");
}
}Imports HiQPdf
Imports System
Module Program
Sub Main()
' Create first PDF
Dim converter1 As New HtmlToPdf()
Dim pdf1 As Byte() = converter1.ConvertHtmlToMemory("<h1>First Document</h1>", "")
System.IO.File.WriteAllBytes("doc1.pdf", pdf1)
' Create second PDF
Dim converter2 As New HtmlToPdf()
Dim pdf2 As Byte() = converter2.ConvertHtmlToMemory("<h1>Second Document</h1>", "")
System.IO.File.WriteAllBytes("doc2.pdf", pdf2)
' Merge PDFs
Dim document1 As PdfDocument = PdfDocument.FromFile("doc1.pdf")
Dim document2 As PdfDocument = PdfDocument.FromFile("doc2.pdf")
document1.AddDocument(document2)
document1.WriteToFile("merged.pdf")
End Sub
End ModuleIronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
// Create first PDF
var pdf1 = renderer.RenderHtmlAsPdf("<h1>First Document</h1>");
pdf1.SaveAs("doc1.pdf");
// Create second PDF
var pdf2 = renderer.RenderHtmlAsPdf("<h1>Second Document</h1>");
pdf2.SaveAs("doc2.pdf");
// Merge PDFs
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
// Create first PDF
var pdf1 = renderer.RenderHtmlAsPdf("<h1>First Document</h1>");
pdf1.SaveAs("doc1.pdf");
// Create second PDF
var pdf2 = renderer.RenderHtmlAsPdf("<h1>Second Document</h1>");
pdf2.SaveAs("doc2.pdf");
// Merge PDFs
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
}
}Imports IronPdf
Imports System
Module Program
Sub Main()
Dim renderer = New ChromePdfRenderer()
' Create first PDF
Dim pdf1 = renderer.RenderHtmlAsPdf("<h1>First Document</h1>")
pdf1.SaveAs("doc1.pdf")
' Create second PDF
Dim pdf2 = renderer.RenderHtmlAsPdf("<h1>Second Document</h1>")
pdf2.SaveAs("doc2.pdf")
' Merge PDFs
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
End Sub
End ModuleHiQPdf, PDF'leri önce diske kaydetmeyi, ardından PdfDocument.FromFile() ile yüklemeyi, birini diğerine eklemek için AddDocument() kullanmayı ve nihayetinde sonucu kaydetmek için WriteToFile() kullanmayı gerektirir. Bu, ilk belgeyi yerinde değiştirebilir.
IronPDF, yeni bir birleştirilmiş belge döndüren statik PdfDocument.Merge() yöntemini kullanarak belgeleri doğrudan bellekte birleştirebilir. Bu yaklaşım daha temizdir ve ara dosya I/O'su gerektirmez.
Sayfa Numaralı Başlıklar ve Alt Bilgiler
Başlık ve alt bilgi yapılandırması, dinamik içeriğe olan farklı yaklaşımları gösterir.
HiQPdf:
// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;
class Program
{
static void Main()
{
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
// Add header
htmlToPdfConverter.Document.Header.Height = 50;
HtmlToPdfVariableElement headerHtml = new HtmlToPdfVariableElement("<div style='text-align:center'>Page Header</div>", "");
htmlToPdfConverter.Document.Header.Add(headerHtml);
// Add footer with page number
htmlToPdfConverter.Document.Footer.Height = 50;
HtmlToPdfVariableElement footerHtml = new HtmlToPdfVariableElement("<div style='text-align:center'>Page {CrtPage} of {PageCount}</div>", "");
htmlToPdfConverter.Document.Footer.Add(footerHtml);
byte[] pdfBuffer = htmlToPdfConverter.ConvertHtmlToMemory("<h1>Document with Headers and Footers</h1>", "");
System.IO.File.WriteAllBytes("header-footer.pdf", pdfBuffer);
}
}// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;
class Program
{
static void Main()
{
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
// Add header
htmlToPdfConverter.Document.Header.Height = 50;
HtmlToPdfVariableElement headerHtml = new HtmlToPdfVariableElement("<div style='text-align:center'>Page Header</div>", "");
htmlToPdfConverter.Document.Header.Add(headerHtml);
// Add footer with page number
htmlToPdfConverter.Document.Footer.Height = 50;
HtmlToPdfVariableElement footerHtml = new HtmlToPdfVariableElement("<div style='text-align:center'>Page {CrtPage} of {PageCount}</div>", "");
htmlToPdfConverter.Document.Footer.Add(footerHtml);
byte[] pdfBuffer = htmlToPdfConverter.ConvertHtmlToMemory("<h1>Document with Headers and Footers</h1>", "");
System.IO.File.WriteAllBytes("header-footer.pdf", pdfBuffer);
}
}Imports HiQPdf
Imports System
Class Program
Shared Sub Main()
Dim htmlToPdfConverter As New HtmlToPdf()
' Add header
htmlToPdfConverter.Document.Header.Height = 50
Dim headerHtml As New HtmlToPdfVariableElement("<div style='text-align:center'>Page Header</div>", "")
htmlToPdfConverter.Document.Header.Add(headerHtml)
' Add footer with page number
htmlToPdfConverter.Document.Footer.Height = 50
Dim footerHtml As New HtmlToPdfVariableElement("<div style='text-align:center'>Page {CrtPage} of {PageCount}</div>", "")
htmlToPdfConverter.Document.Footer.Add(footerHtml)
Dim pdfBuffer As Byte() = htmlToPdfConverter.ConvertHtmlToMemory("<h1>Document with Headers and Footers</h1>", "")
System.IO.File.WriteAllBytes("header-footer.pdf", pdfBuffer)
End Sub
End ClassIronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
// Configure header and footer
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "Page Header",
FontSize = 12
};
renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
CenterText = "Page {page} of {total-pages}",
FontSize = 10
};
var pdf = renderer.RenderHtmlAsPdf("<h1>Document with Headers and Footers</h1>");
pdf.SaveAs("header-footer.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
// Configure header and footer
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "Page Header",
FontSize = 12
};
renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
CenterText = "Page {page} of {total-pages}",
FontSize = 10
};
var pdf = renderer.RenderHtmlAsPdf("<h1>Document with Headers and Footers</h1>");
pdf.SaveAs("header-footer.pdf");
}
}Imports IronPdf
Imports IronPdf.Rendering
Imports System
Class Program
Shared Sub Main()
Dim renderer As New ChromePdfRenderer()
' Configure header and footer
renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
.CenterText = "Page Header",
.FontSize = 12
}
renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
.CenterText = "Page {page} of {total-pages}",
.FontSize = 10
}
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Document with Headers and Footers</h1>")
pdf.SaveAs("header-footer.pdf")
End Sub
End ClassHiQPdf, başlıkları ve alt bilgileri Document.Header ve Document.Footer özellikleri aracılığıyla yapılandırır, Height ayarlar ve HtmlToPdfVariableElement nesneleri ekler. Sayfa numarası yer tutucuları mevcut sayfa için {CrtPage} ve toplam sayfa için {PageCount} kullanır.
IronPDF, TextHeaderFooter nesneleri ile RenderingOptions.TextHeader ve RenderingOptions.TextFooter'yu kullanır. CenterText ve FontSize gibi özellikler doğrudan yapılandırma sağlar. Sayfa numarası yer tutucuları {page} ve {total-pages} kullanır.
IronPDF derslerinden başlık ve alt bilgi yapılandırması hakkında daha fazla bilgi edinin.
API Eşleme Başvurusu
HiQPdf geçişini değerlendiren veya özellikleri karşılaştıran geliştiriciler için, bu eşlemeler eşdeğer işlemleri gösterir:
Ana Sınıf Eşlemesi
| HiQPdf Sınıfı | IronPDF Sınıfı |
|---|---|
HtmlToPdf | ChromePdfRenderer |
PdfDocument | PdfDocument |
PdfPage | pdf.Pages[i] |
PdfDocumentControl | RenderingOptions |
PdfHeader / PdfDocumentHeader | HtmlHeaderFooter |
PdfFooter / PdfDocumentFooter | HtmlHeaderFooter |
HtmlToPdfVariableElement | HtmlHeaderFooter.HtmlFragment |
Dönüştürme Yöntemi Eşlemesi
| HiQPdf Yöntemi | IronPDF Yöntemi |
|---|---|
ConvertHtmlToMemory(html, baseUrl) | RenderHtmlAsPdf(html, baseUrl) |
ConvertUrlToMemory(url) | RenderUrlAsPdf(url) |
ConvertHtmlToFile(html, baseUrl, path) | RenderHtmlAsPdf(html).SaveAs(path) |
ConvertUrlToFile(url, path) | RenderUrlAsPdf(url).SaveAs(path) |
Özellik Eşlemesi
| HiQPdf Özelliği | IronPDF Özelliği |
|---|---|
BrowserWidth | RenderingOptions.ViewPortWidth |
BrowserHeight | RenderingOptions.ViewPortHeight |
Document.PageSize | RenderingOptions.PaperSize |
Document.PageOrientation | RenderingOptions.PaperOrientation |
Document.Margins.Top | RenderingOptions.MarginTop |
Document.Margins.Bottom | RenderingOptions.MarginBottom |
Document.Margins.Left | RenderingOptions.MarginLeft |
Document.Margins.Right | RenderingOptions.MarginRight |
Document.Header.Height | HtmlHeader.MaxHeight |
Document.Footer.Height | HtmlFooter.MaxHeight |
SerialNumber | IronPdf.License.LicenseKey |
Yer Tutucu Sözdizimi Eşlemesi
Kütüphaneler arasında başlık ve alt bilgi yer tutucuları farklılık gösterir:
| HiQPdf | IronPDF |
|---|---|
{CrtPage} | {page} |
{PageCount} | {total-pages} |
{CrtPageUri} | {url} |
{CrtPageTitle} | {html-title} |
Özellik Karşılaştırması Özeti
| Özellik | HiQPdf | IronPDF |
|---|---|---|
| Chromium İşleme | Hayır (WebKit) | Evet |
| Modern JavaScript (React, Angular, Vue) | Sınırlı | Evet |
| Tam CSS3 Desteği | Sınırlı | Evet |
| .NET 6/7/8/9/10 Desteği | Evet | Evet |
| Tek NuGet Paketi | Hayır (Birden çok varyant) | Evet |
| Ücretsiz Tam Deneme | Hayır (3 sayfa sınırı + filigran) | Evet (30 günlük) |
| HTML'den PDF'ye | Evet | Evet |
| URL'yi PDF'ye çevir | Evet | Evet |
| PDF Birleştirme | Evet (AddDocument) | Evet (Merge) |
| Başlıklar/Altbilgiler | Evet (HtmlToPdfVariableElement) | Evet (TextHeaderFooter) |
Ekipler HiQPdf'ten IronPDF'e Geçmeyi Düşündüğünde
Geliştirme ekipleri, HiQPdf'ten IronPDF'e geçmeyi birkaç nedenle değerlendirir:
Sınırlayıcı Ücretsiz Versiyon: HiQPdf'in ücretsiz versiyonu, üretim için kullanılmasını neredeyse olanaksız kılan, müdahaleci filigranlı 3 sayfa sınırı koyar ve kapsamlı değerlendirmeyi zorlaştırır. IronPDF, sayfa sınırı olmayan 30 günlük tam özellikli deneme sunar.
Eski WebKit Motoru: HiQPdf'in WebKit tabanlı işleme motoru, React, Angular ve Vue gibi modern JavaScript çerçeveleriyle zorlanır. IronPDF'in Chromium motoru, modern karmaşık web içeriğinin tam doğru dönüştürülmesini sağlamak için Google Chrome ile aynı işleme kalitesini sunar.
Belirsiz .NET Core Desteği:HiQPdfbelgeleri, .NET Core veya .NET 5+ desteğini açık bir şekilde belirlememekte ve kütüphane, farklı platformlar için ayrı NuGet paketleri gerektirmektedir. IronPDF, .NET 6, 7, 8, 9 ve 10 için belgelenmiş destekte tek bir birleştirilmiş paket sunmaktadır.
Parçalanmış NuGet Paketleri: HiQPdf, farklı senaryolar için farklı paket varyantları gerektirir (HiQPdf, HiQPdf.Free, HiQPdf.NetCore, HiQPdf.NetCore.x64, HiQPdf.Client).IronPDFtüm platformlar için tek bir paketi kullanmaktadır.
Karmaşık API Tasarımı: HiQPdf, Document.Header.Height ve Document.Footer.Add() gibi özellik zincirleri aracılığıyla ayrıntılı yapılandırma gerektirir. IronPDF'in RenderingOptions özellikli akıcı API'si daha temiz bir yapılandırma sağlar.
Farklı Yer Tutucu Sözdizimi: HiQPdf, {CrtPage} ve {PageCount} yer tutucuları kullanırken,IronPDF{page} ve {total-pages} kullanır. Geçiş, tüm başlık/alt bilgi şablonlarının güncellenmesini gerektirir.
Güçlü Yönler ve Dikkat Edilmesi Gerekenler
HiQPdfGüçlü Yönleri
- HTML5/CSS3 Desteği: HTML5 ve CSS3 işleme yetenekleri sağlar
- Kurulmuş Kütüphane: Mevcut kullanıcı tabanına sahip ticari bir kütüphane
HiQPdfDikkat Edilmesi Gerekenler
- WebKit Motoru: Modern JavaScript desteklemede sınırlı, eski işleme teknolojisi
- 3 Sayfa Sınırı: Ücretsiz sürüm ciddi şekilde kısıtlı
- Parçalanmış Paketler: Farklı platformlar için birden fazla NuGet paketi
- Belirsiz .NET Desteği: Belgeler modern .NET uyumluluğunu açıkça belirtmez
- Karmaşık Özellik Zincirleri: İç içe geçmiş özellikler aracılığıyla ayrıntılı yapılandırma
- Puan Tabanlı Birimler: Ölçümler için inç başına 72 puan kullanır
IronPDFGüçlü Yönleri
- Chromium Motoru: Tam JavaScript desteği ile modern işleme
- Birleştirilmiş Paket: Tüm platformlar için tek NuGet paketi
- Tam Deneme: 30 günlük tam özellikli deneme
- Modern .NET Desteği: .NET 6, 7, 8, 9, 10 için belgelenmiştir
- Temiz API: Akıcı
RenderingOptionsyapılandırma - Kapsamlı Kaynaklar: Kapsamlı öğreticiler ve dokümantasyon
IronPDFDikkate Alınacaklar
- Ticari Lisans: Üretimde kullanım için gereklidir
- Milimetre Birimleri: Marjinler için puanlar yerine milimetre kullanır
Sonuç
HiQPdf ve IronPDF, .NET uygulamalarında HTML'den PDF'e teknoloji anlamında farklı nesilleri temsil ediyor. HiQPdf'in WebKit tabanlı motoru, modern JavaScript çerçeveleri ile zorlanmakta ve birden fazla parçalanmış paketle .NET Core uyumluluğu belirsizliği sunmaktadır. Ücretsiz sürümdeki 3 sayfa sınırı, değerlendirmeyi önemli ölçüde kısıtlar.
IronPDF, modern bir Chromium tabanlı alternatif sunar ve React, Angular ve Vue uygulamaları için tam JavaScript desteği sağlar. Belgelendirilmiş .NET 6/7/8/9/10 uyumluluğuna sahip tek birleştirilmiş NuGet paketi, dağıtımı basitleştirir ve temiz API tasarımı yapılandırma karmaşıklığını azaltır.
Organizasyonlar, .NET 10, C# 14 ve 2026 yılına kadar uygulama geliştirmeyi planlarken, eski WebKit işleme ile parçalanmış paketler ve birleştirilmiş destekle modern Chromium işleme arasında seçim yapmak, hem geliştirme hızı hem de çıkış kalitesini önemli ölçüde etkiler. Modern JavaScript çerçeve desteği, net .NET uyumluluğu veya standartlaştırılmış paket yönetimi gerektiren ekipler, IronPDF'in bu gereksinimleri etkili bir şekilde karşıladığını görecektir.
ücretsiz deneme sürümü ileIronPDFdeğerlendirmeye başlayın ve özel gereksinimlerinizle uygunluğunu değerlendirmek için kapsamlı belgeleri keşfedin.
