PDFMove
SVG Nedir? PDF ile Neden Bu Kadar Benzer, Nerede Ayrışırlar?
Rehber

SVG Nedir? PDF ile Neden Bu Kadar Benzer, Nerede Ayrışırlar?

6 dk okuma

PDF'ten SVG'ye dönüşüm, formatlar arası dönüşümlerin en "doğrudan" olanlarından biridir — çünkü iki format aslında aynı ailenin üyesidir. Bu yazıda ortak köklerini, hangi noktalarda birebir örtüştüklerini ve nerede ayrıştıklarını inceliyoruz.

Ortak ata: PostScript görüntüleme modeli

Her iki format da 1980'lerde Adobe'un geliştirdiği PostScript sayfa tanımlama dilinden türeyen bir görüntüleme modelini kullanır. Bu modelin temel fikirleri şunlardır:

Yol (path) kavramı. Şekiller, düz çizgi parçaları ve Bézier eğrileriyle tanımlanan yollardan oluşur. Bir yol açık veya kapalı olabilir; doldurulabilir, konturlanabilir veya kırpma alanı olarak kullanılabilir.

Boyacı algoritması (painter's model). Çizimler sırayla uygulanır ve sonra çizilen, önce çizilenin üzerine gelir. Bir tuvale boya sürmek gibi.

Grafik durumu (graphics state). Renk, çizgi kalınlığı, dönüşüm matrisi gibi ayarlar bir durum yığınında tutulur; kaydedilip geri yüklenebilir.

Dönüşüm matrisleri. Ölçekleme, kaydırma, döndürme ve eğme, altı elemanlı afin dönüşüm matrisleriyle ifade edilir.

Bu ortaklık sayesinde PDF'in çizim komutlarının çoğu SVG'de doğrudan karşılık bulur:

| PDF komutu | SVG karşılığı | |---|---| | m (moveto) | M (path data) | | l (lineto) | L | | c (curveto) | C (kübik Bézier) | | re (rectangle) | <rect> veya path | | f (fill) | fill özniteliği | | S (stroke) | stroke özniteliği | | W n (clip) | <clipPath> | | cm (dönüşüm) | transform özniteliği | | q/Q (durum kaydet/yükle) | <g> gruplama |

Dönüştürücünün işi, esas olarak bu eşleştirmeyi yapmaktır. Bu yüzden PDF→SVG dönüşümü, örneğin PDF→Word dönüşümünden çok daha güvenilirdir; ikincisinde format tahminleri gerekirken burada çoğunlukla doğrudan çeviri vardır.

İlk ayrışma: koordinat sistemi

PDF, baskı geleneğinden gelir. Orijin sayfanın sol alt köşesindedir ve y ekseni yukarı doğru artar. Bu, matematik derslerindeki kartezyen sistemle aynıdır ve kağıt ölçülerini düşünmek için doğaldır.

SVG, ekran geleneğinden gelir. Orijin sol üst köşededir ve y aşağı doğru artar. Bilgisayar grafiklerinin standart yaklaşımıdır.

Dönüştürücüler bunu bir dönüşüm matrisiyle çözer: tüm içeriği y ekseninde ters çevirip sayfa yüksekliği kadar kaydırırlar. Kullanıcı olarak bunu fark etmezsiniz ama SVG dosyasını metin olarak açtığınızda kök öğede şuna benzer bir dönüşüm görebilirsiniz:

transform="matrix(1,0,0,-1,0,842)"

Bu, "y eksenini ters çevir ve 842 birim aşağı kaydır" demektir — 842, A4 sayfanın punto cinsinden yüksekliğidir.

İkinci ayrışma: birimler

PDF, punto birimini kullanır: 1 punto = 1/72 inç. A4 sayfa 595 × 842 puntodur. Bu birim baskı dünyasında standarttır.

SVG, kullanıcı birimlerini viewBox özniteliğiyle tanımlar ve fiziksel bir ölçüye bağlı değildir. width ve height öznitelikleriyle piksel, milimetre, inç gibi birimler belirtilebilir ama zorunlu değildir.

Dönüşümde genellikle PDF'in punto değerleri doğrudan SVG kullanıcı birimi olarak alınır. Sonuç, sayfanın oranlarının korunmasıdır ama fiziksel boyut bilgisi belirsizleşebilir. Baskıya gidecek bir SVG hazırlıyorsanız width ve height değerlerini milimetre cinsinden açıkça belirtmek gerekir.

Üçüncü ayrışma: yazı tipleri

Bu, iki format arasındaki en önemli pratik farktır.

PDF yazı tiplerini gömer. Bir PDF, kullandığı yazı tiplerinin çizim verilerini kendi içinde taşıyabilir (ve genellikle taşır). Bu, dosyanın her yerde birebir aynı görünmesini garanti eder — formatın varlık sebebi budur.

SVG genellikle gömmez. Standart bir SVG dosyası font-family="Arial" der ve o yazı tipinin okuyucunun sisteminde bulunmasını bekler. Bulunmazsa tarayıcı benzer bir yazı tipine düşer.

Bunun sonucu şudur: PDF'teki metni SVG'ye metin olarak aktardığınızda, orijinal yazı tipinin okuyucuda olmama ihtimali vardır. Harf genişlikleri değişir, satırlar taşar veya kısalır, hizalama bozulur. Özellikle kurumsal veya ticari yazı tipleri kullanılmış belgelerde bu neredeyse kesindir.

Üç çözüm var:

1. Metni eğriye çevirmek. Her harf bir <path> olur. Görünüm garanti altındadır ama metin artık metin değildir — seçilemez, aranamaz, ekran okuyucu okuyamaz ve dosya belirgin biçimde büyür.

2. Yazı tipini gömmek. CSS @font-face ile base64 kodlanmış yazı tipi verisini SVG içine koyabilirsiniz. Hem görünüm hem erişilebilirlik korunur ama dosya büyür ve yazı tipi lisansı buna izin vermeyebilir.

3. Web güvenli yazı tipine düşmek. Yaygın bir yazı tipi kullanılıyorsa (Arial, Times New Roman) risk düşüktür.

Pratikte logo ve grafik işlerinde eğri, metin ağırlıklı içerikte gömme veya metin tercih edilir.

Dördüncü ayrışma: renk uzayı

PDF, CMYK'yı doğal olarak destekler. Baskı için tasarlandığı için, renkler cyan-magenta-sarı-siyah bileşenleriyle tanımlanabilir. Ayrıca spot renkler (Pantone gibi ayrı mürekkepler) ve ICC renk profilleri tanımlanabilir.

SVG, RGB tabanlıdır. CMYK diye bir kavram yoktur. fill="#RRGGBB" veya fill="rgb(r,g,b)" yazarsınız.

Dönüşümde CMYK değerleri RGB'ye çevrilir ve bu kayıplı bir dönüşümdür. İki renk uzayının gamutu (kapsayabildiği renk aralığı) farklıdır; bazı CMYK renklerin tam RGB karşılığı yoktur. En belirgin farklar koyu kırmızı, lacivert, turuncu ve zengin siyah tonlarında görülür.

Kurumsal renklerin tam eşleşmesi gerekiyorsa dönüşüm sonrası SVG'deki renk değerlerini elle, marka kılavuzunuzdaki RGB değerleriyle düzeltmeniz gerekir.

Beşinci ayrışma: saydamlık ve efektler

PDF'in saydamlık modeli oldukça gelişmiştir: alfa saydamlığı, karışım modları (çarp, ekran, üstüne bindirme...), yumuşak maskeler (soft mask), saydamlık grupları.

SVG'nin de saydamlık desteği vardır (opacity, fill-opacity, <mask>, <filter>) ama modeller birebir örtüşmez. Bazı PDF karışım modlarının doğrudan SVG karşılığı yoktur, bazı yumuşak maske yapıları farklı işlenir.

Sonuç: gelişmiş saydamlık efektleri içeren tasarım dosyalarında dönüşüm sonrası görsel farklar olabilir. Basit alfa saydamlığında sorun yaşanmaz.

Altıncı ayrışma: yapı ve amaç

PDF çok sayfalıdır ve bir belge formatıdır. Sayfa ağacı, yer imleri, form alanları, açıklamalar, metadata, dijital imza — bunların hepsi belge kavramına aittir.

SVG tek "sayfalıktır" ve bir grafik formatıdır. Çok sayfa kavramı yoktur. Yer imi, form alanı, açıklama gibi belge özellikleri yoktur.

Dönüşümde bunların hepsi kaybolur:

| PDF özelliği | SVG'de | |---|---| | Sayfa yapısı | Her sayfa ayrı dosya | | Yer imleri | Kaybolur | | Form alanları | Görünümü kalır, işlevi gider | | Açıklamalar | Genellikle kaybolur | | Köprüler | Bazı dönüştürücüler <a> olarak taşır | | Metadata | Kaybolur | | Katmanlar (OCG) | Genellikle düzleşir | | Dijital imza | Kaybolur |

Buna karşılık SVG'nin PDF'te olmayan yetenekleri vardır: CSS ile stillendirme, JavaScript ile etkileşim, SMIL veya CSS animasyonu, DOM üzerinden programatik erişim.

Neden matbaa SVG istemiyor

Üç eksik nedeniyle:

CMYK yok. Baskı makinesi CMYK ile çalışır; RGB dosya renk yönetimi belirsizliği yaratır.

Taşma payı ve kesim işaretleri yok. PDF'te BleedBox ve TrimBox kutuları vardır; SVG'de böyle bir kavram tanımlı değildir.

Renk profili yönetimi yok. ICC profilleri gömülemez.

Bu yüzden matbaalar PDF, özellikle PDF/X alt profillerini ister. SVG web ve ekran için, PDF baskı ve belge paylaşımı için tasarlanmıştır.

Özetle

PDF ve SVG, aynı PostScript görüntüleme modelinden türeyen iki vektör formatıdır ve çizim komutları büyük ölçüde birebir eşleşir — bu, dönüşümün neden bu kadar güvenilir olduğunu açıklar. Ayrıştıkları noktalar ise pratik sonuçlar doğurur: koordinat sistemleri terstir (dönüştürücü telafi eder), PDF yazı tiplerini gömer SVG genellikle gömmez (metin mi eğri mi kararının kaynağı), PDF CMYK destekler SVG RGB tabanlıdır (renk kayması), ve PDF bir belge formatıyken SVG tek sayfalık bir grafik formatıdır (yer imleri, formlar ve çok sayfa yapısı kaybolur). Doğru format seçimi, çıktının nereye gideceğine bağlıdır: web ve tasarım için SVG, baskı ve belge paylaşımı için PDF.

Sıkça Sorulan Sorular

PDF ve SVG aynı çizim modelini mi kullanıyor?

Büyük ölçüde evet. Her ikisi de PostScript'ten türeyen bir görüntüleme modeline dayanır: yollar (path) düz çizgi ve Bézier eğrileriyle tanımlanır, dolgu ve kontur ayrı işlemlerdir, kırpma yolları alanı sınırlar. Bu ortaklık, PDF'ten SVG'ye dönüşümün neden bu kadar doğrudan yapılabildiğini açıklar — çoğu komut bire bir karşılık bulur.

İki formatın koordinat sistemi neden ters?

PDF, baskı geleneğinden geldiği için orijini sayfanın sol alt köşesine koyar ve y ekseni yukarı doğru artar — matematik derslerindeki kartezyen sistem gibi. SVG ise ekran geleneğinden geldiği için orijini sol üst köşeye koyar ve y aşağı doğru artar. Dönüştürücüler bu farkı bir dönüşüm matrisiyle telafi eder, dolayısıyla kullanıcı olarak fark etmezsiniz.

SVG'de gömülü yazı tipi kullanılabilir mi?

Evet, iki yolla: CSS @font-face kuralıyla dış bir yazı tipi dosyasına referans vermek veya yazı tipini base64 olarak SVG içine gömmek. İkincisi dosyayı tamamen bağımsız yapar ama boyutu ciddi biçimde artırır — bir yazı tipi ailesi birkaç yüz kilobayt tutabilir. Ayrıca yazı tipi lisansları gömmeye her zaman izin vermez.

SVG neden matbaa işleri için tercih edilmiyor?

Üç sebeple: SVG doğal olarak RGB renk uzayında çalışır ve CMYK desteği yoktur, taşma payı (bleed) ve kesim işaretleri gibi ön baskı kavramları tanımlı değildir, ve renk profili (ICC) yönetimi yoktur. Matbaalar bu üçünü de gerektirir. PDF, özellikle PDF/X alt profilleri, bu ihtiyaçlar için tasarlanmıştır.

Bu konuyu PDF → SVG aracıyla hemen deneyin.

PDF → SVG aracını dene