PDF'i Web İçin Optimize Etme (Linearize) Nasıl Yapılır?
5 dk okuma
Web sitenize koyduğunuz 200 sayfalık kataloğa tıklayan kullanıcı, ilk sayfayı görmek için tüm dosyanın inmesini bekliyor. Yavaş bağlantıda bu yarım dakika olabilir ve çoğu kullanıcı o kadar beklemez. Linearizasyon — Türkçe kaynaklarda "web için optimize etme" veya "hızlı web görüntüleme" olarak geçer — tam olarak bu sorunu çözer.
Linearizasyon ne yapar
Normal bir PDF'te nesneler dosya içine mantıksal bir sıra gözetmeden dağılmıştır. Görüntüleyicinin ilk sayfayı çizebilmesi için önce dosyanın sonuna gidip çapraz referans tablosunu (xref) okuması, oradan katalog nesnesini bulması, sonra sayfa ağacını gezmesi ve ilk sayfanın kaynaklarını dosyanın farklı yerlerinden toplaması gerekir.
Yerel bir dosyada bu sıçramalar milisaniyeler sürer. Ama dosya ağdan geliyorsa, o sıçramaları yapabilmek için dosyanın tamamının inmiş olması gerekir.
Linearize edilmiş bir PDF'te düzen tamamen değişir:
- Dosyanın başında özel bir sözlük bulunur; burada "ben linearize bir dosyayım, ilk sayfam şurada, ipucu tablom burada" bilgisi vardır.
- Hemen ardından ilk sayfanın tüm nesneleri gelir — içerik akışı, kullandığı yazı tipleri, görselleri.
- Sonra ipucu tabloları (hint tables) gelir: her sayfanın dosyanın hangi bayt aralığında olduğunu söyleyen bir harita.
- Ardından kalan sayfaların nesneleri sırayla dizilir.
Sonuç: tarayıcı dosyanın ilk birkaç yüz kilobaytını indirir indirmez ilk sayfayı çizebilir. Kullanıcı 47. sayfaya atlarsa, ipucu tablosuna bakıp sadece o sayfanın bayt aralığını ister — arada kalan 45 sayfayı indirmeden.
Adım 1: Linearizasyonun size gerçekten fayda sağlayıp sağlamayacağını belirleyin
Bu adımı atlayıp doğrudan işleme geçmeyin, çünkü linearizasyon çoğu senaryoda hiçbir şey değiştirmez.
Fayda sağlaması için üç koşulun aynı anda sağlanması gerekir:
1. Dosya tarayıcıda açılacak. Kullanıcı dosyayı indirip yerel olarak açıyorsa (indirme bağlantısı, e-posta eki) fayda sıfırdır — dosya zaten tamamen bilgisayardadır.
2. Dosya yeterince büyük. 300 KB'lık bir dosya zaten saniyenin altında iner; linearize etseniz de etmeseniz de kullanıcı fark etmez. Fayda birkaç megabayttan sonra hissedilmeye başlar ve on megabayt üstünde belirginleşir.
3. Sunucu byte-range isteklerini destekliyor. Tarayıcının "dosyanın şu aralığını ver" diyebilmesi gerekir. Modern web sunucularının neredeyse hepsi bunu varsayılan olarak destekler, ama bazı CDN yapılandırmaları, dinamik olarak üretilen dosyalar ve bazı uygulama sunucuları desteklemez.
Üç koşul da sağlanıyorsa devam edin. Sağlanmıyorsa linearizasyon gereksiz bir adımdır.
Adım 2: Önce sıkıştırmayı düşünün
Sıralama önemli. Linearizasyon dosyayı yeniden düzenler; sıkıştırma ise içeriği yeniden kodlar. Sıkıştırmayı sonra yaparsanız, sıkıştırma aracı dosyayı yeniden yazacağı için linearize yapısını büyük olasılıkla bozar.
Doğru sıra: önce sıkıştır, sonra linearize et.
Ayrıca şunu göz önünde bulundurun: web performansı açısından dosya boyutunu yarıya indirmek, linearizasyondan çoğu zaman daha büyük bir kazançtır. 20 MB'lık bir katalog 6 MB'a inerse, linearize olmasa bile tamamı hızla iner. İkisini birlikte yapmak en iyi sonucu verir ama seçmek zorundaysanız sıkıştırma önce gelir.
Adım 3: Linearize edin
Web için optimize etme aracını açın ve dosyanızı yükleyin. İşlem tarayıcınızda yapılır, dosya sunucuya gönderilmez.
Araç dosyayı okur, nesneleri yeniden sıralar, ipucu tablolarını hesaplar ve yeni bir PDF üretir. İçerik hiç değişmez — metin metin, görsel görsel olarak kalır, kalite kaybı olmaz.
Beklentiniz şu olmalı: dosya boyutu neredeyse aynı kalacak, hatta ipucu tabloları eklendiği için çok az büyüyecek (tipik olarak %1-2). Dosyanız küçüldüyse muhtemelen araç aynı zamanda kullanılmayan nesneleri temizlemiştir; bu bir bonus, linearizasyonun kendi etkisi değil.
Adım 4: Sonucu doğrulayın
Linearizasyonun çalıştığını kontrol etmenin birkaç yolu var:
Dosyanın başına bakın. Metin editörüyle (dikkatli, kaydetmeden) PDF'i açarsanız ilk satırlarda /Linearized anahtar kelimesini görmelisiniz. Bu, dosyanın linearize edildiğinin doğrudan kanıtıdır.
Gerçek koşullarda test edin. Dosyayı sunucunuza yükleyin ve tarayıcıda açın. Tarayıcının geliştirici araçlarındaki Ağ sekmesini açıp yavaş bağlantı simülasyonu uygulayın. Linearize bir dosyada ilk sayfa, indirme tamamlanmadan görünmelidir.
Sayfa atlama testi. Dosya inerken son sayfaya atlayın. Linearize bir dosyada bu sayfa hızla gelir; değilse tüm dosyanın inmesini beklersiniz.
Kimler için gerçekten fark yaratıyor
Somut senaryolar:
| Durum | Fayda | |---|---| | Sitede yayınlanan 50 MB'lık ürün kataloğu | Yüksek | | Çevrimiçi okunan 300 sayfalık el kitabı | Yüksek | | Belediye/kurum sitesinde büyük rapor arşivi | Yüksek | | Tarayıcı içi PDF görüntüleyicili bir uygulama | Yüksek | | 500 KB'lık broşür | Yok denecek kadar az | | E-postayla gönderilen fatura | Yok | | Arşivlenen sözleşme | Yok | | Yazdırılacak form | Yok |
Genel kural: kullanıcı dosyayı indirmeden okuyacaksa ve dosya büyükse linearize edin. Diğer her durumda gereksizdir.
Linearizasyonun bozulduğu durumlar
Linearize bir dosya, üzerinde herhangi bir düzenleme yapıldığında bu özelliğini kaybedebilir:
- Artımlı güncelleme (incremental update). PDF'e bir açıklama ekleyip kaydettiğinizde birçok program dosyanın sonuna değişiklikleri ekler. Bu, linearize yapıyı bozar çünkü artık dosyanın sonunda okunması gereken veri vardır.
- İmza ekleme. Dijital imza atmak genellikle artımlı güncelleme kullanır.
- Sayfa ekleme/silme. Yapı değişir, ipucu tabloları geçersiz olur.
- Sıkıştırma. Dosya yeniden yazılır.
Bu yüzden linearizasyon, iş akışınızın son adımı olmalıdır. Tüm düzenlemeleri bitirin, sonra linearize edin, sonra yayınlayın.
Sık yapılan hatalar
Sıkıştırma sanmak. Linearizasyon dosyayı küçültmez. Web performansı için dosya boyutu da önemliyse ayrıca sıkıştırma yapmanız gerekir.
Yanlış sırada yapmak. Linearize edip sonra sıkıştırırsanız birinci işlem boşa gider.
Her dosyaya uygulamak. Küçük dosyalarda ve indirilecek dosyalarda fayda yoktur; iş akışına gereksiz adım eklemiş olursunuz.
Sunucu tarafını unutmak. Byte-range desteği yoksa dosya linearize olsa bile tarayıcı tamamını indirir. Ayrıca sunucunun Content-Length başlığını doğru göndermesi ve dosyayı sıkıştırılmış aktarım kodlaması (gzip) ile göndermemesi gerekir — gzip'lenmiş bir yanıtta byte-range işe yaramaz.
Özetle
Linearizasyon, PDF'in içindeki nesneleri "ilk sayfa önce" mantığıyla yeniden dizen ve her sayfanın nerede olduğunu söyleyen bir ipucu tablosu ekleyen bir işlemdir. Böylece tarayıcı dosyanın tamamını beklemeden ilk sayfayı gösterebilir ve istenen sayfaya doğrudan atlayabilir. Dosyayı küçültmez, kaliteyi değiştirmez, sadece yapıyı düzenler. Faydası yalnızca web'de yayınlanan büyük dosyalarda ve byte-range destekleyen sunucularda ortaya çıkar — bu koşullar yoksa atlamak doğru karardır. Uygulayacaksanız iş akışınızın en sonunda, tüm düzenlemeler ve sıkıştırma bittikten sonra yapın.
Sıkça Sorulan Sorular
Linearize etmek dosyayı küçültür mü?
Hayır, küçültmez — hatta genellikle çok az büyütür. Linearizasyon dosyanın içindeki nesneleri yeniden düzenler ve ek bir ipucu tablosu (hint table) ekler; içerik atılmaz veya yeniden kodlanmaz. Dosya boyutunu küçültmek istiyorsanız sıkıştırma aracını kullanmanız gerekir. İkisini birlikte yapmak da mümkündür: önce sıkıştırın, sonra linearize edin.
İndirilen bir PDF için linearizasyonun faydası var mı?
Pratikte yok. Linearizasyonun tüm faydası, dosya tamamen inmeden ilk sayfanın gösterilebilmesidir. Kullanıcı dosyayı indirip yerel olarak açıyorsa dosya zaten baştan sona bilgisayardadır ve sıralamanın bir önemi kalmaz. Fayda, tarayıcıda gömülü görüntüleyiciyle açılan ve sunucusu byte-range isteklerini destekleyen dosyalarda ortaya çıkar.
Sunucumun byte-range desteklemesi ne demek?
Bir HTTP sunucusunun, dosyanın tamamı yerine belirli bir bayt aralığını gönderebilmesi demektir. Tarayıcı 'bu dosyanın 0-50000 arası baytlarını ver' diye sorabilir. Modern web sunucularının neredeyse tamamı bunu destekler ve genellikle varsayılan olarak açıktır. Desteklenmiyorsa linearizasyonun faydası ortadan kalkar, çünkü tarayıcı yine dosyanın tamamını indirmek zorunda kalır.
Her PDF'i linearize etmeli miyim?
Hayır. Web sitenizde yayınladığınız, kullanıcıların tarayıcıda açacağı ve boyutu birkaç megabaytı geçen dosyalarda anlamlıdır. E-postayla gönderdiğiniz küçük bir fatura, arşivlediğiniz bir sözleşme veya sadece yazdırılacak bir belge için hiçbir faydası yoktur ve gereksiz bir işlem adımı ekler.
Bu konuyu Web İçin Optimize Et aracıyla hemen deneyin.
Web İçin Optimize Et aracını dene