500KB altında küçültmem gereken 72,9 MB'lık bir PDF dosyam var.
Dosya, taradığım ve ardından pdf formatına dönüştürdüğüm bir JPEG fotoğraftı.
pdfopt
basit bir sözdizimine sahip ve iPad çağında yükleme ve sayfa çevirme hızını artırıyor. :-)
500KB altında küçültmem gereken 72,9 MB'lık bir PDF dosyam var.
Dosya, taradığım ve ardından pdf formatına dönüştürdüğüm bir JPEG fotoğraftı.
pdfopt
basit bir sözdizimine sahip ve iPad çağında yükleme ve sayfa çevirme hızını artırıyor. :-)
Yanıtlar:
aking1012 haklıdır. Olası gömülü görüntüler, köprüler vb. Hakkında daha fazla bilgi ile bu soruya cevap vermek çok daha kolay olurdu!
İşte size birkaç komut dosyası ve komut satırı çözümü. Uygun gördüğünüz gibi kullanın.
Aşağıdaki ghostscript komutunu kullanın:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
-dPDFSETTINGS=/screen
düşük kalite, daha küçük boyut. ( 72 dpi )-dPDFSETTINGS=/ebook
Daha kaliteli, ancak biraz daha büyük pdfs için. ( 150 dpi )-dPDFSETTINGS=/prepress
Acrobat Distiller "Prepress Optimized" ayarına benzer ( 300 dpi ) çıktı-dPDFSETTINGS=/printer
Acrobat Distiller "Yazdırma Optimize Edildi" ayarına benzer çıktıyı seçer ( 300 dpi )-dPDFSETTINGS=/default
Muhtemelen daha büyük bir çıktı dosyası pahasına, çok çeşitli kullanımlarda yararlı olması amaçlanan çıktıyı seçerscreen
ayarı benim için çok düşük kaliteli, ama ebook
3.6MB aşağı bir 33MB tarama tabanlı PDF kesme ve çok okunabilir tutarak iyi çalıştı. Bu seçenek için diğer seçenekler -dPDFSETTINGS
burada listelenmiştir: milan.kupcevic.net/ghostscript-ps-pdf ve bunları bu cevaba dahil etmek iyi bir fikir olabilir.
Bunu yapmanın en sevdiğim yolu, pdf'yi ps'ye ve geriye döndürmektir. Her zaman işe yaramaz, ama işe yarıyorsa sonuçlar iyidir:
ps2pdf input.pdf output.pdf
Bu ayrıca yorumlarda önerildiği gibi doğrudan pdf'lerde de çalışır.
Bazı kullanıcılar , e-kitap ayarlarını kullanırken aşağıdaki gibi daha fazla başarı rapor ediyor:
ps2pdf -dPDFSETTINGS=/ebook input.pdf output.pdf
ps2pdf intput.pdf output.pdf
Eğer bir varsa taranan görüntülerle pdf kullanabileceğiniz convert
bir pdf oluşturmak için jpeg sıkıştırma (herhangi pdf üzerinde bu yöntemi kullanabilirsiniz, ancak tüm metin bilgileri kaybedeceksiniz).
Örneğin:
convert -density 200x200 -quality 60 -compress jpeg input.pdf output.pdf
Ayarlayın yoğunluğu (örneğin 100x100) ve kalitesini ihtiyaçlarınıza.
Girişinize bağlı olarak, sıkıştırma artefaktları nedeniyle jpeg sıkıştırması en iyi seçenek olmayabilir. Alternatif sıkıştırma yöntemleri olarak BZip, Faks, Grup 4, JPEG, JPEG2000, Kayıpsız, LZW, RLE veya Zip arasında seçim yapabilirsiniz (bazıları yalnızca siyah-beyaz görüntülere izin verir). Detaylar için buraya bakınız .
Taranan / fotoğraflanan belgeler için (ayarlara bağlı olarak) mükemmel sıkıştırma oranları elde ettim. Belge kaynağına bağlı olarak, renk derinliğini ( -depth
argüman) azaltmak isteyebilirsiniz .
pdfimages input.pdf pages
PBM dosyaları ayıklamak için, o zaman böyle bir şey yapabilirsiniz: for page in *.pbm; do convert $page -compress Group4 -type bilevel TIFF:- | convert - output.pdf
. Herhangi bir OCR kaybedilecek, bu yüzden genellikle yaptığım pdfsandwich output.pdf
gibi, dosya boyutunu daha da azaltıyor gibi görünüyor.
gs
perde arkasında kullanır .
--density --quality --compress
vs çalıştırmak için seçenekler için çift çizgi kullanmak zorunda kaldı -density -quality -compress
.
-resize 50%
, tarama sırasında DPI
Bir belgenin tam renkli taramalarını içeren bir PDF'yi küçültmem gerekiyordu. Sayfalarımın her biri, dosya söz konusu olduğunda tam renkli bir görüntüdü. Metin ve görüntü içeren sayfaların görüntüleriydi, ancak görüntüyü tarayarak yaratıldılar.
Aşağıdaki ghostscript komutunun ve diğeri başka bir dizinin bir kombinasyonunu kullandım.
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dDownsampleColorImages=true \
-dColorImageResolution=150 -dNOPAUSE -dBATCH -sOutputFile=output.pdf input.pdf
Bu, dosya çözünürlüğümü yarıya indirerek görüntü çözünürlüğünü 150dpi'ye düşürdü. Belgeye bakıldığında, neredeyse hiç gözle görülür görüntü kalitesi kaybı yaşanmadı. Metin 2012 Nexus7’mde hala mükemmel bir şekilde okunuyor.
Taranan pdfs'i 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 \
$1
Yeniden kullanılabilir hale getirmek için biraz özelleştirebilirsiniz, ancak yalnızca bir pdf'niz varsa, sadece $1
pdf dosya adınızla değiştirip bir terminale tıklayabilirsiniz.
Bunu yapmak için genellikle ps2pdf kullanıyorum (daha kolay sözdizimi), şunun gibi:
ps2pdf -dPDFSETTINGS=/ebook BiggerPdf SmallerPDF
Bir üretim sunucusundaki (8.04) bir dir içindeki tüm pdf dosyalarının boyutunu azaltmak için aşağıdaki python betiğini kullanıyorum. Bu yüzden çalışması gerekir.
#!/usr/bin/python
import os
for fich in os.listdir('.'):
if fich[-3:]=="pdf":
os.system("ps2pdf -dPDFSETTINGS=/ebook %s reduc/%s" % (fich,fich))
Bu iyi bir sonuç verecektir.
Benim için en iyisiydi
convert -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
pdf2ps input.pdf temp.ps && ps2pdf14 temp.ps output.pdf && rm temp.ps
Bu problemle kendim daha yeni tanıştım. Basit tarama kullanıyorsanız, düşük çözünürlüklü taramalar için metin modunu seçin; komut satırı işleri için endişelenmenize gerek yoktur. Sadece söylüyorum.
Sıkıştırma kalitesini kontrol edin:
#!/bin/sh
INPUT=$1; shift
OUTPUT=$1; 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}
shift
. İlk parametre giriş dosyası, ikinci çıktı dosyası ve parametrelerin geri kalanı olduğu gibi iletilecektir gs
.
Google’da arama yaptığımda bu bağlantı benim için ilk kez olduğu için, bir olasılık daha ekleyeceğimi düşündüm. Yukarıdaki çözümlerin hiçbiri benim için Inkscape'den (15 mb) ihraç edilen bir pdf üzerinde çalışmıyordu, ancak en sonunda GIMP'de açıp tekrar pdf olarak dışa aktararak 1 mb'ye kadar küçültmeyi başardım.
Yaklaşan bir başka seçenek (ancak metin biraz bulanıktı) ImageMagick'in dönüştürme programıydı:
convert -compress Zip input.pdf output.pdf
convert -compress Zip
için tüm vektörleri rasterleştiriyor göründü.
Sonunda kullandığı, bunu çözmek için kendi bash senaryoyu yazdım mogrify
, convert
ve gs
onları yeniden boyutlandırmak, png olarak pdf sayfaları ayıklamak 1 bitlik bmp onları dönüştürmek ve daha sonra pdf olarak bunları yeniden inşa etmek için. Dosya boyutunu küçültme% 90'ın üzerinde olabilir. Boş http://www.timedicer.co.uk/programs/help/pdf-compress.sh.php .
Pdfsizeopt'u şiddetle tavsiye ederim .
Ben denedim önceki CLI ve GUI yazılımın herhangi daha boyut küçültme (dahil açısından çok daha verimli olduğunu convert
, gs
, pdftk
her ne kadar muhtemelen daha yavaş olan -, vs.) pngout
aktive - ve bunların bazı sorunları (çokça yok pikselli / bozulmuş görüntüler, yer imleri kaybı, vb.).
Şimdi, sonuç ne olursa olsun (görüntüleri (okunamayan bir noktaya düşürmek de dahil olmak üzere) belirli bir boyuta erişmeniz gerekiyorsa, gereksiz büyük boyutları azaltmak için ihtiyaç duyduğunuz araç değil, daima çalışan bir çözüm olabilir. PDF'lerde okunabilirliği, bilgileri ve kabul edilebilir görüntü kalitesini kaybetmeden, en iyi seçenek olduğunu düşünüyorum. (Not: İlk önce Adobe Acrobat'ta ("CleanScan" olarak adlandırılan işlev] bir vectorization-OCR işlemi yaptıktan sonra kullanma eğilimindeyim, bu da taranan bazı metin belgeler üzerinde çarpıcı boyutta bir etki yaratabilir.)
Genel Unix kurulumunu ö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]
Bu yazıyı (ya da Linuxbrew kullanıcıları) bulan mac kullanıcıları için not : bir Homebrew kurulum formülü var:
brew install --HEAD pts/utils/pdfsizeopt
Aynı sorunla karşı karşıyaydım ve bu konuyu bulmaktan memnun oldum. Özellikle taranan görüntülerden oluşturulan bir pdf'm vardı ve bayt boyutunu 6 kat azaltmam gerekiyordu.
Ne yazık ki, yukarıdaki çözümlerin hiçbiri işe yaramadı :(. Ardından, tarayıcı-> jpeg-> pdf işleminde bir yerde sayfanın boyutunun aprx 4 faktörü tarafından şişirildiğini fark ettim. ancak pdf boyutu
identify -verbose doc_orig.pdf | grep "Print size"
Print size: 35.4167x48.7222
İstenilen sonuçları nihayetinde hem yeniden boyutlandırma hem de sıkıştırma adımlarının ikisinde de yapılan bir "convert" komutuyla 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ğa sahip olduğunu unutmayın.
Djvu'ya dönüştürmek de iyi sonuç verirse ve renk dahil değilse, aşağıdakileri deneyebilirsiniz:
Pdf dosyasını jpg dosyasına dönüştürün pdfimages -j
Eğer pbm dosyaları alırsanız, orta adımı atmanız gerekir:
for FILENAME in $(ls *.pbm); do convert $FILENAME ${FILENAME%.*}.jpg ;done
Convert komutu, imagemagick paketindendir.
Öyleyse ondan kurtulmak için scantailor kullanın.
Son adımda, tarakçıları (tif'in bulunduğu yer) direcory üzerinden çıkarır ve bu dizine djvubind uygularsınız .
Bu, büyük metin kaybı olmadan dosya boyutunu büyük ölçüde azaltmalıdır. djvubind --no-ocr
Ocr -arka ucu üzerinde daha hassas bir kontrol istiyorsanız , ocr katmanını daha sonra eklemek için ocrodjvu'yu deneyebilirsiniz .
Belgenizde renk varsa, işler biraz daha karmaşıklaşır. Yerine djvubind kullanabilirdin didjvu ve scantailor içinde karışık moda geçmek ve elle bazen renk görüntüleri seçmek zorunda.
inkscape içine görüntü veya hatta pdf dosyasını yükleyin.
Inkscape'den: Vektör formatında kaydedin (yerel .svg olarak).
Vektör dosyalarını scribus'a alın, düzen düzenleyin ve oradan .pdf olarak dışa aktarın / kaydedin
Süper basit 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.
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
107.5MiB giriş dosyası için bu durumda daha hızlıdır ancak% 30'a kadar sıkıştırır.
Benim için gs screen
seçeneği çok kötüydü ve ebook
biri çok büyüktü.
Orijinal belgem, renkli ve siyah beyaz görüntüler olarak metin içeriyordu (sayfaya bağlı olarak).
En iyi çözüme ulaştığım çözüm:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dDownsampleColorImages=true -dDownsampleGrayImages=true -dDownsampleMonoImages=true -dColorImageResolution=130 -dGrayImageResolution=130 -dMonoImageResolution=130 -r130 -dNOPAUSE -dBATCH -sOutputFile=output_lr.pdf input.pdf
Sıkıştırma seviyesinin doğrusal olmadığına dikkat edin .. 135 olduğunu belirtiyorsam sıkıştırılmadığını, (benim durumumda) bir sıkıştırma sağlayan en yüksek çözünürlük olduğunu 130 buldum.
Aşağıdaki komutları kullandım ancak pdf dosyamı büyük ölçüde sıkıştırmadı. Sıkıştırma işleminden sonra bölümün bir kısmı 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)
Çok fazla web üzerinde gezindikten sonra doğru sıkıştırma kütüphanesini bulamadım. Ben rastladım pdfcompressor.com
. Bu sadece harika bir web sitesi. Pdf dosyasını% 95 oranında sıkıştırır (15 MB dosya). Bu yüzden sıkıştırmayı otomatikleştirmek için selenyum ve Tor kullandım. Github Deposu'nu kontrol et. [GITHUB] ( https://github.com/gugli28/PdfCompressor )