Hogyan csökkenthetem a beolvasott PDF fájl méretét?

297

Van egy 72,9 MB-os PDF-fájlom, amelyet 500 KB alatt kell csökkentenem.

A fájl egy JPEG kép volt, amelyet szkenneltem, majd PDF-be konvertáltam.

    
készlet tamimym 16.03.2012 18:12
forrás

20 válasz

119

Az aking1012-nek igaza van. A lehetséges beágyazott képekkel, hiperhivatkozásokkal stb. Kapcsolatban további információval könnyebben válaszolhat erre a kérdésre!

Íme néhány parancsfájl és parancssori megoldás. Használja a megfelelőnek.

válasz adott v2r 16.03.2012 18:28
forrás
413

Használja az alábbi ghostscript parancsot:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
  • -dPDFSETTINGS=/screen alacsonyabb minőség, kisebb méret. ( 72 dpi )
  • -dPDFSETTINGS=/ebook a jobb minőségű, de kissé nagyobb pdf-khez. ( 150 dpi )
  • -dPDFSETTINGS=/prepress kimenet az Acrobat Distillerhez hasonlóan "Prepress Optimized" beállítás ( 300 dpi )
  • -dPDFSETTINGS=/printer kiválasztja az Acrobat Distiller "Print Optimized" beállításhoz ( 300 dpi ) hasonló kimenetet
  • A (z)-dPDFSETTINGS=/default olyan kimeneteket választ ki, amelyek a különböző alkalmazások széles körében hasznosak lehetnek, esetleg egy nagyobb kimeneti fájl rovására.
válasz adott Michael D 15.02.2013 14:53
forrás
123

A kedvenc módja ennek, hogy a pdf-t PS-re és vissza. Nem mindig működik azonban, de az eredmény jól működik:

ps2pdf input.pdf output.pdf

Ez is működik a pdf-ken, ahogy a megjegyzésekben is szerepel.

    
válasz adott don.joey 16.01.2013 10:18
forrás
106

Ha van pdf szkennelt képek , használhatod aconvert fájlt a jpeg tömörítéssel (Ezt a módszert bármilyen pdf-ben is használhatod, de minden szöveges információt elveszít.)

Például:

convert -density 200x200 -quality 60 -compress jpeg input.pdf output.pdf

Állítsa be sűrűség (például 100x100) és minőséget az Ön igényeinek megfelelően.

A bemeneti jpeg tömörítés függvényében a tömörítési melléktermékek miatt nem lehet a legjobb választás. Választhat a BZip, a Fax, a Group4, a JPEG, a JPEG2000, a Lossless, az LZW, az RLE vagy a Zip alternatív tömörítési módok közül (néhány csak b / n képeket engedélyez). A részleteket lásd: itt .

A beolvasott / fényképezett dokumentumokhoz nagy tömörítési arányt tudtam elérni (a beállításoktól függően). A dokumentumforrástól függően érdemes csökkenteni a színmélységet (-depth argumentum).

    
válasz adott someonr 19.05.2014 19:39
forrás
30

Szükségem volt egy PDF méretű lebontásra, amely egy dokumentum színes beolvasását tartalmazza. Mindegyik oldalam teljes színű képet mutatott be a fájlban. Szövegeket és képeket tartalmazó oldalak képei voltak, de szkenneléssel hozták létre egy képhez.

Az alábbi ghostscript parancs és egy másik szál kombinációját használtam.

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dDownsampleColorImages=true \
-dColorImageResolution=150 -dNOPAUSE  -dBATCH -sOutputFile=output.pdf input.pdf

Ez csökkentette a képfelbontást 150dpi-re, így a fájlméretem felére csökkent. A dokumentumra nézve szinte nem észlelhető a képminőség romlása. A szöveg még mindig tökéletesen olvasható a 2012-es Nexus7-en.

    
válasz adott mlitty 19.01.2014 07:25
forrás
24

Itt van egy szkript a beolvasott PDF-dokumentumok átírásához:

#!/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 \
     

Egy kicsit testre szabhatnád annak érdekében, hogy újra felhasználható legyen, de ha csak egy PDF-fájdalmad van, helyettesítheted a -ot a pdf fájlneveden, és egy terminálba tömörítheted.

    
válasz adott Oli 31.08.2010 22:29
forrás
17

Általában ps2pdf-t használok ehhez (könnyebb szintaxis), valami ilyesmi:

ps2pdf -dPDFSETTINGS=/ebook BiggerPdf SmallerPDF

A következő python szkriptet használom, hogy csökkentse a gyártási kiszolgálón lévő dir fájlok összes PDF-fájlját (8.04). Ezért működnie kell.

#!/usr/bin/python

import os

for fich in os.listdir('.'):
        if fich[-3:]=="pdf":
                os.system("ps2pdf -dPDFSETTINGS=/ebook %s reduc/%s" % (fich,fich))
    
válasz adott Javier Rivera 01.09.2010 09:26
forrás
13
  1. A LibreOffice Draw -et a pdf megnyitásához használom.
  2. Ezután "pdf-ben exportálom"
  3. És állítsa a "jpeg tömörítési minőség" értékét 50% -ra és a "képfelbontást" 150 dpi

Ennek jó eredménye lesz.

    
válasz adott Marius4674 14.06.2016 11:59
forrás
6

A legjobb nekem volt

convert -compress Zip -density 150x150 input.pdf output.pdf

Más módok:

#### 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

Tisztelettel

    
válasz adott oxidworks 21.04.2016 13:03
forrás
5

Én magam is találkoztam ezzel a problémával. Ha egyszerű szkennelést használ, válassza a szöveges módot az alacsony felbontású szkenneléshez, és nem kell aggódnia a parancssorból. Csak azt mondom.

    
válasz adott user179584 29.07.2013 23:13
forrás
3

Mivel ez a kapcsolat volt az első számomra, amikor keresgéltem a Google-ban, azt gondoltam, még egy lehetőséget adok hozzá. A fenti megoldások egyike sem működött az Inkscape-ban (15 mb) exportált PDF-formátumban, de végre tudtam csökkenteni 1 MB-ig, megnyitva a GIMP-ben, és újra exportálni PDF-ben.

Egy másik lehetőség, amely közel került (de a szöveg kicsit homályos volt), ImageMagick konverziós segédprogramja:

convert -compress Zip input.pdf output.pdf
    
válasz adott mbroshi 13.02.2014 13:32
forrás
3

Végül a saját bash parancsfájlomat írtam erre a megoldásra, amogrify, aconvert és ags -ot használom a pdf oldalak png-ként való kibontására, átméretezésére, konvertálására 1 bites bmp-re, majd újraépítésre mint pdf. A fájlméret csökkentése több mint 90% lehet. Elérhető a linkben .

    
válasz adott scoobydoo 21.09.2016 14:15
forrás
2

A tömörítési minőség vezérlése:

#!/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}
    
válasz adott user525719 02.04.2016 06:11
forrás
1

Ha a djvu konvertálása is rendben lenne, és ha nincsenek színek, akkor kipróbálhatja a következőket:

A PDF fájl konvertálása jpg fájlokká apdfimages -j

használatával

Ha pbm fájlokat kapsz, helyettesítsd a közbenső lépést:

for FILENAME in $(ls *.pbm); do convert $FILENAME ${FILENAME%.*}.jpg ;done

A konvertáló parancs a képmagos csomagból származik.

Ezután használd a scantailor -t, hogy tif-eket tegyél ki belőle.

Egy utolsó lépésben megy a scannilors out direcory-hoz (ahol a tif-ek találhatók), és djvubind alkalmazza a könyvtárat.

Ennek következtében drasztikusan csökkenteni kell a fájlokat a szöveg nagy veszteség nélkül. Ha finomabb ellenőrzést szeretne végezni az ocr-backenden, próbálkozzon adjvubind --no-ocr -tal, és az okrodjvu használatával hozzáadhatja az ocr réteget.

Ha színes a dokumentumodban, a dolgok kicsit bonyolultabbak lesznek. A djvubind helyett didjvu és a scantailor-ban vegyes üzemmódba kell váltania, és manuálisan kell kiválasztania a színes képeket.

    
válasz adott student 11.09.2011 10:43
forrás
1

betöltse a képet vagy akár pdf fájlt az inkscape-be.

Az inkscape-ből: Mentés vektoros formátumban (mint natív .svg).

Vektoros fájlok importálása a scribusba, szerkesztés elrendezése és exportálás / mentés .pdf-ból.

    
válasz adott ape 28.07.2013 22:45
forrás
1

Ugyanaz a probléma szembesültem, és örömmel találtam ezt a szálat. Pontosabban egy beolvasott képből generált pdf-fájlt, amelynek byte-méretét 6-os faktorral kellett csökkentenie.

Sajnos a fenti megoldások egyike sem működött :(. Aztán rájöttem, hogy valahol a lapolvasó-> gtpeg-> pdf folyamat során az oldal mérete 4-es tényezővel megnövekedett. mind Letter méretűek voltak, de a pdf mérete

volt
identify -verbose doc_orig.pdf | grep "Print size"
 Print size: 35.4167x48.7222

A kívánt eredményeket végül egy "konverzió" paranccsal végeztem el, amely mind a méretezést, mind a tömörítési lépéseket egyben végrehajtotta:

convert -density 135x135 -quality 70 -compress jpeg -resize 22.588% doc_orig.pdf doc_lowres.pdf

A doc_orig sűrűsége 72x72 dpi volt.

    
válasz adott Kalpit 20.03.2016 12:56
forrás
0

Szuper egyszerű PDF tömörítési eszköz: GitHub oldal.

Ubuntu telepítése:

sudo add-apt-repository ppa:jfswitz/released

sudo apt-get update

sudo apt-get install pdf-compressor

A ghostscriptet használja.

    
válasz adott John 12.10.2015 14:39
forrás
0

Nemrég fedeztem fel, és határozottan javaslom pdfsizeopt .

Sokkal hatékonyabb, mint bármelyik korábbi CLI és GUI szoftver, amelyet próbáltam (beleértveconvert,gs,pdftk stb.) - bár esetleg lassabb apngout aktiválva - nincsenek bizonyos problémáik (nem erősen pixelizált / degradált képek, sem könyvjelzők elvesztése stb.).

Javaslom a általános Unix telepítést :

  1. Telepítse az összes szükséges függőséget:

  2. A végrehajtható fájl letöltése és telepítése:

    curl -L -o https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
    cp pdfsizeopt.single /usr/local/bin/pdfsizeopt
    

Használat:

pdfsizeopt original.pdf [compressed.pdf]
    
válasz adott Serge B. 02.03.2018 15:37
forrás
0

Kipróbálhatja ezt:

$ 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

Ez gyorsabb, mint ags, de ebben az esetben legfeljebb 30% -ot tömörít egy 107.5MiB bemeneti fájlhoz.

    
válasz adott SebMa 09.08.2018 18:01
forrás
-2

A parancsok alatt használtam, de lényegében nem tömörítette a pdf fájlt. Néhány esetben a rész egy része összenyomódott.

  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)

Miután túl sok a vándorlás a weben, nem találtam meg a megfelelő tömörítő könyvtárat. pdfcompressor.com találtam. Ez csak félelmetes weboldal. A pdf-t 95% -kal tömöríti (15 MB fájl). Tehát szelént és Torot használtam a tömörítés automatizálására. Vedd fel a Github Repositoryomat. [GITHUB] ( link )

    
válasz adott Prince 08.05.2018 13:10
forrás