İçeriğe geç

Yazılımda PDF Çıktısı Neden Bozulur? Şablon Rehberi

Sunucu ve Performans
Yazılımda PDF Çıktısı Neden Bozulur? Şablon Rehberi

Ekranda düzgün görünen bir belgenin çıktıda bozulmasının nedeni neredeyse her zaman aynıdır: ekran esnek bir alandır, kâğıt ise sabit. Ekran genişliğe göre yeniden dizilir, kaydırma çubuğu taşmayı gizler ve yazı tipi tarayıcıdan gelir. Kâğıtta bunların hiçbiri yok — genişlik sabittir, taşan şey kesilir ve yazı tipi belgenin içinde taşınmıyorsa yerine başkası konur. Yazdırma şablonu, belgeyi bu sabit alana göre yeniden kurmak demektir.

Bu yüzden çıktı sorunu bir biçimlendirme detayı değil, ayrı bir tasarım işidir. Ekran şablonunun üzerine yazdırma kuralları eklenerek çözülmeye çalışıldığında, her yeni belge tipinde aynı sorunlar yeniden çıkar.

Tarayıcıdan yazdırmak ile sunucuda PDF üretmek

İki yol vardır ve ikisi farklı işler için uygundur. Tarayıcıdan yazdırmak kurulumu en kolay olandır: ekrandaki sayfa yazdırmaya özel bir biçimlendirme ile kâğıda gönderilir. Kullanıcının kendi yazıcısını seçmesi, önizleme görmesi doğaldır. Ama çıktının görünümü kullanıcının tarayıcısına, sürümüne, kâğıt ayarına ve ölçekleme tercihine bağlıdır. İki kullanıcı aynı belgeyi yazdırdığında iki farklı sonuç çıkabilir.

Sunucuda PDF üretmek ise belgeyi tek bir yerde, tek bir motorla oluşturur. Çıktı herkeste aynıdır, dosya e-postaya eklenebilir, arşivlenebilir, imzalanabilir. Karşılığında sunucu tarafında bir üretim yükü ve yazı tipi yönetimi gerekir. Toplu iş de bu yolla mümkündür: beş yüz belgenin tek seferde üretilmesi tarayıcı yoluyla yapılamaz.

Seçim şöyle yapılır: belge kurum dışına gidiyorsa, arşivlenecekse veya toplu üretilecekse sunucuda üretilir. Yalnızca kullanıcının elindeki yazıcıya gidecek depo etiketi, toplama listesi gibi iç çıktılar için tarayıcıdan yazdırmak yeterlidir. İkisinin aynı şablondan beslenmesi ise mümkündür ve tercih edilir; o zaman belge düzeni bir kez yazılır.

Sayfa düzeni: kenar boşluğu, tablo başlığı ve sayfa sonu

Kâğıt düzeninin üç ayarı çıktı kalitesini neredeyse tek başına belirler. Birincisi kenar boşluğu: yazıcıların basamadığı bir dış şerit vardır, şablon o şeride içerik koyarsa kenardaki rakamlar kesilir. İkincisi sayfa yönü: çok kolonlu bir belge dikey kâğıtta sığmaz, kolon sayısına göre yatay yön seçilir ya da kolon azaltılır. Üçüncüsü sayfa sonu davranışı: tablo ikinci sayfaya taştığında başlık satırının tekrar etmesi gerekir, yoksa ikinci sayfadaki sayıların hangi kolona ait olduğu anlaşılmaz.

Bunların yanında iki küçük ayrıntı belgeyi profesyonel yapar. Toplam satırının tablodan ayrı bir bloka alınması, sayfa sonunda yarım kalmasını önler. Sayfa numarasının kaçın kaçı biçiminde yazılması, çok sayfalı belgenin eksik çıkıp çıkmadığını anlaşılır kılar. İkisi de şablon düzeyinde bir kez kurulur.

Yazı tipi ve Türkçe karakter sorunu

Çıktıda Türkçe harflerin yerine soru işareti, kutu ya da bambaşka bir harf çıkmasının iki ayrı nedeni olabilir ve ikisi farklı yerde çözülür. İlki karakter kodlamasıdır: metin veritabanından çıktı üreticisine giderken kodlama bir yerde değişmişse harf zaten bozuk gelmiştir. Bu durumda ekranda da bozuk görünür, yalnızca çıktıya özel bir sorun değildir.

İkincisi yazı tipidir ve yalnızca çıktıda görülür: belgede kullanılan yazı tipi Türkçe harfleri içermiyorsa ya da PDF içine gömülmemişse, üretici yerine başka bir yazı tipi koyar. Çözüm, şablonda kullanılacak yazı tipini Türkçe harfleri bulunan bir aile olarak seçmek ve PDF üretiminde gömme ayarını açmaktır. Gömme yapılmadığında dosya belgeyi açan bilgisayardaki yazı tipine bağlı kalır; aynı dosya iki makinede farklı görünür.

Sık görülen altı belirti ve nedeni

BelirtiOlası nedenNereye bakılır
Sağdaki kolonlar kesiliyorTablo kâğıt genişliğinden genişKolon sayısı, sayfa yönü, kenar boşluğu
İkinci sayfada tablo başlığı yokBaşlık satırı tekrar edecek biçimde tanımlanmamışTablo başlık bölümü tanımı
Türkçe harfler bozukYazı tipi gömülmemiş ya da kodlama değişmişŞablondaki yazı tipi, metnin kaynağı
Logo çıkmıyorGörsel adresi sunucudan erişilemiyorGörselin yolu, erişim yetkisi
Her sayfada yarım satırSatır bloku sayfa sonunda bölünüyorSayfa sonu kuralları, satır yüksekliği
Her kullanıcıda farklı görünümTarayıcıdan yazdırma ve ölçekleme ayarıÜretim yolu, sunucuda üretime geçiş

Şablonu veriden ayırmak

Çıktı işini uzun vadede kolaylaştıran tek karar şudur: şablon ile veri ayrı tutulur. Yazılım belge için gereken verileri hazırlar — başlık bilgileri, satırlar, toplamlar, notlar — şablon bu veriyi yerleştirir. Bu ayrım yapıldığında yeni bir belge tipi eklemek yeni bir şablon yazmak demektir, koda dokunmak demek değildir. Logo değişikliği, adres satırının güncellenmesi, kolon sırasının değiştirilmesi de kod sürümü gerektirmez.

Aynı ayrım belge sürümlerini de mümkün kılar. Kesilmiş bir belgenin aylar sonra yeniden üretilmesi gerektiğinde, o günün şablonu ile üretilmelidir. Şablonun sürüm numarası belge kaydında tutulmazsa, eski belge yeni şablonla üretilir ve arşivdeki kopyadan farklı görünür. Üretilen dosyanın kendisinin saklanması da bir seçenektir ve belge dışarıya gittiyse tercih edilen yoldur.

Kontrol listesi

  • Belge kurum dışına mı gidiyor? Öyleyse sunucuda üretilmeli.
  • Kenar boşlukları yazıcının basabildiği alanın içinde mi?
  • Tablo başlığı sonraki sayfalarda tekrar ediyor mu?
  • Yazı tipi Türkçe harfleri içeriyor ve PDF içine gömülüyor mu?
  • Sayfa numarası kaçın kaçı biçiminde yazılı mı?
  • Toplam satırı sayfa sonunda bölünmeyecek biçimde mi?
  • Şablon veriden ayrı mı, yeni belge tipi kod değişikliği gerektiriyor mu?
  • Belge kaydında şablon sürümü ya da üretilmiş dosyanın kendisi tutuluyor mu?

KAV Yazılım, iş yazılımlarının belge ve rapor çıktılarını şablon tarafı veriden ayrılmış biçimde kurar; böylece görünüm değişikliği yeni bir geliştirme işine dönüşmez.

Sık sorulan sorular

Tarayıcıdan yazdırmak ile sunucuda PDF üretmek arasında ne fark var?

Tarayıcıdan yazdırmada çıktının görünümü kullanıcının tarayıcısına ve ölçekleme ayarına bağlıdır, bu yüzden iki kullanıcıda farklı sonuç verebilir. Sunucuda üretilen PDF herkeste aynı görünür, arşivlenebilir ve toplu üretilebilir.

Çıktıda Türkçe harfler neden bozuk geliyor?

İki neden olabilir. Metin ekranda da bozuksa sorun karakter kodlamasındadır; yalnızca çıktıda bozuksa kullanılan yazı tipi Türkçe harfleri içermiyor ya da PDF içine gömülmemiştir.

Tablo ikinci sayfaya taşınca başlık satırı nasıl tekrar eder?

Tablonun başlık bölümü, veri satırlarından ayrı bir başlık bölümü olarak tanımlanmalıdır. Başlık normal bir satır gibi yazıldığında sayfa sonunda tekrar etmez ve ikinci sayfadaki kolonlar adsız kalır.

Aynı belgeyi aylar sonra yeniden üretince neden farklı görünüyor?

Şablon o arada değişmiştir ve belge yeni şablonla üretilmiştir. Bunu önlemek için belge kaydında şablon sürümü tutulur ya da üretilen dosyanın kendisi arşivlenir; dışarıya gönderilen belgelerde dosyayı saklamak tercih edilir.
  • belgeleme
  • dışa aktarma
  • rapor çıktısı
  • teshis
  • yazilim mimarisi