500 KB'nin altına küçültmem gereken 72,9MB PDF dosyam var.
Dosya, tarandığım bir JPEG resmiydi ve daha sonra pdf'ye dönüştürülüyordu.
500 KB'nin altına küçültmem gereken 72,9MB PDF dosyam var.
Dosya, tarandığım bir JPEG resmiydi ve daha sonra pdf'ye dönüştürülüyordu.
aking1012 haklı. Olası gömülü görüntüler, köprüler vb. Hakkında daha fazla bilgi ile bu soruyu cevaplamak çok daha kolay olacaktır!
İşte birkaç komut ve komut satırı çözümleri. Uygun gördüğünüz gibi kullanın.
Aşağıdaki ghostscriptin komutunu kullanın:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
-dPDFSETTINGS=/screen
daha düşük kalite, daha küçük boyut. ( 72 dpi ) -dPDFSETTINGS=/ebook
, biraz daha büyük pdfs. ( 150 dpi ) -dPDFSETTINGS=/prepress
çıkışı ( 300 dpi ) Bunu yapmanın en sevdiğim yolu pdf'yi ps'ye ve geri dönüşüme dönüştürmektir. Yine de her zaman işe yaramıyor, ama işe yaradığında sonuçlar güzel:
ps2pdf input.pdf output.pdf
Bu, doğrudan yorumlarda önerildiği gibi pdf'lerde de çalışır.
taranmış görüntülere sahip bir pdf'niz varsa, jpeg sıkıştırması içeren bir pdf oluşturmak için convert
kullanabilirsiniz (Bu yöntemi herhangi bir pdf'de kullanabilirsiniz, ancak tüm metin bilgilerini kaybedersiniz.)
Örneğin:
convert -density 200x200 -quality 60 -compress jpeg input.pdf output.pdf
İhtiyaçlarınıza göre yoğunluk (ör. 100x100) ve kalite 'yi ayarlayın.
Girişinize bağlı olarak jpeg sıkıştırma sıkıştırma yapaylıklarından dolayı en iyi seçim olmayabilir. BZip, Faks, Grup4, JPEG, JPEG2000, Kayıpsız, LZW, RLE veya Zip arasında alternatif sıkıştırma yöntemleri arasında seçim yapabilirsiniz (bazıları sadece b / w görüntülerine izin verir). Ayrıntılar için bkz. buradaki .
Taranan / fotoğraflanan dokümanlar için büyük sıkıştırma oranlarına ulaşabildim (ayarlara bağlı olarak). Belge kaynağına bağlı olarak, renk derinliğini ( -depth
argümanı) azaltmak isteyebilirsiniz.
Bir belgenin tam renkli taramalarını içeren bir PDF'yi küçültmem gerekiyordu. Sayfalarımın her biri, dosyayla ilgili olarak tam renkli bir görüntüdü. Metin ve resim içeren sayfaların görüntüleriydi, ancak bir görüntüye taranarak oluşturuldular.
Aşağıdaki ghostscript komutunun bir kombinasyonunu ve başka bir thread'dan birini kullandım.
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dDownsampleColorImages=true \
-dColorImageResolution=150 -dNOPAUSE -dBATCH -sOutputFile=output.pdf input.pdf
Bu, görüntü çözünürlüğümü 150dpi'ye düşürdü, dosya boyutumu ikiye böldü. Belgeye bakıldığında, neredeyse hiç görüntü kalitesinde kayıp olmadı. Metin, 2012 Nexus7'de hala mükemmel bir şekilde okunabilir.
Taranan pdf'leri yeniden yazmak için bir komut dosyası :
#!/bin/sh
gs -q -dNOPAUSE -dBATCH -dSAFER \
-sDEVICE=pdfwrite \
-dCompatibilityLevel=1.3 \
-dPDFSETTINGS=/screen \
-dEmbedAllFonts=true \
-dSubsetFonts=true \
-dColorImageDownsampleType=/Bicubic \
-dColorImageResolution=72 \
-dGrayImageDownsampleType=/Bicubic \
-dGrayImageResolution=72 \
-dMonoImageDownsampleType=/Bicubic \
-dMonoImageResolution=72 \
-sOutputFile=out.pdf \
Bunu daha yeniden kullanılabilir hale getirmek için biraz özelleştirebilirsiniz, ancak yalnızca bir pdf'niz varsa, 'yi pdf dosya adınızla değiştirebilir ve bir terminale aktarabilirsiniz.
Genellikle bunu yapmak için ps2pdf kullanırım (daha kolay sözdizimi), bunun gibi bir şey:
ps2pdf -dPDFSETTINGS=/ebook BiggerPdf SmallerPDF
Tüm pdf dosyalarının boyutunu bir üretim sunucusundaki (8.04) bir dir olarak azaltmak için aşağıdaki python komut dosyasını kullanıyorum. Yani işe yaramalı.
#!/usr/bin/python
import os
for fich in os.listdir('.'):
if fich[-3:]=="pdf":
os.system("ps2pdf -dPDFSETTINGS=/ebook %s reduc/%s" % (fich,fich))
Bunun iyi bir sonucu olacak.
Benim için en iyisi
idiconvert -compress Zip -density 150x150 input.pdf output.pdf
Diğer yollar:
#### gs
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf $INPUTFILE
### pdf2ps && ps2pdf
pdf2ps input.pdf output.ps && ps2pdf output.ps output.pdf
### Webservice
http://compress.smallpdf.com/de
Saygılarımızla
Bu problemle kendim karşılaştım. Basit tarama kullanıyorsanız, düşük çözünürlüklü taramalar için metin modunu seçin ve komut satırı ile ilgili endişelenmenize gerek kalmayacaktır. Sadece söylüyorum.
Google’da arama yaptığımda bu bağlantı benim için ilk olduğundan, bir olasılık daha ekleyeceğimi düşündüm. Yukarıdaki çözümlerin hiçbiri Inkscape'ten (15 mb) ihraç edilen bir pdf üzerinde çalışmıyordu, ancak en sonunda GIMP'de açarak 1 mb'ye küçültüp tekrar pdf olarak verdim.
Yakınlaştırılan başka bir seçenek (ancak metin biraz bulanıktı) ImageMagick'in dönüştürme yardımcı programıydı:
convert -compress Zip input.pdf output.pdf
Sonunda, bunu çözmek için kendi bash senaryosunu yazdım, pdf sayfalarını png olarak çıkarmak, yeniden boyutlandırmak, 1-bit bmp'ye dönüştürmek ve sonra yeniden oluşturmak için mogrify
, convert
ve gs
kullanır. pdf olarak. Dosya boyutu küçültme% 90'ın üzerinde olabilir. İşte adresinden edinilebilir.
Sıkıştırma kalitesini kontrol edin:
#!/bin/sh
INPUT=; shift
OUTPUT=; shift
GS_BIN=/usr/bin/gs
QFACTOR="0.40"
# Image Compression Quality
#
# Quality HSamples VSamples QFactor
# Minimum [2 1 1 2] [2 1 1 2] 2.40
# Low [2 1 1 2] [2 1 1 2] 1.30
# Medium [2 1 1 2] [2 1 1 2] 0.76
# High [1 1 1 1] [1 1 1 1] 0.40
# Maximum [1 1 1 1] [1 1 1 1] 0.15
${GS_BIN} -dBATCH -dSAFER -DNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=${OUTPUT} -c "<< /ColorImageDict << /QFactor ${QFACTOR} /Blend 1 /HSample [1 1 1 1] /VSample [1 1 1 1] >> >> setdistillerparams" -f ${INPUT}
Eğer djvu'ya dönüştürmek de iyi olur ve hiçbir renk karışmazsa, aşağıdakileri deneyebilirsiniz:
Pdf dosyasını pdfimages -j
Bunun yerine pbm dosyalarını alırsanız, ara adımı yapmanız gerekir:
for FILENAME in $(ls *.pbm); do convert $FILENAME ${FILENAME%.*}.jpg ;done
Dönüştürme komutu, imagemagick paketinden.
Ardından tif 'i çıkartmak için scantailor kullanın.
Son adımda, scantailor'ları direcory (tiflerin bulunduğu yer) konumuna getirin ve bu dizine djvubind uygulayın.
Bu, metnin büyük kalite kaybı olmadan dosyaları büyük ölçüde azaltmalıdır. Ocr-backend üzerinde daha iyi kontrol istiyorsanız, djvubind --no-ocr
'yi deneyebilir ve ocr katmanını daha sonra eklemek için ocrodjvu kullanabilirsiniz.
Belgenizde rengin varsa, işler biraz daha karmaşıklaşır. djvubind yerine didjvu ve scantailor'da karışık moda geçmeli ve bazen renkli görüntüleri manuel olarak seçmelisiniz.
görüntü veya hatta pdf dosyasını inkscape içine yükleyin.
Inkscape'ten: Vektör formatında kaydedin (native .svg olarak).
Vektör dosyalarını scribus’a aktarın, düzeni düzenleyin ve buradan .pdf olarak dışa aktarın / kaydedin
Aynı sorunla karşı karşıyaydım ve bu konuya ulaştığı için memnun oldum. Özellikle taranmış görüntülerden oluşturulmuş bir pdf'im vardı ve bayt boyutunu 6 kat azaltması gerekiyordu.
Ne yazık ki, yukarıdaki çözümlerden hiçbiri işe yaramadı :( Daha sonra tarayıcıda bir yerlerin ppr-pdf işleminin bir kısmının sayfa 4'teki bir faktör tarafından şişirilmiş olduğunu fark ettim. Tarandığım belgeler Tüm harf büyüklüğündeydi, ancak pdf'nin boyutu
idiidentify -verbose doc_orig.pdf | grep "Print size"
Print size: 35.4167x48.7222
İstenen sonuçları nihayetinde hem bir "sıkıştırma" hem de sıkıştırma adımlarını bir arada yapan "convert" komutu ile aldım:
convert -density 135x135 -quality 70 -compress jpeg -resize 22.588% doc_orig.pdf doc_lowres.pdf
doc_orig’in 72x72 dpi yoğunluğuna sahip olduğunu unutmayın.
Süper basit bir PDF sıkıştırma aracı: GitHub sayfası
Ubuntu’ya Kurulum:
sudo add-apt-repository ppa:jfswitz/released
sudo apt-get update
sudo apt-get install pdf-compressor
ghostscript kullanır.
Kısa bir süre önce pdfsizeopt 'ı keşfettim ve şiddetle öneriyorum .
Çalıştığım önceki CLI ve GUI yazılımlarından ( convert
, gs
, pdftk
, vb. dahil) daha etkili olsa da - muhtemelen pngout
aktifken daha yavaş - ve bazı sorunları yok (yoğun pikselli / bozulmuş görüntüler, yer imi kaybı yok vb.).
genel Unix yüklemesini öneririm:
Gerekli tüm bağımlılıkları yükleyin:
Yürütülebilir dosyayı indirin ve yükleyin:
curl -L -o https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
cp pdfsizeopt.single /usr/local/bin/pdfsizeopt
Kullanım:
pdfsizeopt original.pdf [compressed.pdf]
Bunu deneyebilirsiniz:
$ time pdftk myFile.pdf output myFile__SMALLER.pdf compress
GC Warning: Repeated allocation of very large block (appr. size 16764928):
May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 8384512):
May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 11837440):
May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 8384512):
May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 33525760):
May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 7254016):
May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 34041856):
May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 33525760):
May lead to memory leak and poor performance.
real 0m23.677s
user 0m23.142s
sys 0m0.540s
$ du myFile*.pdf
108M myFile.pdf
74M myFile__SMALLER.pdf
gs
'den daha hızlıdır, ancak bu durumda 107.5MiB giriş dosyası için% 30'a kadar sıkıştırır.
Aşağıdaki komutları kullandım ama pdf dosyasını büyük ölçüde sıkıştırmadı. Bazı zamanlar bölümün bir kısmı sıkıştırmadan sonra karardı.
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf $INPUTFILE
"ps2pdf -dPDFSETTINGS=/ebook %s %s" % (input_file_path, out_file_path)
Web üzerinde dolaştıktan sonra doğru sıkıştırma kütüphanesini bulamadım. % Co_de% ile karşılaştım. Bu sadece harika bir web sitesi. Pdf'yi% 95 oranında sıkıştırır (15Mb dosya). Bu yüzden sıkıştırmayı otomatikleştirmek için selenyum ve Tor kullandım. Ödeme benim Github Deposu. [GITHUB] ( İşte )
Etiketlerdeki diğer soruları oku pdf compression