← Bloga dön

2026-06-03

HTML'den PDF'ye: Tarayıcı Yazdırma Motoru Nasıl Çalışır?

HTML'den PDF'ye aracımız tarayıcınızın yerel yazdırma motorunu kullanır — sunucu yok, headless Chrome yok. Kalite ve sınırlılıklar açısından bunun tam olarak ne anlama geldiğini açıklıyoruz.

En Basit HTML'den PDF'ye Pipeline

Çoğu HTML'den PDF'ye araç, sunucuda headless bir tarayıcı çalıştırır — Puppeteer, Playwright, wkhtmltopdf. Tam bir Chromium örneği başlatır, HTML'nizi yükler ve page.pdf() çağrısı yapar.

Bizim aracımız sunucuyu tamamen atlar. HTML'nizi tarayıcı sekmenizdeki korumalı bir <iframe> içinde işler, ardından window.print() çağrısı yapar. Tarayıcınızın yerleşik PDF dışa aktarma özelliği gerisini halleder.

Bu Neden Beklediğinizden Daha İyi Çalışır?

Modern tarayıcıların mükemmel yazdırma motorları vardır. Chrome'un PDF'ye yazdırma çıktısı Puppeteer'ın ürettiğiyle aynıdır — çünkü Puppeteer aslında Chrome'dur. Şunları elde edersiniz:

  • Doğru CSS işleme — flexbox, grid, özel özellikler, hepsi desteklenir
  • Sistem yazı tipleri — makinenizde yüklü yazı tipleri doğru işlenir
  • @media print kuralları — mevcut yazdırma stil sayfalarınız dikkate alınır

En İyi Çıktı İçin Nasıl Yapılandırılır?

Yazdırmaya özgü kurallarla bir <style> bloğu ekleyin:

<style>
  @media print {
    body { margin: 1cm; font-family: Georgia, serif; font-size: 11pt; }
    h1 { font-size: 18pt; page-break-after: avoid; }
    table { page-break-inside: avoid; }
    a { color: black; text-decoration: none; }
  }
</style>

Dahil edilmesi gereken temel kurallar:

  • Sayfa kenar boşluklarını kontrol etmek için body üzerinde açık margin ayarlayın
  • Tablolar ve kod blokları için page-break-inside: avoid kullanın
  • Çıktı fiziksel olarak yazdırılacaksa renkleri siyaha dönüştürün

Sınırlılıklar

  • Harici kaynaklar — dış URL'lerden gelen resimler yalnızca o sunucular çapraz kaynak isteklerine izin veriyorsa yüklenir. Garantili işleme için resimleri base64 olarak gömün.
  • JavaScript — iframe korumalı olduğu için JS ile işlenen içerik görünmez. Yapıştırmadan önce dinamik içeriği önceden işleyin.
  • Sayfa boyutu — tarayıcınızın yazdırma ayarları tarafından belirlenir. Kaydetmeden önce yazdırma iletişim kutusunda A4 veya Letter olarak ayarlayın.

Gizlilik

HTML'niz tarayıcınızdan hiçbir zaman ayrılmaz. iframe yerel olarak işlenir ve window.print() işletim sistemi yazdırma sistemini doğrudan tetikler. Hiçbir şey yüklenmez.