KARşıLAşTıRMA

2026'da HTML'den PDF'e Dönüştürme Araçları için Kesin Kılavuz

HTML'yi PDF'ye Dönüştürme Araçlarının Karşılaştırılması

HTML'den PDF'e manzara beş farklı seviyeye ayrılır: tarayıcı-motor sarmalayıcıları, ticari CSS motorları, programatik PDF oluşturucuları, istemci-tarafı dönüştürücüler ve bulut REST API'leri. Her birinin dönüşüm süreci ve render sadakati, stil sayfası desteği, performans ve maliyet açısından farklı avantaj ve dezavantajları vardır. Chromium tabanlı araçlar (Puppeteer, Playwright, IronPDF, Gotenberg) JavaScript yürüttükleri ve tam CSS3 render ettikleri için modern web içeriği için baskındır, ancak hafif PDF araçlarına göre 6-11 kat daha fazla CPU/RAM tüketirler. Ticari CSS motorları (PrinceXML, PDFreactor, Antenna House) en yüksek kalitede sayfalama PDF belgesi çıktısı üretir, ancak $1.900–$7.000+/yıl maliyetlidir. En kritik bulgu: wkhtmltopdf, hala HTML'yi dönüştürmek için üretim sistemlerinde gömülü olan ve Ocak 2023'te kritik yamalanmamış CVE'ler ile arşive taşındı ve hemen değiştirilmelidir.

Bu rapor, işleme motoru, CSS/JavaScript desteği, güvenlik özellikleri, dağıtım seçenekleri, fiyatlandırma ve ölçeklenebilirlik konusunda resmi belgeler, GitHub depoları ve bağımsız karşılaştırmalardan elde edilen 23 aracı değerlendirir, iş akışınız için doğru dönüştürücüyü seçmenize yardımcı olur.

İşleme Motorları PDF Aracı Yeteneklerini Nasıl Tanımlar

Motor Mimarisi Anlayışı

HTML'den PDF'ye bir araç seçerken en önemli faktör işleme motorudur. Diğer tüm yetenekler, CSS desteği, JavaScript yürütme, işleme doğruluğu — bu mimari karardan kaynaklanır.

Chromium/Blink tabanlı araçlar (Puppeteer, Playwright, IronPDF, Gotenberg, PDFCrowd, PDFShift, Headless Chrome CDP, Selenium) Google's tarayıcı motorunu kullanır. Bir web sayfasını Chrome ile aynı şekilde yüklerler, tam CSS3 desteklerler (Flexbox, Grid, değişkenler, medya sorguları) ve tüm modern HTML kodunu çalıştırırlar. Takas kaynak tüketimidir: eşzamanlı yük altında dönüşüm başına ~85–200 MB RAM'e, 1.5–2 GB Docker görüntülerine ve sunucusuz ortamlarda 5–15 saniye soğuk başlangıçlara sahiptir.

Özel CSS'den PDF'ye motorlar (PrinceXML, PDFreactor, Antenna House, WeasyPrint, iText pdfHTML) HTML ve CSS'yi amaçlanan işleme motorlarıyla ayrıştırır. CSS Paged Media'da — çalıştırılan başlıklar, alt bilgi bölümleri, dipnotlar, kenar kutuları, web tarayıcılarının temelde bulunmadığı özellikler — çok iyidirler. PrinceXML, bu yaklaşımı 2003 yılında öncü etti; şirket başkanı Håkon Wium Lie, CSS'i kendisi ilk yaratan kişidir. PDFreactor, özel motorlar arasında en iyi JavaScript desteğini sunar (ECMAScript 2025 via GraalJS). Antenna House, uluslararasılaşmada (80+ dil, 30+ yazı tipi) ve ham performansta öne çıkar, yerel C/C++ motoru aracılığıyla.

Programatik oluşturucular (PDFKit, pdfmake, jsPDF) doğrudan HTML girdisi yerine koddan PDF dosyaları oluşturur. Seçilebilir metin ile vektör çıktısı üretirler ancak geliştiricilerin düzeni programatik olarak tanımlamasını gerektirirler — HTML/CSS ayrıştırma olmadığında. İstemci tarafı ekran görüntüsü araçları (html2pdf.js) tarayıcı tarafından render edilen DOM'u raster görüntüler olarak yakalar, seçilemez, aranamaz belgeler üretir, bu da önemli sayfa boyutu ve kalite sınırlamaları içerir.

Motor türüTemsilci araçlarJS yürütmeModern CSSCSS Paged MediaTipik RAM/dönüştürme
Chromium/BlinkPuppeteer, Playwright, IronPDF, GotenbergFullTamNone85–200 MB
Özel CSSPrinceXML, PDFreactor, WeasyPrintYok–Tam (değişken)İyi–TamMükemmel30–100 MB
Özel düzen (Java)iText pdfHTML, OpenHTMLtoPDF, Flying SaucerNoneCSS 2.1–CSS3İyi50–150 MB
ProgramatikPDFKit, pdfmakeN/AN/AN/A10–50 MB
Canvas ekran görüntüsühtml2pdf.js, jsPDF (.html())N/Ahtml2canvas ile (sınırlı)NoneDeğişken

Eksiksiz Araç Bazlı Karşılaştırma Matrisi

Aşağıdaki tablo tüm 23 araç için en karar-dostu niteliklerin bir özünü çıkarır. Sonraki bölümlerde her biri detaylı bir analizi takip eder.

AletTürDilMotorJS desteğiFlexbox/GridBaşlıklar/alttanDoldurulabilir formlarLisansBaşlangıç fiyatı
IronPDFKütüphaneC#, Java, Python, NodeChromiumTam✅/✅✅ HTML+text✅ HTML'den OtomatikTescilli$2,998 süresiz
PuppeteerKütüphaneNode.jsChromiumTam✅/✅✅ HTML şablonlarıApache 2.0Ücretsiz
PlaywrightKütüphaneJS, Python, Java, .NETChromiumTam✅/✅✅ HTML şablonlarıApache 2.0Ücretsiz
Headless Chrome CDPProtokolHerhangi (CDP istemcisi)ChromiumTam✅/✅✅ HTML şablonlarıBSDÜcretsiz
SeleniumKütüphaneJava, Python, C#, Ruby, JSChromium/FirefoxTam✅/✅⚠ Sadece CDP aracılığıylaApache 2.0Ücretsiz
GotenbergDocker APIGo (HTTP API)Chromium + LibreOfficeTam✅/✅✅ HTML şablonlarıMITÜcretsiz
PrinceXMLCLI/EngineMerkür (sarmalayıcılar: Java, .NET, PHP)ÖzelKısmi (ES5)✅/✅ (olgunlaşıyor)✅ CSS Paged MediaTescilli$495 masaüstü / $3.800 sunucu
PDFreactorKütüphane/HizmetJavaÖzel + GraalJSTam (ES2025)✅/✅✅ CSS Paged MediaTescilli$1.908/yıl
Antenna HouseMotor/CLIC/C++ (APIs: Java, .NET, COM)Özel XSL-FO + CSSNone✅/❌✅ XSL-FO + CSSTescilli$400/yıl Lite
WeasyPrintKütüphane/CLIPythonÖzel (Cairo/Pango)None✅/⚠ temel✅ CSS Paged Media⚠ KısmiBSD 3-ClauseÜcretsiz
wkhtmltopdfCLIC++ (Qt)Qt WebKit (~2012)⚠ Sadece ES5❌/❌✅ CLI bayraklarLGPL v3Ücretsiz (ARŞİVLENDİ)
iText pdfHTMLKütüphaneJava, C#Özel (iText Core)None✅/✅✅ @page kurallarıAGPL / Ticari~$10K/yıl ticari
OpenHTMLtoPDFKütüphaneJavaÖzel + PDFBoxNone❌/❌✅ @page kuralları⚠ TemelLGPL 3.0Ücretsiz
Flying SaucerKütüphaneJavaÖzel + OpenPDFNone❌/❌✅ Kenar boşluğu kutuları⚠ SınırlıLGPL 2.1+Ücretsiz
jsPDFKütüphaneJavaScript (tarayıcı + Node)html2canvas (HTML için)PDF içinde Yok❌/❌ (html2canvas üzerinden)⚠ Eklenti aracılığıyla✅ AcroForm APIMITÜcretsiz
html2pdf.jsKütüphaneJavaScript (sadece tarayıcı)html2canvas + jsPDFNone❌/❌MITÜcretsiz
pdfmakeKütüphaneJavaScript (tarayıcı + Node)Özel bildirimselNoneN/A (kendi düzeni)✅ YerleşikMITÜcretsiz
PDFKitKütüphaneNode.jsÖzel zorunlu⚠ Sadece AcroFormN/A (CSS yok)⚠ Olaylar yoluyla manuel✅ AcroForm APIMITÜcretsiz
DocRaptorBulut APIHerhangi (REST)PrinceXMLKısmi (çok geçişli)✅/Prince aracılığıyla✅ CSS Paged Media✅ OtomatikTescilli$15/ay (125 doküman)
PDFCrowdBulut APIHerhangi (REST)ChromiumTam✅/✅✅ TemelTescilli~$11/ay
PDFShiftBulut APIHerhangi (REST)ChromiumTam✅/✅✅ (ücretli planlar)TescilliÜcretsiz (50/ay) / $9/ay
APITemplate.ioBulut APIHerhangi (REST)Büyük olasılıkla ChromiumTam✅/✅✅ şablonlar aracılığıylaTescilliÜcretsiz (50/ay) / $19/ay
NutrientSDK/API/EngineÇoklu platformChromium + PDFiumTam✅/✅✅ Gelişmiş✅ OtomatikTescilli$67/ay bulut / SDK özel

IronPDF: Bu Öne Çıkan Kütüphane ile HTML Dosyalarını Kolayca PDF'ye Dönüştürün

IronPDF

IronPDF, geniş PDF araç takımı ile yerel bir .NET kütüphanesine sarılmış bir Chromium tabanlı render motoru olarak benzersiz bir konuma sahiptir. Puppeteer, şifreleme, dijital imzalar veya form manipülasyonu için ayr ayrı kütüphanelerin yüklenmesini gerektirirken, IronPDF bunların hepsini tek bir NuGet paketinde bir araya getirir.

Render mimarisi, sonraki işlemler için sıcak kalan ve böylece ham Puppeteer'ın ölçekleme sırasında pahalı hale gelmesine neden olan PDF başına işlem oluşturulmasını ortadan kaldıran özel optimize edilmiş bir Chrome motoru yerleştirir. IronPDF, yüksek yük senaryolarında web-sürücü tabanlı çözümlerden 5-20 kat daha hızlı performans talep ediyor. G2 incelemeleri 'piksel mükemmelliği ile 100+ sayfalık raporlar' ve tam CSS uyumu doğruluyor.

API ergonomisi herhangi bir HTML dosyası için gerçekten minimaldir. Temel desen iki satır C#'tır:

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

pdf.SaveAs("output.pdf");
var pdf = new ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello</h1>");

pdf.SaveAs("output.pdf");
Dim pdf = (New ChromePdfRenderer()).RenderHtmlAsPdf("<h1>Hello</h1>")

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

Yapılandırma temiz bir şekilde ölçeklenir: RenderingOptions, CSS medya türü değiştirme, JavaScript bekleme stratejileri, özelleştirilmiş CSS enjeksiyonu ve PaperFit ile uyumlu görünüm portu kontrolü sunar. Araç setinin genişliği ana farktır. IronPDF, birleştirme, ayırma, kopyalama/silme dosyalar, AES-256 şifreleme, X.509 dijital imzalar, kalıcı kara kutu, HTML tabanlı filigranlama, sayfa yönelimi PDF/A uyumluluğu, PDF/UA erişilebilir çıktısı ve HTML

öğelerinden PDF'ye AcroForm oluşturulmasını destekler. Web sayfalarını, DOCX dosyalarını ve daha fazlasını yalnızca birkaç satır kodla PDF dosya formatına dönüştürerek kısa zamanda çok sayıda dosya üretmeyi kolaylaştırır.

Çapraz platform dağıtımı Windows, Linux (Ubuntu sıfır yapılandırma, Debian/CentOS ile bağımlılıklar), macOS, Docker (port 33350 üzerinden gRPC ile iletişim kuran resmi ironsoftwareofficial/ironpdfengine görüntüsü), Azure (Web Uygulamaları, İşlevler, Kubernetes) ve AWS (Lambda, ECR) kapsamaktadır.

Fiyatlandırma, $2,998 (Lite, 1 geliştirici/proje) ile $8,998 (Professional, 10 geliştirici/proje) arasında süresiz lisans olarak sunulmaktadır, OEM yeniden dağıtımı ek olarak $8,998. Iron Suite, toplam iki ürünün fiyatına tüm 10 Iron Software ürününü bir arada sunar. Kurumsal OEM için abonelik seçenekleri yıllık yaklaşık $2.549–$16.687 aralığında değişmektedir. 30 günlük tam işlevli bir deneme, üzerlerinde filigran olmaksızın mevcuttur.

Ana sınırlamalar arasında ~280 MB ikili kod Linux'ta (gömülü Chrome tarayıcısı), ilk işlemin soğuk başlatma iş yükü, Docker motoru için yatay ölçeklendirme yapılamaması ve tescilli bir API'nin doğal satıcı kilitlemesi bulunmaktadır. Büyük belgeler için bellek yönetimi dikkat gerektirir ve bazı kullanıcılar büyük tablo render işlemlerinde uç durumlarla karşılaşıyor.

IronPDF web sitesinde bu güçlü kütüphane hakkında daha fazla bilgi edinmek için kapsamlı belgeleri ziyaret edin. Bu kütüphaneyle kodlama yaparken herhangi bir hata ile karşılaşırsanız, derinlemesine bir sorun giderme bölümü ve geliştirici desteği de sunar.

Web Otomasyon Araçları Chromium'un Gücünü ve Sınırlarını Paylaşıyor

Puppeteer, Playwright, Headless Chrome CDP, Selenium ve Gotenberg hepsi nihayetinde Chromium'un Page.printToPDF CDP komutunu çağırır. Farkları soyutlama düzeyinde, dil desteğinde ve operasyonel ergonomide yatar.

Puppeteer (Google, Apache 2.0) hala 31,1k GitHub yıldızı ile en olgun Node.js seçeneği olmaya devam ediyor. page.pdf() API'si, kağıt formatını, ölçeği (0.1–2×), kenar boşluklarını, başlık/altbilgi HTML şablonlarını enjeksiyon sınıflarıyla (sayfaNumarası, toplamSayfalar, tarih), arka plan yazdırmayı, sayfa aralıklarını ve deneysel belge taslak çıkışını açığa çıkarır. Bir Carriyo vaka çalışması AWS Lambda üzerinde günde 10.000 PDF belgeledi. page.createPDFStream() yöntemi, büyük belgeleri bellek çöküşleri olmadan işleyebilir. Puppeteer, aynı içerik için wkhtmltopdf'den yaklaşık 3 kat daha hızlı 10 PDF için ortalama 7,84 saniye sürelidir.

Playwright (Microsoft, Apache 2.0), neredeyse aynı PDF yeteneklerini sunar ancak Puppeteer'ın manuel waitForSelector beklemesine kıyasla titremeyi azaltan yerleşik çoklu dil desteği (JavaScript, Python, Java, .NET) ve otomatik beklemeyi ekler. Versiyon 1.42+, başlık yapısından PDF taslak/yer imi oluşturulmasını eklemiştir. PDF oluşturma işleminde yalnızca Chromium kullanılır, Playwright'in Firefox veya WebKit tarayıcılarıyla çalışmaz. Benchmarklar, Puppeteer'ın gezinmeye yoğun iş akışları için 4,784süne kıyasla Playwright'in ortalama 4,513s olduğunu göstermektedir.

Gotenberg, MIT lisansı altında bir Go tabanlı Docker HTTP API içinde Chromium'u (ve Ofis belgeleri için LibreOffice) sarmalar. Bu, PDF-as-a-microservice (mikroservis olarak PDF) için referans mimaridir: durumsuz, çoklu dilde agnostik multipart/form-data aracılığıyla ve Cloud Run ve AWS Lambda için optimize edilmiş görüntüler olarak mevcuttur. QPDF üzerinden PDF şifreleme (AES-256), PDF/A uyumluluğu (1a, 2b, 3b), birleştirme/ayırma işlemleri ve PDF meta verilerini düzenleyebilme yeteneklerini eşsiz bir şekilde ekler; hiçbir başka Chromium tabanlı araç bu özellikleri doğal olarak sağlamaz. Eşzamanlılık, ek konteynerler aracılığıyla yatay ölçeklendirme ile birlikte her örnek başına 6 paralel Chromium dönüştürme ile sınırlıdır (yapılandırılabilir).

Headless Chrome CDP, en düşük seviye seçenektir, sıfır kütüphane yükü, sadece Chrome ikili kodu ve herhangi bir dilde (Go, Python, Ruby, Elixir) bir CDP istemcisi. CLI modu (chrome --headless --print-to-pdf), CDP API lehine kaldırılmaktadır. Kompromisi, Chrome işlem yaşam döngüsünü yönetmek, zombi işlemleri ve bekleme stratejilerinizi manuel olarak uygulamaktır.

Selenium + tarayıcı PDF PDF oluşturma için zayıf bir seçenektir. Standart PrintsPage API'si sınırlı seçeneklere sahiptir; tam başlık/altbilgi şablonları, yalnızca Chromium ile çalışabilen ve kendi içinde geçici olan (WebDriver BiDi'ye geçiş yapan) CDP köprüsü (driver.execute_cdp_cmd("Page.printToPDF", {...})) gerektirir. selenium-print paketi belgeleri açıkça uyarıyor: 'Eğer önceliğiniz performans ise, bu sizin için bir kütüphane değildir.'

Bu araçların hiçbiri doldurulabilir PDF formları üretmez — Chromium'un print-to-PDF işlevi tüm form öğelerini düzleştirir. Hiçbiri doğal olarak PDF şifreleme, dijital imzalar veya kara kutuyu desteklemez. Bu özellikler için harici kütüphanelerle (pdf-lib, QPDF, iText) sonrası işlem gereklidir — veya bu araçları birleştiren Gotenberg'i kullanın.

Ticari CSS Motorları Sayfalı PDF Belge Yayınında Üstün

PrinceXML, PDFreactor ve Antenna House, web tarayıcılarının basitçe uygulamadığı W3C CSS Paged Media spesifikasyonlarını uyguladıkları için yüksek fiyatlarla sunulmaktadır. Sayfa boyutu ayarları, sol kenarlık kutuları, dipnotlar, adlandırılmış sayfalar ve otomatik içerik tablosu oluşturma işlemlerini gerçekleştirirler.

PrinceXML ($3.800/sunucu tek seferlik, $495/masaüstü) altın standarttır. Özel motoru, 2003'ten beri en yüksek sadakatli CSS Paged Media çıktısını üretti. Prince, Flexbox'ı (v12, 2018'den beri) ve CSS Grid'i (v16, ~2024'ten itibaren, sayfalar arası parçalanma hala olgunlaşmaktadır) desteklemektedir. JavaScript, yalnızca ES5 ile sınırlıdır — ok fonksiyonları, Promises veya async/await yoktur. PDF/A-1a/1b/3a/3b, PDF/UA-1, PDF/X-1a/3/4, RC4 şifreleme (40/128-bit) desteklenir, ancak dijital imzalar desteklenmez (uzun süredir bir eksiklik). Geliştirme için filigranlı ücretsiz bir ticari olmayan lisans mevcuttur.

PDFreactor ($1.908/yıl Pro abonelik) en teknik olarak gelişmiş olanıdır. GraalJS entegrasyonu, ECMAScript 2025 desteği sağlar (Java 20+ gerektirir), bu da onu tam modern JavaScript içeren tek özel CSS motoru yapar. CSS Bölgeleri, CSS Şekilleri, temel çizgi ızgaraları ve en geniş PDF/A varyant setini (1a'dan 3u'ya kadar) destekler. Kritik olarak, yerleşik dijital imzalama içerir — bu Prince'de bulunmayan bir şeydir. Dağıtım Java JAR, gömülü Jetty web hizmeti veya Docker konteyneri iledir. Kurumsal müşteriler arasında Dell Technologies ve Deutsche Post (500.000+ çalışan) bulunmaktadır.

Antenna House Formatter ($5.000/sunucu süresiz için XSL-FO, $1.250/bağımsız CSS için) benzersizdir çünkü çift XSL-FO ve CSS motorudur. Yerel C/C++ uygulaması, en hızlı ham performansı en düşük bellek ayak iziyle sunar. 80+ dili ve 30+ yazı sistemini destekler — uluslararasılaştırma için rakipsizdir. Ancak, JavaScript desteği yoktur ve CSS Grid desteklenmez. Ana izleyici kitlesi, XSL-FO'nun CSS'den daha ayrıntılı kontrol sağladığı XML merkezli yayın iş akışlarıdır (DITA, DocBook).

Java Ekosistem Araçları Kurumsaldan Hafife Kadar Değişir

iText pdfHTML, en kapsamlı Java seçeneğidir, Flexbox'u (2025 yılından beri kapsamlı), CSS Grid'i (2024 yılından beri) CSS Paged Media üstbilgi/altbilgileri ve HTML'den AcroForm'a dönüşümü destekler. Kritik kısıtlaması lisanslamadır: AGPL v3, uygulamanızın tamamını açık kaynaklı hale getirmenizi gerektirir eğer dağıtırsanız veya bir ağ hizmeti olarak sunarsanız. Ticari lisanslar ~ $10,000/yıl (küçük dağıtımlar) ile $210,000+/yıl (kurumsal) arasında değişir, endüstri ortalaması Vendr verilerine göre ~ $45,000/yıldır. iText herhangi bir JavaScript çalıştırmaz, sadece statik bir HTML/CSS analizcidir.

OpenHTMLtoPDF ve Flying Saucer, mülkiyet yazılımında özgürce kullanılabilen LGPL lisanslı alternatiflerdir. Her ikisi de sadece CSS 2.1 ile sınırlıdır — Flexbox yok, Grid yok — ve herhangi bir JavaScript yürütmezler. OpenHTMLtoPDF'nin orijinal deposu (danfickle/openhtmltopdf, 2.1k yıldız) ~2022'de terk edilmiştir; aktif bir topluluk çatalı io.github.openhtmltopdf (Maven Central, v1.1.31, Eylül 2025) PDFBox 3.x'e taşınmıştır. Flying Saucer (2.2k yıldız) @asolntsev tarafından (v10.0.6, Aralık 2025) aktif olarak sürdürülmektedir ancak en son sürüm için artık Java 21+ gerektirir. Her iki araç da biçimlendirilmiş XHTML girişi gerektirir, herhangi bir 'vahşi' HTML'yi işleyemezler.

Kaynak kalite notu: OpenHTMLtoPDF ve Flying Saucer için CSS destek iddiaları, esas olarak proje README'leri ve topluluk raporlarından gelmektedir. Hiçbir araç için kapsamlı CSS destek matrisleri veya üçüncü taraf doğrulaması mevcut değildir. Performans iddiaları bağımsız kıyaslamalar olmadan kendi kendine bildirilmiştir.

Tarayıcı tarafı JavaScript Araçları Dar Kullanım Durumları için İyi Hizmet Verir

pdfmake (12.2k yıldız, 1.1M+ haftalık npm indirme) yapılandırılmış belgeler için en güçlü tarayıcı tarafı seçeneğidir. Otomatik sayfa düzenleme, sayfa başlıklarının tekrarı, dinamik başlıklar/altbilgiler ve vektör çıkışı (aranabilir, seçilebilir metin) gibi yerleşik özelliklerle HTML değil, deklaratif bir JSON belge tanımı kullanır. PDF/A (beta) ve şifrelemeyi destekler. Öğrenme eğrisi, halihazırda HTML şeklinde mevcut olabilecek içeriği yeniden ifade etmeyi gerektiren deklaratif sözdizimidir.

PDFKit (10.5k yıldız, 1.2M+ haftalık indirme) düşük seviyeli betimleyici kontrol, hassas konumlandırma için tuval benzeri bir API sağlar. Akışkan API'si, büyük sunucu tarafı belgeler için hafıza etkinliği sağlar. AcroForm oluşturma, PDF/UA erişilebilirlik ve RC4/AES şifrelemeyi destekler. Bununla birlikte, HTML/CSS çözümlemesi ve yerleşik tablo desteği yoktur (pdfkit-table gibi eklentiler gerektirir).

jsPDF (31.1k yıldız, ~2.5M haftalık indirme) indirme sayısına göre en popüler olanıdır. .html() yöntemi, html2canvas kullanarak DOM'u raster görüntüler olarak yakalar ve büyük dosya boyutuna sahip, seçilemeyen ve aranamayacak PDF'ler üretir. AcroForm eklentisi, HTML form elemanlarından değil, doldurulabilir form alanlarını programlı olarak oluşturabilir. Tuval boyutu sınırı (~16,384px yükseklik), uzun belgelerde boş sayfalara neden olur.

html2pdf.js (4.8k yıldız) jsPDF + html2canvas'ı en basit API'ye sarar: html2pdf(element). Çıktı tamamen raster görüntüler olarak üretilir. Tuval boyutu sınırı bunun en kritik hatalı yönüdür — ~16,384px'i aşan belgeler tamamen boş sayfalar olarak görüntülenir (GitHub sorunu #19). 462 açık sorun vardır, yalnızca tarayıcılarda çalışır (Node.js yoktur) ve erişilemez çıktı üretir.

Bulut API'leri operasyonel basitlik için kontrolü takas ediyor

DocRaptor ($15–$1,000+/ay) CSS Sayfalı Medya desteği, otomatik HTML'den doldurulabilir PDF'e dönüşüm ve WCAG/Bölüm 508 erişilebilir çıkış sağlayan tek API olan PrinceXML'i kullanır. 99.99% uptime SLA, SOC 2 ve HIPAA uyumluluğu, plan ne olursa olsun 30 eşzamanlı belge ve sınırsız ücretsiz filigranlı test belgeleri sunar. Dezavantajları, Prince'in yalnızca ES5 JavaScript sınırlaması ve bulut tabanlı dağıtım olmasıdır.

Nutrient Document Engine (eski adıyla PSPDFKit, Insight Partners'tan €100M aldıktan sonra 2024'te yeniden markalaştı) yalnızca HTML'den PDF'e değil, Web, iOS, Android, .NET gibi tam doküman işleme SDK'sı sunan en kapsamlı platformdur. SOC 2 Tip II sertifikasyonu, WCAG 2.2 AA uyumluluğu, AI destekli geçersiz kılma ve kriptografik dijital imzalar sunar. Kendi kendine barındırılan Docker dağıtımı mevcuttur. DWS bulut API fiyatlandırması $67/aydan başlar (1.000 kredi, her bir HTML'den PDF'e dönüşüm 0.5 krediye mal olur). SDK lisanslaması açıktır, satış irtibat gerektirir, kurumsal sözleşmelerin önemli yıllık taahhütlere ulaştığı belirtilmektedir.

PDFShift basitliğiyle öne çıkar: 3 satırlık entegrasyon, cömert bir ücretsiz katman (ayda 50 dönüşüm), tüm planlarda 50 paralel dönüşüm, gizlilik odaklı veri işleme (belgelerin saklanmaması) ve HIPAA BAA mevcudiyeti. Fiyatlandırma $9–$99+/ay arasında değişir. CSS Sayfa Medya, doldurulabilir formlar ve erişilebilir PDF desteğinden yoksundur.

PDFCrowd, çıktı dosya boyutuna bağlı olarak kredi bazlı fiyatlandırma ile Chromium kullanır (1 kredi = 0.5 MB çıktı), değişken boyutta belgeler için maliyetleri öngörülemez hale getirir. Hız sınırları plana göre dakikada 15–360 dönüşüm arasında değişir. Erişilebilir/etiketli PDF desteği yoktur ve halka açık uptime SLA'sı bulunmamaktadır.

APITemplate.io ($19–$179/ay sadece PDF planları için), WYSIWYG düzenleyici, Zapier/Make.com entegrasyonları ve bölgesel API uç noktaları (ABD, AB, Singapur, Avustralya) ile şablon tabanlı üretime odaklanır. Rastgele HTML dönüşümünden ziyade tekrarlayan belge türleri (faturalar, sertifikalar, raporlar) için optimize edilmiştir.

wkhtmltopdf değiştirilmesi gereken kritik bir güvenlik riski

wkhtmltopdf Ocak 2023'te GitHub'da arşivlendi ve Temmuz 2024'te yöneticiler tarafından artık bakımı olmadığına işaret edildi. Son sürümü (0.12.6, Haziran 2020) yaklaşık 2012'den bir Qt WebKit motoru kullanır ve arşivlemeden beri güvenlik yamaları yoktur. En ciddi güvenlik açığı, CVE-2022-35583 (CVSS 9.8 Kritik), sunucu tarafı istek sahtekarlığı sağlar: kullanıcı tarafından sağlanan HTML'ye bir iframe ekleyen bir saldırgan, AWS EC2 örnek meta verileri dahil olmak üzere iç ağ kaynaklarına erişebilir ve potansiyel olarak tüm altyapının ele geçirilmesine yol açar. CVE-2020-21365 (CVSS 7.5), yerel dosyaların okunması için dizin gezintisi sağlar.

wkhtmltopdf bakımcısı kendi durum sayfasında uyarır: "Herhangi bir güvenilmeyen HTML ile wkhtmltopdf kullanmayın." CiviCRM, CIVI-PSA-2024-01 yayınlayarak acil kaldırımı önerdi. Pantheon, 2025'te PHP Çalışma Zamanı Gen 2'den kaldırdı. Buna rağmen, wkhtmltopdf her büyük dil ekosisteminde sarmalayıcı kütüphanelerin içinde gömülü olarak kalmıştır (Python'un pdfkit'i, Ruby'nin wicked_pdf'si, PHP'nin KnpSnappy'si, .NET'in DinkToPdf'si).

Geçiş yolları: Tam JavaScript yürütme için Puppeteer/Playwright (işlevsel olarak eş değer olan), JS gerektirmeyen Python yığınları için WeasyPrint, mikroservis mimarileri için Gotenberg veya CSS Sayfa Medya ihtiyaçları için DocRaptor/PrinceXML.

Performans kıyaslamaları belirgin kaynak takaslarını ortaya çıkarıyor

Kyotu Technology ve hardkoded.com bağımsız kıyaslamalar ile niceliksel karşılaştırmalar sağlar:

MetrikwkhtmltopdfPuppeteer (Chromium)Oran
10 PDF oluşturma süresi19.17s ort.7.84s ort.Puppeteer 2.4× daha hızlı
RAM (ardışık)34.9 MB85.3 MBwkhtmltopdf 2.4× daha hafif
RAM (5 eşzamanlı kullanıcı)34.7 MB203.3 MBwkhtmltopdf 5.9× daha hafif
CPU (5 eşzamanlı)39.3%452.1%wkhtmltopdf 11.5× daha hafif
Docker görüntü boyutu~1.2 GB~2.0 GBwkhtmltopdf %40 daha küçük

WeasyPrint Docker görüntüleri, 200–400 MB gibi dramatik şekilde daha küçüktür ve işleme motoru hiçbir Chromium bağımlılığı içermez. Ancak, WeasyPrint karmaşık belgeler için yavaş olduğu biliniyor — bir kıyaslamada 52 sayfalık bir PDF ~100 saniyede alındı ve büyük tablolar (5.000+ satır) 1.4+ GB RAM tüketebilir.

Sunucusuz için, kritik metrik soğuk başlatma süresidir. Chromium tabanlı Lambda işlevleri, ikili sıkıştırma nedeniyle 5–15 saniye soğuk başlatmalar yaşar. Puppeteer-core ile birlikte @sparticuz/chromium-min (~50 MB sıkıştırılmış) kullanarak Lambda'nın 250 MB sınırına uyar ve paket boyutunu ~41 MB'dan ~769 KB'ye düşürür. Sağlanmış eşzamanlılık, soğuk başlangıçları ~400 ms'ye düşürür ancak maliyet ekler. Güvenilir Chromium PDF oluşturma için Lambda belleği en az 1.024 MB, ideal olarak 1.600 MB olmalıdır.

Güvenlik kapasiteleri araçlar arasında büyük ölçüde değişir

KapabiliteIronPDFiTextPrincePDFreactorGotenbergPuppeteer/PlaywrightWeasyPrint
ŞifrelemeAES-256 ✅AES-256, RC4 ✅RC4 (40/128-bit) ✅AES-256 (QPDF ile) ✅
Dijital imzalarX.509, HSM ✅PAdES, PKCS#7, TSA ✅
Geçersiz kılmaKalıcı ✅pdfSweep eklentisi ✅
PDF/A1A–4F ✅1a–3b ✅1a,1b,3a,3b ✅1a–3u ✅LibreOffice ile ✅1a–4f ✅
PDF/UA✅ (temel)
SOC 2

Yalnızca iText ve IronPDF şifreleme, dijital imzalar ve küçültme dahil olmak üzere tam güvenlik üçlüsünü sağlayan iki pakettir. iText Suite 9.5, geleceğe yönelik post-kuantum dirençli imza algoritmaları ekliyor. Bulut API'leri arasında, DocRaptor (SOC 2, HIPAA) ve Nutrient (SOC 2 Tip II, HIPAA, WCAG 2.2), uyumluluk sertifikalarında liderdir.

Her takımın beklemesi gereken dağıtım sorunları

Fontlar, geliştirme ve üretim arasındaki görüntüleme farklarının #1 nedeni. Minimal Docker görüntüleri tamamen font içermez ve ASCII olmayan metinler için tofu karakterleri (□) üretir. Çözüm, kapsamlı font paketlerini yüklemektir — Noto font ailesi hemen hemen her yazı sistemi için kapsam sağlar. CJK desteği için fonts-noto-cjk gereklidir. Özel fontlar /usr/local/share/fonts/ dizinine kopyalanmalı ve ardından fc-cache -f -v çalıştırılmalıdır.

Docker'daki Chromium sanallaştırması, dağıtım sorunu #2'dir. Chromium, Docker konteynerlerinde genellikle eksik olan Linux çekirdeği ad alanlarına ihtiyaç duyar, bu da Root olarak çalıştırmak --no-sandbox kullanmadan desteklenmez hatalarına neden olur. Güvenlik açısından doğru çözüm, bir root dışı kullanıcı oluşturmak (useradd -r pptruser); hızlı çözüm --no-sandbox olup güvenliği azaltır ve yalnızca güvenilen içerik için kullanılmalıdır.

Hafıza birikimi uzun süreli Chromium süreçlerinde sessiz bir katildir. Her dönüşümde hafıza artar, sonunda OOM çöküşlerine yol açar. Kritik azaltıcılar: Docker paylaşılan hafızayı artırmak (--shm-size=512M, varsayılan 64 MB çöküşlere neden olur), --disable-dev-shm-usage kullanmak, N dönüşümden sonra tarayıcı örneklerini yeniden başlatmak (Gotenberg bunu otomatik olarak 100'den sonra yapar) ve aptal başlangıç veya Docker --init kullanarak zombi süreçlerini temizlemek. Tek bir 50.000 satırlık HTML tablosu, Chromium'da 10+ GB RAM tüketebilir.

JavaScript zamanlaması, dinamik içeriğin yüklenmesini tamamlamadan eksik PDF'lere neden olur. waitUntil: 'networkidle0' kullanın (500 ms boyunca sıfır ağ bağlantısı bekler) veya açıkça hazır olan öğe için page.waitForSelector('.data-loaded') kullanın. Gotenberg, bu eksiklikleri önlemek için varsayılan olarak DomContent, Load, NetworkIdle ve LoadingFinished olaylarını bekleyerek, ~2 saniyelik bir temel gecikme ekler ancak bütünselliği sağlamak için.

Hangi araç hangi kullanım durumu için uygundur

Faturalar ve beyanatlar: WeasyPrint (Python yığınları — hafif, mükemmel CSS Sayfa Medya, Chromium yükü yok), Gotenberg (dil bağımsız mikroservis) veya pdfmake (tarayıcı tarafı yapılandırılmış belgeler). .NET için, IronPDF en ergonomik API'yi sağlar.

Grafikli raporlar ve panolar: Puppeteer veya Playwright — yalnızca tam tarayıcı motorları D3.js, Chart.js veya Plotly'yi yerel olarak çalıştırabilir. WeasyPrint, JavaScript ile oluşturulan grafikleri render edemez. IronPDF'nin Chromium motoru, bu işlemi .NET uygulamaları içinde dış süreçler başlatmadan yapar.

SPA'nın PDF'e dönüştürülmesi: Puppeteer veya Playwright tek gerçekçi seçeneklerdir. Modern çerçeveler (React, Angular, Vue) tam tarayıcı yürütmesi gerektirir. Tüm asenkron içeriğin yüklendiğinden emin olmak için waitUntil yapılandırması kritiktir.

Uygunluk ve güvenlik (PDF/A, dijital imzalama, şifreleme): iText (en kapsamlı ama pahalı), IronPDF (.NET, geniş güvenlik özellikleri), veya PDFreactor (Java, yerleşik imzalama). Chromium tabanlı araçlar herhangi bir güvenlik özelliği için dış işlemeyi gerektirir.

Sunucusuz ve konteynerler: Gotenberg (konteynerlere özel yapılmış, MIT lisanslı, Cloud Run/Lambda görüntüleri) veya AWS Lambda için Puppeteer-core + @sparticuz/chromium-min (50 MB sıkıştırılmış, sınır içinde).

Baskı kalitesinde yayıncılık: PrinceXML veya DocRaptor (API) — hiçbir şey, koşan başlıklar, dipnotlar, çapraz referanslar ve profesyonel tipografi için CSS Sayfa Medya sadakatlerine yaklaşmaz.

Toplu işlem ölçeklendirme: Gotenberg, yatay ölçeklendirme ile (bir yük dengeleci arkasında birden fazla konteyner), IronPDF ile asenkron toplu işlem (RenderHtmlAsPdfAsync + Parallel.ForEach) veya WeasyPrint ile Python ortamları için Celery işçileri.

Sonuç

2026'da HTML'den PDF'e ekosistemi açıkça farklılaşmış katmanlara ulaşmıştır. Chromium tabanlı araçlar, görüntüleme sadakati savaşını kazandı — çıktıları kullanıcıların Chrome'da gördüğüyle eşleşir ve modern JavaScript ve CSS'yi ödünsüz işler. Ancak bu sadakat, hafif alternatifleri (WeasyPrint, pdfmake) sınırlı ortamlar için cazip hale getiren bir kaynak maliyeti ile birlikte gelir.

Bu analizden üç düşünce öne çıkıyor. İlk olarak, Chromium araçları ile CSS Sayfa Medya motorları arasındaki fark daralıyor ama temel bir fark olarak kalıyor — belgelerinizin başlıklar, dipnotlar veya sayfa bilinçli düzenler gerektiriyor olması durumunda, PrinceXML, PDFreactor veya WeasyPrint hala web tarayıcı tabanlı yaklaşımları geride bırakır. İkincisi, çoğu araçta güvenlik ikinci plandadır — yalnızca IronPDF ve iText tek bir pakette şifreleme, imzalar ve küçültme sağlar, tüm Chromium ekosistemi ise varsayılan olarak korunmasız PDF'ler üretir. Üçüncü olarak, wkhtmltopdf geçişi isteğe bağlı değildir — CVSS 9.8 SSRF güvenlik açığı aktif olarak istismar edilebilir ve hala kullanmaya devam eden her organizasyon, değiştirilmesinin bir güvenlik olayı olarak ele almalı, bir özellik isteği değil.

Lütfen dikkate alınApache PDFBox, Apitemplate.io, DinkToPdf, Gotenberg, Nutrient, OpenPDF, PDFCrowd, PDFKit, PDFReactor, PDFShift, PDFium, Playwright, PrinceXML, PuppeteerSharp, iText, ve wkhtmltopdf kendi sahiplerinin tescilli markalarıdır. Bu site, APITemplate.io, Apache Software Foundation, Chromium Project, DinkToPdf, Google, Gotenberg, LibrePDF, Microsoft, Nutrient, PDFKit, PDFShift, PSPDFKit, Pdfcrowd, PuppeteerSharp, RealObjects, YesLogic Pty ile ilişkili değil, onaylanmış veya desteklenmiş değildir. Ltd., iText Group veya wkhtmltopdf. 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.