IRONSOFTWAREHOME
VIDEOLAR

Chrome'da HTML'yi Hata Ayıklayarak Piksel Kusursuz PDF'ler Yaratma Yöntemleri

Curtis Chau
Curtis Chau
Updated: 19 Temmuz 2026

iText'ten IronPDF'e geçmek, .NET PDF iş akışınızı bir programlama API'sinden — kodda Paragraph, Table ve Cell nesneleri oluşturmaktan — CSS3 ve JavaScript desteği ile HTML-öncelikli bir yaklaşıma taşır. Bu kılavuz, AGPL maruziyetini kaldıran ve ayrı bir pdfHTML eklentisi ihtiyacını ortadan kaldıran adım adım bir geçiş yolu sağlar.

Neden iText'ten IronPDF'e Geçilmeli

AGPL Lisans Hususu

iText (iText Group / Apryse Group NV tarafından sahip olunmaktadır), ticari ekiplerin önceden değerlendirmesi gereken lisanslama özelliklerine sahiptir:

  1. AGPL Viral Lisans: iText'i açık kaynak lisansı altında bir web uygulamasında kullanırsanız, AGPL genellikle uygulamanızın kaynağını ağ üzerinden onunla etkileşime giren herkese yayınlamanız gerektiği şeklinde yorumlanır. Kapalı kaynaklı ticari yazılımlar için bu genellikle ticari bir lisans satın alınması anlamına gelir.

  2. Sadece Abonelik Üzerinden Ticari Lisanslama: iText'in ticari lisansı, PDF işleme hacmine dayalı yıllık abonelik olarak satılmaktadır; süresiz bir seçenek kamuya açık fiyatlandırma sayfasında reklamı yapılmamaktadır (özel OEM şartları sadece teklif üzerinedir).

  3. pdfHTML Eklenti Maliyeti: HTML'den PDF'e dönüşüm, ayrıyeten satılan itext.pdfhtml eklentisini (şu anda 6.3.2) gerektirir, ve çekirdek itext paketinin (şu anda 9.6.0) üzerine satılır.

  4. Karmaşık Lisans Denetimleri: Kurumsal dağıtımlar, lisans karmaşıklığı ve denetim riskiyle karşı karşıya kalır.

  5. Programlanabilir-Öncelikli API: Temel iText, kodda Paragraph, Table ve Cell nesnelerini birleştirerek PDF'leri oluşturur; pdfHTML size HTML ile başlamanıza olanak tanır.

  6. Tanınan CSS Alt Kümesi, Render Zamanında JS Yok: pdfHTML, tanımlı bir CSS alt kümesini destekler ve HTML'yi PDF'ye dönüştürürken JavaScript çalıştırmaz (PDF düzeyinde JS form eylemleri ayrı, desteklenen bir özelliktir).

iText vs IronPDF Karşılaştırması

ÖzellikiText 9 / iTextSharp 5.xIronPDF
LisansAGPL (viral) veya ticari yıllık abonelikTicari, süresiz seçenek
HTML'den PDF'yeAyrı itext.pdfhtml eklentisi (6.3.2)Dahili Chromium renderleyici
CSS DesteğipdfHTML'de tanımlı CSS alt kümesiTam CSS3, Flexbox, Grid
Render zamanında JavaScriptpdfHTML, HTML→PDF sırasında JS çalıştırmazRender zamanında tam JS çalıştırma
API ParadigmasıProgramatik (Paragraf, Tablo, Hücre)CSS ile HTML-öncelikli
Öğrenme EğrisiDik (PDF koordinat sistemi)Web geliştirici dostu
Açık Kaynak RiskiWeb uygulamalarını AGPL altında açık kaynak yapmak zorunluluğuViral gereklilikler yok
Fiyatlandırma ModeliYıllık abonelik (hacme dayalı) veya özel OEMSüresiz veya abonelik

Modern .NET üzerinde standardize olan ekipler için, IronPDF'nin HTML-odaklı yaklaşımı, ekibin zaten sahip olduğu web geliştirme becerilerine dayanır.


Göç Karmaşıklığı Değerlendirmesi

Özelliklere Göre Tahmini Çaba

ÖzellikGöç Karmaşıklığı
HTML'den PDF'yeÇok Düşük
PDF'leri birleştirDüşük
Metin ve GörsellerDüşük
TablolarOrta
Başlıklar/AltbilgilerOrta
Güvenlik/ŞifrelemeDüşük

Paradigma Değişimi

Bu iText geçişindeki temel değişim, programatik PDF oluşturmadan HTML-öncelikli renderlamaya geçiştir:

iText:    PdfWriter → PdfDocument → Document → Add(Paragraph) → Add(Table)
IronPDF:  ChromePdfRenderer → RenderHtmlAsPdf(htmlString) → SaveAs()
Text

Bu paradigma değişimi özgürleştiricidir: iText'in nesne modelini öğrenmek yerine, web geliştiricilerin zaten sahip olduğu HTML ve CSS becerilerini kullanırsınız.


Başlamadan Önce

Ön Koşullar

  1. .NET Ortamı: .NET Framework 4.6.2+ veya .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGet Erişimi: NuGet paketlerini yükleyebilme
  3. IronPDF Lisansı: Lisans anahtarınızı ironpdf.com adresinden edinin

NuGet Paket Değişiklikleri

# Remove iText packages (current naming is 'itext'; 'itext7' is the deprecated alias)
dotnet remove package itext
dotnet remove package itext.pdfhtml
dotnet remove package itext7
dotnet remove package itext7.pdfhtml
dotnet remove package itextsharp

# Install IronPDF
dotnet add package IronPdf
SHELL

Lisans Yapılandırması

// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

iText Kullanımını Belirleme

# Find all iText references
grep -r "using iText\|using iTextSharp" --include="*.cs" .
grep -r "PdfWriter\|PdfDocument\|Document\|Paragraph\|Table\|Cell" --include="*.cs" .
grep -r "HtmlConverter\|ConverterProperties" --include="*.cs" .
SHELL

Tam API Referansı

Sınıf Eşlemeleri

iText 7+ SınıfiTextSharp 5.x SınıfIronPDF Eşdeğeri
PdfWriterPdfWriterChromePdfRenderer
PdfDocumentDocumentPdfDocument
DocumentDocumentChromePdfRenderer.RenderHtmlAsPdf()
ParagraphParagraphHTML <p>, <h1>, vb.
TablePdfPTableHTML <table>
CellPdfPCellHTML <td>, <th>
ImageImageHTML <img>
PdfReaderPdfReaderPdfDocument.FromFile()
PdfMergerYokPdfDocument.Merge()

Namespace Eşlemeleri

iText Ad AlanıIronPDF Eşdeğeri
iText.Kernel.PdfIronPdf
iText.LayoutIronPdf
iText.Layout.ElementHTML elemanlarını kullanın
iText.Html2pdfIronPdf (yerleşik)
iText.IO.ImageHTML <img> kullanın
iText.Kernel.UtilsIronPdf

Kod Göç Örnekleri

Örnek 1: HTML'den PDF'ye Dönüştürme

Before (iText):

// NuGet: Install-Package itext7
using iText.Html2pdf;
using System.IO;

class Program
{
    static void Main()
    {
        string html = "<h1>Hello World</h1><p>This is a PDF from HTML.</p>";
        string outputPath = "output.pdf";
        
        using (FileStream fs = new FileStream(outputPath, FileMode.Create))
        {
            HtmlConverter.ConvertToPdf(html, fs);
        }
    }
}

Sonrası (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string html = "<h1>Hello World</h1><p>This is a PDF from HTML.</p>";
        
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}

iText yaklaşımı, ayrı itext.pdfhtml paketini (pdfHTML eklentisi, şu anda 6.3.2, itext 9.6.0'ın üzerine satılır) gerektirir, bir FileStream oluşturur ve her şeyi uygun şekilde atmak için using ifadelerine sarar. HtmlConverter.ConvertToPdf() yöntemi, doğrudan akışa yazar.

IronPDF'ün yaklaşımı daha temizdir: bir ChromePdfRenderer oluşturun, HTML dizginizle RenderHtmlAsPdf() çağırın ve oluşan PdfDocument üzerinde SaveAs() çağırın. Ayrı paketler yok, akış yönetimi yok ve Chromium render motoru üstün CSS3 ve JavaScript desteği sağlar. HTML'den PDF'ye belgelemeyi ek işleme seçenekleri için inceleyin.

Örnek 2: Birden Fazla PDF Birleştir

Before (iText):

// NuGet: Install-Package itext7
using iText.Kernel.Pdf;
using iText.Kernel.Utils;
using System.IO;

class Program
{
    static void Main()
    {
        string outputPath = "merged.pdf";
        string[] inputFiles = { "document1.pdf", "document2.pdf", "document3.pdf" };
        
        using (PdfWriter writer = new PdfWriter(outputPath))
        using (PdfDocument pdfDoc = new PdfDocument(writer))
        {
            PdfMerger merger = new PdfMerger(pdfDoc);
            
            foreach (string file in inputFiles)
            {
                using (PdfDocument sourcePdf = new PdfDocument(new PdfReader(file)))
                {
                    merger.Merge(sourcePdf, 1, sourcePdf.GetNumberOfPages());
                }
            }
        }
    }
}

Sonrası (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdfDocuments = new List<PdfDocument>
        {
            PdfDocument.FromFile("document1.pdf"),
            PdfDocument.FromFile("document2.pdf"),
            PdfDocument.FromFile("document3.pdf")
        };
        
        var merged = PdfDocument.Merge(pdfDocuments);
        merged.SaveAs("merged.pdf");
    }
}

iText birleştirme işlemi, önemli miktarda şablon gerektirir: Çıktı için bir PdfWriter oluşturun, bunu bir PdfDocument içine sarın, bir PdfMerger oluşturun, sonra her PdfDocument ve PdfReader için girdiler arasında dolanan iç içe using ifadeleri ile kaynak dosyaları döngüye alın. Sayfa aralıklarını da merger.Merge(sourcePdf, 1, sourcePdf.GetNumberOfPages()) ile belirtmelisiniz.

IronPDF bunu üç adımda azaltır: PdfDocument.FromFile() ile belgeleri yükleyin, listeyle statik PdfDocument.Merge() metodunu çağırın ve kaydedin. Tüm birleştirme işlemi okunabilir ve bakımı yapılabilir hale gelir. Daha fazla bilgi edinin PDF birleştirme ve bölme.

Örnek 3: Metin ve Görsellerle PDF Oluşturma

Before (iText):

// NuGet: Install-Package itext7
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.IO.Image;

class Program
{
    static void Main()
    {
        string outputPath = "document.pdf";
        
        using (PdfWriter writer = new PdfWriter(outputPath))
        using (PdfDocument pdf = new PdfDocument(writer))
        using (Document document = new Document(pdf))
        {
            document.Add(new Paragraph("Sample PDF Document"));
            document.Add(new Paragraph("This document contains text and an image."));
            
            Image img = new Image(ImageDataFactory.Create("image.jpg"));
            img.SetWidth(200);
            document.Add(img);
        }
    }
}

Sonrası (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        
        string html = @"
            <h1>Sample PDF Document</h1>
            <p>This document contains text and an image.</p>
            <img src='image.jpg' width='200' />";
        
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("document.pdf");
    }
}

Bu örnek paradigma değişimini en açık şekilde gösterir. iText şunları gerektirir:

  • Üç kez iç içe using ifadeleri (PdfWriter, PdfDocument, Document)
  • Her metin elementi için new Paragraph() ile Paragraph nesneleri oluşturma
  • Görüntüleri yüklemek için ImageDataFactory.Create() kullanma
  • Image nesnesi oluşturma ve ayrı ayrı SetWidth() çağırma
  • Her eleman için document.Add() çağırma

IronPDF standart HTML kullanır: başlıklar için <h1>, paragraflar için <p> ve width özelliği ile görüntüler için <img>. Web geliştiricileri var olan becerilerini hemen kullanabilir ve tasarımcılar halihazırda bildikleri CSS'i kullanarak belgeleri tasarlayabilir.


Kritik Taşıma Notları

Paradigma Değişimi: Programatikten HTML-Öncelikli

Bu iText geçişindeki en önemli değişim kavramsaldır. iText, PDF'leri programatik olarak oluşturur:

// iText approach
document.Add(new Paragraph("Title")
    .SetTextAlignment(TextAlignment.CENTER)
    .SetFontSize(24)
    .SetBold());

var table = new Table(UnitValue.CreatePercentArray(3)).UseAllAvailableWidth();
table.AddHeaderCell(new Cell().Add(new Paragraph("ID")));
table.AddHeaderCell(new Cell().Add(new Paragraph("Name")));
// ... many more lines

IronPDF HTML ve CSS kullanır:

//IronPDF approach
string html = @"
    <style>
        h1 { text-align: center; font-size: 24px; font-weight: bold; }
        table { width: 100%; border-collapse: collapse; }
        th { background-color: #4CAF50; color: white; padding: 8px; }
    </style>
    <h1>Title</h1>
    <table>
        <tr><th>ID</th><th>Name</th></tr>
    </table>";

var pdf = renderer.RenderHtmlAsPdf(html);

AGPL Maruziyeti Kaldırıldı

iText'in AGPL terimlerine göre, iText kullanan bir web uygulaması genellikle ağ üzerinden onunla etkileşime giren herkese kaynağını açması beklenir; ticari lisans alternatif bir yoldur. IronPDF'nin ticari lisansı, viral lisanslama gereklilikleri olmaksızın tescilli yazılımda dağıtıma izin verir.

pdfHTML Eklentisi Gerekli Değil

iText, çekirdek itext paketinin üzerinde satılan HTML'den PDF'e dönüşüm için ayrı itext.pdfhtml eklentisini (şu anda 6.3.2) gerektirir. IronPDF, temel pakette Chromium tabanlı HTML renderı içerir.

Yöntem Değiştirme Kalıpları

iText KalıbıIronPDF Değiştirme
SetTextAlignment(TextAlignment.CENTER)CSS text-align: center
SetFontSize(24)CSS font-size: 24px
SetBold()CSS font-weight: bold
new Table(3)HTML <table>
AddHeaderCell(new Cell().Add(new Paragraph()))HTML <th>
AddCell(new Cell().Add(new Paragraph()))HTML <td>

Hata Ayıklama

Sorun 1: PdfWriter/Document Kalıbı

Probleme: Kod, PdfWriterPdfDocumentDocument iç içe geçme modelini kullanır.

Çözüm: ChromePdfRenderer ile değiştirin:

// Delete this iText pattern:
// using (var writer = new PdfWriter(outputPath))
// using (var pdfDoc = new PdfDocument(writer))
// using (var document = new Document(pdfDoc))

// Replace with:
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs(outputPath);

Sorun 2: HtmlConverter Bulunamadı

Probleme: Kod, ayrı olarak satın alınan itext.pdfhtml eklentisinde bulunan iText.Html2pdf.HtmlConverter kullanıyor.

Çözüm: IronPDF'nin yerleşik HTML işleme özelliğini kullanın:

// iText (requires pdfHTML add-on)
HtmlConverter.ConvertToPdf(html, fileStream);

//IronPDF(built-in)
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs(outputPath);

Sorun 3: PdfMerger Karmaşıklığı

Probleme: iText'ün PdfMerger, iç içe okuyucular ve sayfa aralığı belirtimi gerektirir.

Çözüm: IronPDF'nin statik birleştirme yöntemini kullanın:

// iText merger pattern (delete this)
// using (PdfDocument pdfDoc = new PdfDocument(writer))
// {
//     PdfMerger merger = new PdfMerger(pdfDoc);
//     foreach (string file in inputFiles)
//     {
//         using (PdfDocument sourcePdf = new PdfDocument(new PdfReader(file)))
//         {
//             merger.Merge(sourcePdf, 1, sourcePdf.GetNumberOfPages());
//         }
//     }
// }

//IronPDF(simple)
var merged = PdfDocument.Merge(pdfDocuments);
merged.SaveAs("merged.pdf");

Geçiş Kontrol Listesi

Öncesi-Geçiş

Kod tabanındaki tüm iText API çağrılarını envanterleyin Programatik PDF oluşturma kalıplarını (Paragraph, Table, Cell) belirleyin HtmlConverter kullanımını belgelendirin (pdfHTML eklentisi) AGPL uyumluluk riskini değerlendirin -IronPDF lisans anahtarını edinin

Kod Geçişi

  • iText NuGet paketlerini kaldırın: dotnet remove package itext (ve eskimiş itext7 takma adı, artı itext.pdfhtml / iTextSharp varsa) -IronPDF NuGet paketini yükleyin: dotnet add package IronPdf
  • Ad alanı ithalatlarını güncelleyin (using iText.*using IronPdf)
  • Document kalıbını ChromePdfRenderer ile değiştirin
  • Cell'yı HTML elemanlarına dönüştürün
  • HtmlConverter.ConvertToPdf()'yı RenderHtmlAsPdf() ile değiştirin
  • Birleştirme işlemlerini PdfDocument.Merge()'e güncelleyin
  • Başlangıçta lisans anahtarı başlatmasını ekleyin.

Test Etme

Tüm PDF oluşturma yollarını test edin Görsel çıktının beklentilere uygun olduğunu doğrulayın Karmaşık HTML/CSS içeriği ile test edin Performansı karşılaştırın

Geçiş Sonrası

iText lisans dosyalarını ve referanslarını kaldırın

  • Belgeleri güncelleyin iText aboneliğini iptal edin (uygulanabilir durumdaysa) Eski iText kodunu arşivleyin

Lütfen dikkate alın: iText, ilgili sahibinin tescilli markasıdır. Bu site, iText Group ile ilişkili, onaylanmış veya desteklenmiş değildir. Tüm ürün adları, logolar ve markalar, ilgili sahiplerinin mülkiyetindedir. 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.
Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez