Yapısal optimizasyon mu, yeniden oluşturma mı: Hangi araç uygun?
Bu iki program temelde farklı çalışır. Bu sayfadaki QPDF komutu sayfalarının içeriğini olduğu gibi bırakır; yalnızca dosyanın nesnelerini mümkün olduğunca kompakt biçimde yeniden kaydeder. Örneğin nesneleri nesne akışlarında birleştirir ve Flate verilerini yeniden sıkıştırır. Bu sırada görüntülerin çözünürlüğünü düşürmez veya onları JPEG olarak yeniden kodlamaz. QPDF'nin isteğe bağlı görüntü optimizasyonu, bir sonraki bölümde kısaca açıklanan ayrı ve kayıplı bir adımdır. Her bir seçenek QPDF belgelerinde açıklanır.
Ghostscript farklı çalışır. pdfwrite çıktı aygıtıyla PDF'yi okur ve her sayfanın çizim komutlarından yeni bir dosya oluşturur. Metin ve vektör grafikler genellikle bu özelliklerini korur; yani sayfalar yalnızca görüntülere dönüştürülmez. Ancak Ghostscript, ayara bağlı olarak görüntüleri yeniden örnekleyebilir. Ayrıca görünür sayfa görüntüsüne ait olmayan her şey değişebilir. Ghostscript'in pdfwrite kılavuzu bunu açıklar.
Bazı programlar üçüncü bir yol daha sunar: Her sayfayı yeniden bir görüntü olarak üretirler. Bu sırada gerçek metin, arama ve etkileşimli öğeler genellikle kaybolur. Bu sayfadaki iki komuttan hiçbiri böyle çalışmaz.
Bu yöntemlerin hiçbiri daha küçük bir dosyayı garanti etmez. Genel bir kural olarak PDF'n ağırlıklı olarak metin ve vektör grafiklerden oluşuyorsa QPDF ile başla. Görüntülerin, bağlantıların veya formların mümkün olduğunca az değişmesini istiyorsan da bu geçerlidir. Dosya boyutunun büyük bölümünü büyük fotoğraflar veya taramalar oluşturuyorsa ve bunun karşılığında bir miktar görüntü kalitesinden vazgeçebiliyorsan Ghostscript uygun olabilir. Kayıpsız ve kayıplı işlemenin tam olarak ne anlama geldiğini Kalite kaybı olmadan PDF sıkıştırma rehberi açıklar.
Grafik arayüzlü programlar da aynı yolları izler. PDFsam, kendi açıklamasına göre Basic sürümündeki yalnızca yapısal optimizasyon ile Visual ve Enhanced sürümlerindeki ayrı görüntü sıkıştırmasını birbirinden ayırır. Dosya yöneticisi betikleri veya arka planda Ghostscript çağıran arayüzlerle ilgili eski kılavuzlar bazen önceki Ubuntu sürümlerine dayanır. Bu nedenle kurulum adımlarını kontrol etmeden uygulama. Üreticisine göre PDF24 Creator yalnızca Windows için sunuluyor; Linux sürümü yok.
Hiçbir şey kurmak istemiyorsan tarayıcıdaki PDF sıkıştırıcıyı kullanabilirsin. Dosyayı yüklemeden cihazında işler. Ancak onu Linux tarayıcılarında ayrıca test etmedik. Tarayıcıda yerel işlemenin gerçekten çevrimdışı çalışmadan farkı, Dosya yüklemeden PDF sıkıştırma rehberinde açıklanır.
Sürümü kontrol et ve ayrı bir çıktı dosyasına yaz
Komutlara genel bakış
Bu rehberdeki altı komuttan birini seç. Komutu değiştirilmemiş hâliyle görür ve her bölümünün ne anlama geldiğini öğrenirsin.
Komutlar QPDF ve Ghostscript'in resmî kılavuzlarından alınmıştır. Bunları Ubuntu veya başka bir dağıtımda kendimiz çalıştırmadık. Sisteminde yüklü sürümler, çevrimiçi belgelerin güncel sürümünden farklı olabilir.
Bu sayfa komut çalıştırmaz ve terminal çıktısı göstermez. Sisteminin bildirdiği sonucu ancak bir komutu kendin çalıştırdığında görürsün.
QPDF sürümünü göster
Yüklü QPDF sürümünü gösterir. Diğer komutları kullanmadan önce sürümü kontrol et.
qpdf --versionKomutu doğrudan kod alanında seçip kopyalayabilirsin.
Komutun bölümleri
qpdfProgram- QPDF komut satırı programını çağırır.
--versionSürümü göster- QPDF'nin sisteminde çalışan sürümünü gösterir.
Kabuk komutun bulunamadığını bildirirse QPDF muhtemelen yüklü değildir. Paket adı ve kurulum, kullandığın dağıtıma bağlıdır.
Rehberdeki yeriGhostscript sürümünü ve çıktı aygıtlarını göster
Ghostscript sürümünü ve kullanılabilir çıktı aygıtlarını gösterir.
gs -hKomutu doğrudan kod alanında seçip kopyalayabilirsin.
Komutun bölümleri
gsProgram- Ghostscript'i çağırır. Unix'te programın adı gs'dir.
-hYardım- Sürümü, seçenekleri, biçimleri, kullanılabilir çıktı aygıtlarını ve arama yolunu gösterir.
Kabuk komutun bulunamadığını bildirirse Ghostscript muhtemelen yüklü değildir. Sonuçları daha sonra takip edebilmek için dağıtımı ve sürümü not et.
Rehberdeki yeriYapıyı daha az yer kaplayacak şekilde kaydet
Dosyanın nesnelerini yeniden ve mümkün olduğunca az yer kaplayacak şekilde kaydeder. Bu sırada görüntülerin çözünürlüğü düşürülmez ve görüntüler JPEG olarak yeniden kodlanmaz.
qpdf "original.pdf" --object-streams=generate --compress-streams=y --decode-level=generalized --recompress-flate --compression-level=9 "optimiert-qpdf.pdf"Komutu doğrudan kod alanında seçip kopyalayabilirsin.
Komutun bölümleri
qpdfProgram- QPDF komut satırı programını çağırır.
"original.pdf"Girdi dosyası- Okunan PDF. Sonuç ayrı bir dosyaya kaydedilir.
--object-streams=generateNesne akışları oluştur- Uygun nesneleri nesne akışlarında bir araya getirir ve sıkıştırır. Bu durumda çıktının PDF sürümü en az 1.5 olur.
--compress-streams=yAkışları sıkıştır- Başka bir yöntemle zaten sıkıştırılmamış olan akışları Flate ile sıkıştırır.
--decode-level=generalizedGenel filtrelerle kodlanmış verileri aç- LZW, Flate, ASCII85 ve ASCIIHex gibi desteklenen genel filtrelerle kodlanmış verileri açar. JPEG verileri (DCT) bu sırada açılmaz.
--recompress-flateFlate ile yeniden sıkıştır- Mevcut Flate akışlarını açar ve yeniden sıkıştırır. Bu nedenle yazma işlemi daha uzun sürebilir.
--compression-level=9Sıkıştırma düzeyi- Flate için belgelerde belirtilen 1 ile 9 aralığındaki en yüksek zlib düzeyini seçer. Daha yüksek düzeyler daha fazla zaman gerektirir. Bu değerin JPEG kalitesiyle ilgisi yoktur.
"optimiert-qpdf.pdf"Çıktı dosyası- Yeni dosyanın adı. İki kontrol komutunda bu dosya girdi olarak kullanılır.
Yeni dosyanın daha küçük olup olmadığı ancak bayt sayıları karşılaştırıldığında anlaşılır. Ayrı bir çıktı adı kullanmak, aynı adlı mevcut bir dosyanın üzerine yazılmasını önlemez. Bu nedenle henüz kullanılmamış bir ad seç. Komut, dijital imzanın geçerli kalacağını garanti etmez.
Rehberdeki yeriPDF'yi pdfwrite ile yeniden oluştur
Ghostscript PDF'yi okur ve her sayfanın çizim talimatlarından yeni bir dosya oluşturur; burada /ebook ön ayarı kullanılır.
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile="optimiert-gs.pdf" "original.pdf"Komutu doğrudan kod alanında seçip kopyalayabilirsin.
Komutun bölümleri
gsProgram- Ghostscript'i çağırır.
-dSAFERErişim denetimi- Dosyalara ve aygıtlara erişimi kısıtlar. Bu, 9.50 sürümünden beri varsayılan davranıştır. Genel bir güvenlik garantisi değildir.
-dBATCHİşlemden sonra çık- Belirtilen dosyalar işlendiğinde etkileşimli moda geçmek yerine Ghostscript'i kapatır.
-dNOPAUSEDuraklama olmadan- Her sayfanın sonundaki onay istemini ve duraklamayı kaldırır.
-sDEVICE=pdfwriteÇıktı aygıtı- Yeni bir PDF oluşturan pdfwrite'ı seçer. Metin ve vektör grafikler genellikle korunur. Görünür sayfa görüntüsünün parçası olmayan her şey değişebilir.
-dPDFSETTINGS=/ebookÖn ayar- Orta görüntü çözünürlüğü içeren bir parametre grubunu ayarlar. Adı bir kullanım amacını belirtir; bir kalite düzeyini veya kesin boyut tasarrufunu belirtmez.
-sOutputFile="optimiert-gs.pdf"Çıktı dosyası- Yeni dosyanın adını belirler.
"original.pdf"Girdi dosyası- Ghostscript'in okuduğu PDF.
Sayfalar aynı görünse bile görüntü ayrıntıları ve belge işlevleri değişebilir. Belirli bir boyut veya kalite taahhüt edilmez. Kaydedilen çıktıyı kontrol et ve henüz kullanılmamış bir çıktı adı seç.
Rehberdeki yeriÇıktının yapısını kontrol et
Kaydedilen çıktının sözdizimini kontrol eder. Ghostscript sonucu için dosya adını değiştir.
qpdf "optimiert-qpdf.pdf" --checkKomutu doğrudan kod alanında seçip kopyalayabilirsin.
Komutun bölümleri
qpdfProgram- QPDF komut satırı programını çağırır.
"optimiert-qpdf.pdf"Kontrol edilecek dosya- QPDF komutunun daha önce kaydedilen çıktısı.
--checkYapıyı kontrol et- Yapıyı, şifrelemeyi, doğrusallaştırmayı ve akışların kodlamasını kontrol eder.
Dönüş değeri 0, kontrolün hatasız tamamlandığını; 2, hataları; 3 ise uyarıları belirtir. Kontrol yalnızca dosyanın yapısıyla ilgilidir. Dosyanın doğru görünüp görünmediğini, formların ve bağlantıların çalışıp çalışmadığını veya güvenli olup olmadığını göstermez.
Rehberdeki yeriSayfa sayısını göster
Kaydedilen çıktının sayfa sayısını gösterir. Komutu orijinal dosyanın adıyla yeniden çalıştır ve iki sayıyı karşılaştır.
qpdf "optimiert-qpdf.pdf" --show-npagesKomutu doğrudan kod alanında seçip kopyalayabilirsin.
Komutun bölümleri
qpdfProgram- QPDF komut satırı programını çağırır.
"optimiert-qpdf.pdf"Sayfaları sayılacak dosya- QPDF komutunun daha önce kaydedilen çıktısı.
--show-npagesSayfaları say- Belirtilen dosyanın sayfa sayısını gösterir.
Sayfa sayısının aynı olması, içeriğin, görüntülerin ve işlevlerin değişmediği anlamına gelmez. Sayfaları kendin incele.
Rehberdeki yeriDüğme, gösterilen komutu yalnızca tıkladığında panoya yazar. Panoyu okumaz, hiçbir şey kaydetmez ve göndermez.
Bu sayfadaki komutlar QPDF ve Ghostscript'in resmî kılavuzlarından alınmıştır. Bunları Ubuntu'da veya başka bir dağıtımda kendimiz çalıştırmadık; dolayısıyla bu, test edilmiş bir Ubuntu kılavuzu değildir. Önce sisteminde hangi sürümlerin kurulu olduğunu kontrol et. Dağıtımının paketleri, güncel çevrimiçi belgelerdeki sürümlerden farklı olabilir.
Kurulu sürümleri göster
qpdf --versiongs -hKabuk bir komutun bulunamadığını bildiriyorsa program muhtemelen kurulu değildir. Paketin adı ve nasıl kurulacağı dağıtımına bağlıdır. Bir sonucu daha sonra takip edebilmek için dağıtımı ve sürümleri not et.
Her deneme için temel kurallar
- Orijinali değiştirme. Girdi ve çıktıya her zaman farklı dosya adları ver.
- Önceki bir dosyanın üzerine yazmamak için her çıktıya daha önce kullanılmamış yeni bir ad ver.
- Sonraki her denemeye önceki işlemin sonucuyla değil, yeniden orijinalle başla.
- Girdi dosyasını doğrudan değiştiren seçenekler veya betikler kullanma.
QPDF: Depolama yapısını optimize et
qpdf "original.pdf" --object-streams=generate --compress-streams=y --decode-level=generalized --recompress-flate --compression-level=9 "optimiert-qpdf.pdf"Komut original.pdf dosyasını okur ve optimiert-qpdf.pdf adlı yeni bir dosya yazar. Seçenekler, nesnelerin nesne akışlarında birleştirilmesini, veri akışlarının sıkıştırılmasını ve Flate verilerinin en yüksek düzeyde yeniden sıkıştırılmasını sağlar. Görüntülerin yeniden örneklenmesi buna dâhil değildir. Nesne akışları PDF 1.5 gerektirir. Alıcı açıkça daha eski bir PDF sürümü istiyorsa bu komut doğrudan uygun değildir.
QPDF ayrıca görüntüleri optimize edebilir ve JPEG verilerini seçilebilir bir kaliteyle yeniden kodlayabilir. JPEG kalitesi seçeneği 12.1 sürümünden itibaren vardır. Her iki işlem de kayıplıdır ve zaten sıkıştırılmış JPEG görüntülerini daha da bozabilir. Bunları yalnızca sonrasında görüntüleri özellikle kontrol edeceksen kullan.
Ghostscript: PDF'yi bir ön ayarla yeniden yaz
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile="optimiert-gs.pdf" "original.pdf"-sDEVICE=pdfwrite PDF çıktısını seçer, -sOutputFile yeni dosyanın adını belirler; girdi dosyası sonda yer alır. -dBATCH ve -dNOPAUSE, Ghostscript'in kullanıcı girdisi beklemesini önler. -dSAFER, Ghostscript komut satırı kılavuzundaki örneklerde de bu şekilde yer alır. /ebook ön ayarı yalnızca bir başlangıç noktasıdır; her dosya için öneri değildir.
Ghostscript ön ayarlarını doğru anla
-dPDFSETTINGS ile bir dizi parametreyi tek seferde seçersin. Bir ön ayarın adı kullanım amacını belirtir. Ne bir kalite düzeyini ne de belirli bir tasarrufu ifade eder.
Peki /prepress en iyi kalite mi demek? Hayır. Kılavuz, /prepress seçeneğinin orijinale en sadık ayar olmadığını açıkça belirtir. -dPDFSETTINGS olmadan sonuç orijinale daha yakın kalabilir. /prepress en küçük dosyayı da garanti etmez.
/screen ve /ebook için hedef değerler, işlemden sonra her görüntünün tam olarak 72 veya 150 dpi olacağı anlamına gelmez. Eşiğin altındaki görüntülerin çözünürlüğü düşürülmez ve çözünürlükleri korunur. Ancak bu, tamamen değişmeden kalacakları anlamına gelmez; çünkü ön ayarın görüntü kodlaması veya renklerle ilgili diğer parametreleri onları yine de değiştirebilir. -r seçeneği çözünürlük düşürmenin yerine geçmez. Yalnızca Ghostscript'in bazı bölümleri alternatif olarak render etmesi gerektiğinde çözünürlüğü belirler ve gömülü görüntüleri küçültmez. Kılavuza göre bir ön ayara güvenmek yerine belirli parametreleri tek tek ayarlamak çoğu zaman daha iyidir.
Tüm dosyalar için tek bir ön ayar kullanma. Bir metin belgesi, bir fotoğraf kataloğu ve bir tarama farklı sonuçlar verir. Taramalarda en iyisi, işe tarama aşamasında başlamaktır. Bunun nasıl yapılacağını Taranmış PDF'yi küçült rehberi açıklar.
Metni, bağlantıları, formları ve imzaları kontrol et
Bir PDF'nin sıkıştırmadan sonra aynı görünmesi, kaydedilmiş her şeyin korunduğunu kanıtlamaz. Ghostscript dosyayı yeniden oluşturur. Ghostscript'in PDF optimizasyonu açıklamasına göre aynı görünümün arkasında değişmiş komutlar ve meta veriler bulunabilir. QPDF sonrasında da senin için önemli olan işlevleri kontrol et:
- Metni seçip kopyala ve aramayı dene.
- Bağlantılara ve yer imlerine tıkla.
- Dosya bir formsa form alanlarını doldur ve deneme amacıyla kaydet.
- Alıcı başlık veya yazar gibi bilgileri değerlendiriyorsa bunları kontrol et.
- PDF/A gibi belirli bir standart isteniyorsa bu standardı buna uygun bir araçla kontrol et. Buradaki komutların hiçbiri bu durumu garanti etmez.
Dijital imzalı PDF'ler
Yeniden yazıldıktan sonra dijital imzanın hâlâ geçerli olacağını iki komuttan hiçbiri garanti edemez. Bu nedenle sıkıştırma, imzalı bir PDF'yi küçültmenin yolu değildir. İmzalı orijinali değiştirmeden sakla. Belgeyi başka biri imzaladıysa ve daha küçük bir sürüme ihtiyacın varsa imzasız kaynak dosyayı edin veya imzalayan kişiyle görüş. Yeniden imzalama işlemini belgeyi düzenleyenle veya alıcıyla kararlaştır. Ayrıntılar için Adobe'nin imzalı PDF'lerin sınırlamaları açıklamasına bakabilirsin. Taranmış, görünür bir imza dijital imza değildir.
Parola korumasını veya düzenleme kısıtlamalarını kaldırmak küçültme işleminin bir parçası değildir; burada bunun için komut bulamazsın. Bunun yerine gönderenden uygun bir sürüm iste. Bu tür belgelerle çalışma hakkında daha fazla bilgi İmzaları ve formları anlama rehberinde.
Sonuç boyutunu karşılaştır ve orijinali sakla
Bir komutun hata mesajı vermeden tamamlanması sonuç hakkında henüz bir şey söylemez. Orijinalin ve çıktı dosyasının tam boyutunu bayt cinsinden karşılaştır; yalnızca MB cinsinden yuvarlanmış değerlere bakma. Yüzde olarak ne kadar tasarruf ettiğini sıkıştırma oranı hesaplayıcısıyla hesaplayabilirsin.
Sözdizimini ve sayfa sayısını kontrol et
qpdf "optimiert-qpdf.pdf" --checkQPDF, dönüş değeri 0 ile hatasız kontrolü, 2 ile hataları ve 3 ile uyarıları bildirir. Kontrol yalnızca dosyanın yapısıyla ilgilidir. Formların, bağlantıların ve görüntülerin hâlâ önceki gibi çalışıp görünmediğini söylemez.
qpdf "optimiert-qpdf.pdf" --show-npagesBir PDF görüntüleyicide kontrol et
- Kaydedilmiş çıktı dosyasını klasöründen yeniden aç.
- Tüm sayfaları gözden geçir; sayfa biçimini ve yönlendirmeyi orijinalle karşılaştır.
- Görüntülere, küçük yazılara ve ince çizgilere yüksek yakınlaştırmada bak.
- Aramayı, bağlantıları ve formları önceki bölümde anlatıldığı gibi test et.
- Mümkünse dosyayı ikinci bir görüntüleyicide de aç.
Daha büyük, aynı boyutta veya boş mu?
Ghostscript bir PDF'yi büyütebilir de. Dosya yeniden oluşturulup farklı biçimde kodlanır; yeni komutlar bazen eskilerden daha fazla yer kaplar. Dosya zaten kompakt kaydedilmişse QPDF ile de fazla tasarruf sağlanamaz.
Daha büyük veya ancak biraz daha küçük bir sonuç yine de geçerli olabilir. Geçerli olup olmadığını, diğer çıktılarda olduğu gibi kaydedilmiş dosyaya uygulanan aynı kontroller gösterir; çünkü tek başına boyut, hatalar veya kaybolan işlevler hakkında bir şey söylemez. Sonunda daha uygun dosyayı tut; bu çoğu zaman orijinal dosyanın kendisidir. Boş, okunamayan veya bozuk bir çıktıda ise durum farklıdır. Bu, özellikle güçlü bir sıkıştırma değil, başarısız bir denemedir. Bu dosyayı gönderme; terminaldeki mesajları oku ve orijinalle, yeni bir çıktı adı kullanarak yeniden başla.
PDF alıcının sınırı için hâlâ fazla büyükse sonraki adımları PDF küçülmüyor rehberinde bulabilirsin. Her durumda yeni sürüm ulaşana ve kabul edilene kadar orijinali sakla.