HiQPdf'ten IronPDF'e C# ile Nasıl Geçilir
HiQPdf,HiQPdfSoftware tarafından yayımlanan bir ticari HTML'den PDF'e kütüphanesidir (mevcut HiQPdf 18.0.2, nuget.org, Şubat 2026). Yazılımcıların alternatifleri değerlendirmesinin yaygın nedenleri:
-
Kısıtlayıcı Ücretsiz Versiyon:
HiQPdf.Freeher belge için çıktıyı 3 sayfa ile sınırlandırır - değerlendirme için kullanışlıdır ancak tam belge üretimi gerektiren üretim iş yükleri için değildir. -
Klasik Hattaki WebKit: Klasik
HiQPdfpaketi, modern JavaScript çerçeveleriyle mücadele edebilen eski bir WebKit tabanlı motor kullanır. HiQPdf, Chromium tabanlı bir varyant (HiQPdf.NG/HiQPdf.Chromium.Windowsve bir Linux derlemesi ile birlikte) sunar, ancak mevcut kodların çoğu Klasik motora yöneliktir. -
.NET Desteği Paketler Arasında Dağınık: .NET Framework, .NET Core, ve .NET Standard 2.0 tümü desteklenir, ancak ayrı NuGet ID'leri arasında dağıtılmıştır (HiQPdf, HiQPdf_NetCore, HiQPdf.NG, HiQPdf.Chromium.Windows, HiQPdf_x64), seçim yapmalısınız.
-
Parçalı Paketler: Farklı platformlar için birden fazla NuGet ID'si (
HiQPdf,HiQPdf.Free,HiQPdf_NetCore,HiQPdf.NG,HiQPdf.Chromium.Windows) bağımlılık yönetimini karmaşık hale getirir. -
Detaylı Konfigürasyon: Akıcı bir render-seçenekleri API'si yerine
Document,Header,Footerözellik zincirleri üzerinden kurulumu gerektirir. - Geliştirici Başına Lisanslama Yükselir: $245 Başlangıç / $495 Geliştirici / $795 Takım / $1,095 Enterprise (süresiz, ilk yıl güncellemeler dahil).
HiQPdfile IronPDF Karşılaştırması
| Aspekt | HiQPdf | IronPDF |
|---|---|---|
| Oluşturma Motoru | WebKit (Classic HiQPdf) or Chromium (HiQPdf.NG / HiQPdf.Chromium.Windows) |
Modern Krom |
| Ücretsiz Katman | HiQPdf.Free 3 sayfalık limit |
30 günlük tam deneme |
| Modern JS Desteği | Klasikte sınırlı; modern NG/Chromium'da | Tam (React, Angular, Vue) |
| .NET Core/5+ Desteği | Desteklenir, ancak birden fazla NuGet paketine bölünmüştür | Tek birleştirilmiş paket |
| API Tasarımı | Özellik zincirleri | Akıcı render seçenekleri |
| CSS3 Desteği | Klasikte kısmi; NG'de tam | Tam destek |
| Dokümantasyon | Ürün hatları arasında parçalanmıştır | Kapsamlı |
| NuGet Paketi | Birden fazla varyant | Tek paket |
IronPDF belgeleri, modern Chromium render motorunda, güncel .NET sürümleri (.NET Framework 4.6.2+, .NET 6, 7, 8, 9) için destek sunar.
Göç Karmaşıklığı Değerlendirmesi
Özelliklere Göre Tahmini Çaba
| Özellik | Göç Karmaşıklığı |
|---|---|
| HTML'den PDF'ye | Çok Düşük |
| URL'yi PDF'ye çevir | Çok Düşük |
| PDF'leri birleştir | Düşük |
| Başlıklar/Altbilgiler | Orta |
| Sayfa Boyutu/Kenar Boşlukları | Düşük |
| Tetikleme Modu/Gecikmeler | Düşük |
Paradigma Değişimi
BuHiQPdfgeçişindeki temel değişiklik, özellik zinciri yapılandırmasından akıcı render seçeneklerine geçilmesidir:
HiQPdf: converter.Document.Header.Height = 50;
converter.Document.Header.Add(new HtmlToPdfVariableElement(...));
IronPDF: renderer.RenderingOptions.TextHeader = new TextHeaderFooter() { ... };
Başlamadan Önce
Ön Koşullar
- .NET Sürümü: IronPDF, .NET Framework 4.6.2+ ve .NET Core 3.1+ / .NET 5+ sürümlerini destekler
- Lisans Anahtarı:IronPDF lisans anahtarınızı ironpdf.com'dan edinin
- HiQPdf'i Kaldır: TümHiQPdfNuGet paket varyantlarını kaldırmayı planla.
TümHiQPdfKullanımlarını Belirle
# FindHiQPdfnamespace usage
grep -r "using HiQPdf\|HtmlToPdf\|PdfDocument" --include="*.cs" .
# Find header/footer usage
grep -r "\.Header\.\|\.Footer\.\|HtmlToPdfVariableElement" --include="*.cs" .
# Find placeholder syntax
grep -r "CrtPage\|PageCount" --include="*.cs" .
# Find NuGet references
grep -r "HiQPdf" --include="*.csproj" .
# FindHiQPdfnamespace usage
grep -r "using HiQPdf\|HtmlToPdf\|PdfDocument" --include="*.cs" .
# Find header/footer usage
grep -r "\.Header\.\|\.Footer\.\|HtmlToPdfVariableElement" --include="*.cs" .
# Find placeholder syntax
grep -r "CrtPage\|PageCount" --include="*.cs" .
# Find NuGet references
grep -r "HiQPdf" --include="*.csproj" .
NuGet Paket Değişiklikleri
# Remove allHiQPdfvariants
dotnet remove package HiQPdf
dotnet remove package HiQPdf.Free
dotnet remove package HiQPdf_NetCore
dotnet remove package HiQPdf_x64
dotnet remove package HiQPdf.NG
dotnet remove package HiQPdf.Chromium.Windows
# Install IronPDF(single package for all platforms)
dotnet add package IronPdf
# Remove allHiQPdfvariants
dotnet remove package HiQPdf
dotnet remove package HiQPdf.Free
dotnet remove package HiQPdf_NetCore
dotnet remove package HiQPdf_x64
dotnet remove package HiQPdf.NG
dotnet remove package HiQPdf.Chromium.Windows
# Install IronPDF(single package for all platforms)
dotnet add package IronPdf
Hızlı Başlangıç Göçü
Adım 1: Lisans Yapılandırmasını Güncelleyin
Öncesi (HiQPdf):
HtmlToPdf converter = new HtmlToPdf();
converter.SerialNumber = "HIQPDF-SERIAL-NUMBER";
HtmlToPdf converter = new HtmlToPdf();
converter.SerialNumber = "HIQPDF-SERIAL-NUMBER";
Dim converter As New HtmlToPdf()
converter.SerialNumber = "HIQPDF-SERIAL-NUMBER"
Sonrası (IronPDF):
// Set globally at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";
// Set globally at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";
Adım 2: Ad Alanı İthalatlarını Güncelleyin
// Before (HiQPdf)
using HiQPdf;
// After (IronPDF)
using IronPdf;
using IronPdf.Rendering;
// Before (HiQPdf)
using HiQPdf;
// After (IronPDF)
using IronPdf;
using IronPdf.Rendering;
Imports IronPdf
Imports IronPdf.Rendering
Tam API Referansı
Ana Sınıf Eşlemesi
| HiQPdf Sınıfı | IronPDF Sınıfı |
|---|---|
HtmlToPdf |
ChromePdfRenderer |
PdfDocument |
PdfDocument |
HtmlToPdfVariableElement |
TextHeaderFooter veya HtmlHeaderFooter |
Dönüştürme Yöntemi Eşlemesi
| HiQPdf Yöntemi | IronPDF Yöntemi |
|---|---|
ConvertHtmlToMemory(html, baseUrl) |
RenderHtmlAsPdf(html) |
ConvertUrlToMemory(url) |
RenderUrlAsPdf(url) |
File.WriteAllBytes(path, bytes) |
pdf.SaveAs(path) |
PDF Belge Yöntemi Eşleme
| HiQPdf Yöntemi | IronPDF Yöntemi |
|---|---|
PdfDocument.FromFile(path) |
PdfDocument.FromFile(path) |
document1.AddDocument(document2) |
PdfDocument.Merge(pdf1, pdf2) |
document.WriteToFile(path) |
pdf.SaveAs(path) |
Başlık/Altbilgi Yer Tutucu Eşleme
| HiQPdfYer Tutucu | IronPDF Yer Tutucu | Açıklama |
|---|---|---|
{CrtPage} |
{page} |
Geçerli sayfa numarası |
{PageCount} |
{total-pages} |
Toplam sayfa sayısı |
Kod Göç Örnekleri
Örnek 1: HTML'den PDF'ye Dönüştürme
Öncesi (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 Class
Sonrası (IronPDF):
// 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 Module
HiQPdf yaklaşımı bir HtmlToPdf örneği oluşturmayı, bir byte dizisi almak için ConvertUrlToMemory() veya ConvertHtmlToMemory() çağırmayı ve ardından baytları manuel olarak bir dosyaya yazmayı gerektirir. IronPDF'nin ChromePdfRenderer doğrudan SaveAs() yöntemiyle bir PdfDocument nesnesi döndürür, bu da manuel dosya yazma adımını ortadan kaldırır. Modern Krommotoru ayrıca karmaşık HTML/CSS/JavaScript içeriği için daha iyi render sağlar. HTML'den PDF'ye belgelemeyi ek işleme seçenekleri için inceleyin.
Örnek 2: Birden Fazla PDF Birleştir
Öncesi (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 Module
Sonrası (IronPDF):
// 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 Module
HiQPdf yaklaşımı, belgeleri PdfDocument.FromFile() kullanarak dosyalardan yüklemeyi, ilk belgede ikinciyi eklemek için AddDocument() çağırmayı ve ardından kaydetmek için WriteToFile() kullanmayı gerektirir. IronPDF, birden fazla PdfDocument nesnesini doğrudan kabul eden temiz bir statik PdfDocument.Merge() yöntemi sağlar—ara dosya işlemleri gerekmez. Daha fazla bilgi edinin PDF birleştirme ve bölme.
Örnek 3: Sayfa Numaraları ile PDF Başlıkları ve Altbilgileri
Öncesi (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 Class
Sonrası (IronPDF):
// 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 Class
HiQPdf yaklaşımı, Document.Header.Height ayarlamayı, HtmlToPdfVariableElement nesneleri oluşturmayı ve başlık/altbilgi bölümlerinde Add() çağırmayı gerektirir. Sayfa numarası yer tutucuları {CrtPage} ve {PageCount} söz dizimini kullanır. IronPDF, CenterText özellikleri ve farklı yer tutucu söz dizimi ile daha temiz bir TextHeaderFooter yapılandırması sunar: {page} ve {total-pages}. HTML tabanlı başlıklar da dahil olmak üzere ek seçenekler için başlıklar ve altbilgiler belgelerine bakın.
Kritik Taşıma Notları
Yer Tutucu Sözdizimi Değişikliği
Sayfa numaralı belgeler için en önemli değişiklik yer tutucu sözdizimidir:
//HiQPdfplaceholders
"Page {CrtPage} of {PageCount}"
//IronPDF placeholders
"Page {page} of {total-pages}"
//HiQPdfplaceholders
"Page {CrtPage} of {PageCount}"
//IronPDF placeholders
"Page {page} of {total-pages}"
'HiQPdfplaceholders
"Page {CrtPage} of {PageCount}"
'IronPDF placeholders
"Page {page} of {total-pages}"
Tam yer tutucu eşleme:
{CrtPage}→{page}{PageCount}→{total-pages}
Birleştirme Yöntemi Farkı
HiQPdf, ilk belgeyi yerinde değiştirir:
// HiQPdf: Modifies document1
document1.AddDocument(document2);
document1.WriteToFile("merged.pdf");
// HiQPdf: Modifies document1
document1.AddDocument(document2);
document1.WriteToFile("merged.pdf");
' HiQPdf: Modifies document1
document1.AddDocument(document2)
document1.WriteToFile("merged.pdf")
IronPDF, yeni bir birleştirilmiş belge döndürür:
// IronPDF: Returns new document
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
// IronPDF: Returns new document
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
' IronPDF: Returns new document
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
3-Sayfa Sınırı Yok
HiQPdf'nin ücretsiz sürümü, çıktıyı filigranlarla birlikte 3 sayfa ile sınırlandırır. IronPDF, deneme süresi boyunca yapay sınırlamalar olmadan tam belgeler üretir.
ChromePdfRenderer'ı Yeniden Kullanın
HiQPdf'de her dönüşüm için yeni HtmlToPdf örnekleri yaratmanız gerekebilirken, IronPDF'nin ChromePdfRenderer öğesi yeniden kullanılmalıdır:
// IronPDF: Create once, reuse
var renderer = new ChromePdfRenderer();
var pdf1 = renderer.RenderHtmlAsPdf(html1);
var pdf2 = renderer.RenderHtmlAsPdf(html2);
// IronPDF: Create once, reuse
var renderer = new ChromePdfRenderer();
var pdf1 = renderer.RenderHtmlAsPdf(html1);
var pdf2 = renderer.RenderHtmlAsPdf(html2);
' IronPDF: Create once, reuse
Dim renderer As New ChromePdfRenderer()
Dim pdf1 = renderer.RenderHtmlAsPdf(html1)
Dim pdf2 = renderer.RenderHtmlAsPdf(html2)
Hata Ayıklama
Sorun 1: HtmlToPdf Bulunamadı
Problem: HtmlToPdf sınıfı IronPDF'de mevcut değil.
Çözüm: ChromePdfRenderer ile değiştirin:
// HiQPdf
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
// IronPDF
var renderer = new ChromePdfRenderer();
// HiQPdf
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
// IronPDF
var renderer = new ChromePdfRenderer();
' HiQPdf
Dim htmlToPdfConverter As New HtmlToPdf()
' IronPDF
Dim renderer As New ChromePdfRenderer()
Sorun 2: ConvertHtmlToMemory Bulunamadı
Problem: ConvertHtmlToMemory() yöntemi mevcut değil.
Çözüm: RenderHtmlAsPdf() kullanın:
// HiQPdf
byte[] pdfBytes = converter.ConvertHtmlToMemory(html, "");
// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
byte[] pdfBytes = pdf.BinaryData;
// HiQPdf
byte[] pdfBytes = converter.ConvertHtmlToMemory(html, "");
// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
byte[] pdfBytes = pdf.BinaryData;
' HiQPdf
Dim pdfBytes As Byte() = converter.ConvertHtmlToMemory(html, "")
' IronPDF
Dim pdf = renderer.RenderHtmlAsPdf(html)
Dim pdfBytes As Byte() = pdf.BinaryData
Sorun 3: Sayfa Numarası Yer Tutucuları Çalışmıyor
Problem: {CrtPage} ve {PageCount} çıktı üzerinde kelimenin tam anlamıyla görünmektedir.
Çözüm:IronPDF yer tutucu sözdizimine güncelleyin:
//HiQPdfsyntax (won't work)
"Page {CrtPage} of {PageCount}"
//IronPDF syntax
"Page {page} of {total-pages}"
//HiQPdfsyntax (won't work)
"Page {CrtPage} of {PageCount}"
//IronPDF syntax
"Page {page} of {total-pages}"
'HiQPdfsyntax (won't work)
"Page {CrtPage} of {PageCount}"
'IronPDF syntax
"Page {page} of {total-pages}"
Sorun 4: HtmlToPdfVariableElement Bulunamadı
Problem: HtmlToPdfVariableElement sınıfı mevcut değil.
Çözüm: TextHeaderFooter veya HtmlHeaderFooter kullanın:
// HiQPdf
HtmlToPdfVariableElement headerHtml = new HtmlToPdfVariableElement("<div>Header</div>", "");
converter.Document.Header.Add(headerHtml);
// IronPDF
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "Header",
FontSize = 12
};
// HiQPdf
HtmlToPdfVariableElement headerHtml = new HtmlToPdfVariableElement("<div>Header</div>", "");
converter.Document.Header.Add(headerHtml);
// IronPDF
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "Header",
FontSize = 12
};
' HiQPdf
Dim headerHtml As New HtmlToPdfVariableElement("<div>Header</div>", "")
converter.Document.Header.Add(headerHtml)
' IronPDF
renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
.CenterText = "Header",
.FontSize = 12
}
Geçiş Kontrol Listesi
Öncesi-Geçiş
- Kod tabanındaki tümHiQPdfAPI çağrılarını envanterleyin.
- Geçerli sayfa boyutları, kenar boşlukları ve ayarları belgeleyin.
- Başlık/altbilgi yapılandırmalarını ve yer tutucularını belirleyin. -IronPDF lisans anahtarını edinin
- Geliştirme ortamında IronPDF'i test edin.
Kod Geçişi
- TümHiQPdfNuGet paketlerini (tüm varyantlar) kaldırın.
-IronPDF NuGet paketini yükleyin:
dotnet add package IronPdf - Ad alanı ithalatlarını güncelleyin
HtmlToPdföğesiniChromePdfRendererile değiştirinConvertHtmlToMemory()öğesiniRenderHtmlAsPdf()'e dönüştürünConvertUrlToMemory()öğesiniRenderUrlAsPdf()'ye dönüştürün- Başlık/altbilgi yer tutucularını güncelleyin (
{CrtPage}→{page},{PageCount}→{total-pages}) HtmlToPdfVariableElementöğesiniTextHeaderFooterile değiştirin- Birleştirme işlemlerini güncelleyin (
AddDocument→PdfDocument.Merge) - Başlangıçta lisans anahtarı başlatmasını ekleyin.
Test Etme
- HTML'den PDF'e dönüştürmeyi test edin
- URL'den PDF'e dönüştürmeyi test edin
- Başlık/altbilgi render'ını doğrulayın.
- Sayfa numarası yer tutucularını doğrulayın.
- PDF birleştirmesini test edin
- JavaScript ağırlıklı sayfaları test edin (şimdi Chromium ile destekleniyor).
Geçiş Sonrası
- YapılandırmadanHiQPdfseri numarasını kaldırın.
- Belgeleri güncelleyin
- Render farklılıkları için izleme yapın.

