Taranan bir PDF dosyasının dosya boyutunu nasıl azaltabilirim?

292

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.

    
sordu tamimym 16.03.2012 18:12

20 cevap

119

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.

verilen cevap v2r 16.03.2012 18:28
404

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 daha düşük kalite, daha küçük boyut. ( 72 dpi )
  • Daha iyi kalite için -dPDFSETTINGS=/ebook , biraz daha büyük pdfs. ( 150 dpi )
  • Acrobat Distiller "Prepress Optimized" ayarına benzer -dPDFSETTINGS=/prepress çıktı ( 300 dpi )
  • -dPDFSETTINGS=/printer , Acrobat Distiller "Baskı İyileştirilmiş" ayarına benzer bir çıktı seçer ( 300 dpi )
  • -dPDFSETTINGS=/default , geniş bir kullanım yelpazesinde, muhtemelen daha büyük bir çıktı dosyası pahasına kullanışlı olması amaçlanan çıktıyı seçer
verilen cevap Michael D 15.02.2013 14:53
121

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.

    
verilen cevap don.joey 16.01.2013 10:18
103

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.

    
verilen cevap someonr 19.05.2014 19:39
30

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.

    
verilen cevap mlitty 19.01.2014 07:25
24

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.

    
verilen cevap Oli 31.08.2010 22:29
15

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))
    
verilen cevap Javier Rivera 01.09.2010 09:26
13
  1. pdf'yi açmak için LibreOffice Draw kullanıyorum.
  2. Sonra "pdf olarak dışa aktarıyorum"
  3. Ve "jpeg sıkıştırma kalitesi" ni% 50 ve "görüntü çözünürlüğü" olarak ayarlayın 150 dpi

Bunun iyi bir sonucu olacak.

    
verilen cevap Marius4674 14.06.2016 11:59
6

Benim için en iyisi

idi
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

    
verilen cevap oxidworks 21.04.2016 13:03
5

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.

    
verilen cevap user179584 29.07.2013 23:13
3

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
    
verilen cevap mbroshi 13.02.2014 13:32
3

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.

    
verilen cevap scoobydoo 21.09.2016 14:15
2

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}
    
verilen cevap user525719 02.04.2016 06:11
1

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

kullanarak jpg dosyasına dönüştürün

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.

    
verilen cevap student 11.09.2011 10:43
1

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

    
verilen cevap ape 28.07.2013 22:45
1

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

idi
identify -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.

    
verilen cevap Kalpit 20.03.2016 12:56
0

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.

    
verilen cevap John 12.10.2015 14:39
0

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:

  1. Gerekli tüm bağımlılıkları yükleyin:

  2. 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]
    
verilen cevap Serge B. 02.03.2018 15:37
0

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.

    
verilen cevap SebMa 09.08.2018 18:01
-2

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ı.

  1. gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf $INPUTFILE

  2. "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 )

    
verilen cevap Prince 08.05.2018 13:10

Etiketlerdeki diğer soruları oku