Wie kann ich die Dateigröße einer gescannten PDF-Datei reduzieren?

286

Ich habe eine 72,9 MB große PDF-Datei, die ich unter 500 KB verkleinern muss.

Bei der Datei handelte es sich um ein JPEG-Bild, das ich gescannt und dann in ein PDF-Dokument konvertiert hatte.

    
tamimym 16.03.2012, 18:12

20 Antworten

115

aking1012 hat Recht. Mit mehr Informationen zu möglichen eingebetteten Bildern, Hyperlinks etc .. wäre es viel einfacher, diese Frage zu beantworten!

Hier sind ein paar Skript- und Befehlszeilenlösungen. Verwenden Sie, wie Sie es für richtig halten.

v2r 16.03.2012, 18:28
400

Verwenden Sie den folgenden Befehl ghostscript :

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
  • -dPDFSETTINGS=/screen geringere Qualität, kleinere Größe.
  • -dPDFSETTINGS=/ebook für bessere Qualität, aber etwas größere pdfs.
  • -dPDFSETTINGS=/prepress Ausgabe ähnlich der Einstellung "Prepress Optimized" in Acrobat Distiller
  • -dPDFSETTINGS=/printer wählt die Ausgabe ähnlich der Einstellung "Druckoptimiert" in Acrobat Distiller
  • -dPDFSETTINGS=/default wählt eine Ausgabe aus, die für eine Vielzahl von Anwendungen nützlich sein soll, möglicherweise auf Kosten einer größeren Ausgabedatei
Michael D 15.02.2013 14:53
118

Mein liebster Weg ist das Konvertieren der PDF in ps und zurück. Es funktioniert jedoch nicht immer, aber wenn es funktioniert, sind die Ergebnisse nett:

ps2pdf input.pdf output.pdf

Dies funktioniert auch direkt auf PDFs, wie in den Kommentaren vorgeschlagen.

    
don.joey 16.01.2013 10:18
103

Wenn Sie eine pdf mit gescannten Bildern haben, können Sie convert verwenden, um eine PDF mit jpeg-Komprimierung zu erstellen (Sie können diese Methode für jede PDF-Datei verwenden Sie verlieren alle Textinformationen).

Zum Beispiel:

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

Passen Sie dichte (z. B. 100x100) und Qualität Ihren Bedürfnissen an.

Abhängig von Ihrer Eingabe ist die JPEG Komprimierung aufgrund von Komprimierungsartefakten möglicherweise nicht die beste Wahl. Sie haben die Wahl zwischen BZip, Fax, Group4, JPEG, JPEG2000, Lossless, LZW, RLE oder Zip als alternative Komprimierungsmethoden (einige erlauben nur Schwarzweißbilder). Für Details siehe hier .

Ich konnte große Komprimierungsraten für gescannte / fotografierte Dokumente erzielen (abhängig von den Einstellungen). Abhängig von der Dokumentquelle möchten Sie möglicherweise die Farbtiefe reduzieren ( -depth Argument).

    
someonr 19.05.2014 19:39
29

Ich musste ein PDF verkleinern, das Vollfarbscans eines Dokuments enthielt. Jede meiner Seiten war ein Vollfarbbild, soweit es die Datei betraf. Sie waren Bilder von Seiten, die Text und Bilder enthielten, aber sie wurden durch Scannen in ein Bild erstellt.

Ich habe eine Kombination aus dem folgenden Ghostscript-Befehl und einem anderen Thread verwendet.

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

Dadurch wurde die Bildauflösung auf 150 dpi reduziert und die Dateigröße halbiert. Beim Betrachten des Dokuments gab es fast keinen merklichen Verlust der Bildqualität. Der Text ist auf meinem 2012er Nexus7 immer noch perfekt lesbar.

    
mlitty 19.01.2014 07:25
24

Hier ist ein Skript zum Neuschreiben gescannter PDFs:

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

Sie könnten es ein wenig anpassen, um es wiederverwendbar zu machen, aber wenn Sie nur eine PDF haben, könnten Sie einfach durch Ihren PDF-Dateinamen ersetzen und in einem Terminal stecken.

    
Oli 31.08.2010 22:29
14

Normalerweise verwende ich ps2pdf, um dies zu tun (leichtere Syntax), etwa so:

ps2pdf -dPDFSETTINGS=/ebook BiggerPdf SmallerPDF

Ich verwende das folgende Python-Skript, um die Größe aller PDF-Dateien in einem Verzeichnis auf einem Produktionsserver zu reduzieren (8.04). Also sollte es funktionieren.

#!/usr/bin/python

import os

for fich in os.listdir('.'):
        if fich[-3:]=="pdf":
                os.system("ps2pdf -dPDFSETTINGS=/ebook %s reduc/%s" % (fich,fich))
    
Javier Rivera 01.09.2010 09:26
13
  1. Ich benutze LibreOffice Draw , um das PDF zu öffnen.
  2. Ich dann "export als pdf"
  3. Und stellen Sie "jpeg compression quality" auf 50% und "image resolution" auf 150 dpi

Dies wird ein gutes Ergebnis haben.

    
Marius4674 14.06.2016 11:59
6

Das Beste für mich war

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

Andere Möglichkeiten:

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

Grüße

    
oxidworks 21.04.2016 13:03
5

Ich bin gerade auf dieses Problem gestoßen. Wenn Sie einen einfachen Scan verwenden, wählen Sie den Textmodus für Scans mit niedriger Auflösung und Sie müssen sich nicht um die Befehlszeilen kümmern. Einfach nur sagen.

    
user179584 29.07.2013 23:13
3

Da dieser Link zuerst für mich war, als ich in Google gesucht habe, dachte ich, ich würde eine weitere Möglichkeit hinzufügen. Keine der oben genannten Lösungen funktionierte für mich auf einem von Inkscape (15 mb) exportierten PDF, aber ich konnte es schließlich auf 1 mb verkleinern, indem ich es in GIMP öffne und wieder als pdf exportiere.

Eine andere Option, die nahe kam (aber der Text war etwas unscharf), war das Konvertierungswerkzeug von ImageMagick:

convert -compress Zip input.pdf output.pdf
    
mbroshi 13.02.2014 13:32
3

Am Ende habe ich mein eigenes bash-Skript geschrieben, um dieses Problem zu lösen. Es verwendet mogrify , convert und gs , um PDF-Seiten als PNG zu extrahieren, ihre Größe zu ändern, sie in 1-Bit-BMP umzuwandeln und sie dann neu zu erstellen als pdf. Die Dateigrößenreduzierung kann über 90% betragen. Verfügbar unter Pfandrecht .

    
scoobydoo 21.09.2016 14:15
2

Kontrollieren Sie die Komprimierungsqualität:

#!/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}
    
user525719 02.04.2016 06:11
1

Wenn die Konvertierung in djvu auch in Ordnung wäre und keine Farben beteiligt sind, könnten Sie Folgendes versuchen:

Konvertieren Sie die PDF-Dateien in JPG-Dateien mit pdfimages -j

Wenn Sie stattdessen pbm-Dateien erhalten, sollten Sie den Zwischenschritt ausführen:

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

Der Befehl convert stammt aus dem imagemagick-Paket.

Dann benutze scantailor , um Tif's daraus zu machen.

In einem letzten Schritt gehst du zum Director of Directors (wo sich die TIFs befinden) und bewirbst djvubind in diesem Verzeichnis.

Dies sollte die Dateigröße drastisch reduzieren ohne großen Qualitätsverlust des Textes. Wenn Sie eine bessere Kontrolle über das ocr-backend haben möchten, können Sie djvubind --no-ocr ausprobieren und ocrodjvu verwenden, um danach die ocr-Ebene hinzuzufügen.

Wenn Sie Farben in Ihrem Dokument haben, werden die Dinge etwas komplizierter. Statt djvubind können Sie didjvu und in Kürze müssen Sie in den gemischten Modus wechseln und manchmal manuell Farbbilder auswählen.

    
student 11.09.2011 10:43
1

lade Bild- oder sogar PDF-Dateien in inkscape.

Aus inkscape: Speichern Sie im Vektorformat (als native .svg).

Importieren Sie Vektordateien in den Scribus, bearbeiten Sie das Layout und exportieren / speichern Sie als PDF von dort

    
ape 28.07.2013 22:45
1

Ich hatte das gleiche Problem und war froh, diesen Thread zu finden. Insbesondere hatte ich ein PDF-Dokument aus gescannten Bildern erstellt und musste seine Byte-Größe um einen Faktor von 6 reduzieren.

Leider hat keine der obigen Lösungen funktioniert :(. Dann erkannte ich, dass irgendwo im Scanner- & gt; jpeg- & gt; -PDF-Prozess die Größe der Seite um einen Faktor von ca. 4 aufgebläht wurde. Die Dokumente, die ich gescannt habe waren alle Letter groß, aber das PDF hatte eine Größe von

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

Ich habe endlich die gewünschten Ergebnisse mit einem "convert" -Befehl erhalten, der sowohl die Größenanpassung als auch die Komprimierungsschritte in einem:

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

Beachten Sie, dass doc_orig eine Dichte von 72 x 72 dpi hatte.

    
Kalpit 20.03.2016 12:56
0

Super einfaches PDF-Komprimierungstool: GitHub-Seite.

Installation unter Ubuntu:

sudo add-apt-repository ppa:jfswitz/released

sudo apt-get update

sudo apt-get install pdf-compressor

Es verwendet Ghostscript.

    
John 12.10.2015 14:39
0

Ich habe kürzlich pdfsizeopt entdeckt und empfehle es sehr.

Es ist viel effizienter als jede der vorherigen CLI und GUI-Software, die ich versucht habe (einschließlich convert , gs , pdftk , etc.) - obwohl möglicherweise langsamer mit pngout aktiviert - und tut nicht einige ihrer Probleme (keine stark verpixelten / verschlechterten Bilder, kein Verlust von Lesezeichen, etc.).

Ich empfehle die generische Unix-Installation :

  1. Installieren Sie alle erforderlichen Abhängigkeiten:

  2. Laden Sie die ausführbare Datei herunter und installieren Sie sie:

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

Verwendung:

pdfsizeopt original.pdf [compressed.pdf]
    
Serge B. 02.03.2018 15:37
0

Sie können dies versuchen:

$ 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

Es ist schneller als gs , komprimiert aber in diesem Fall bis zu 30% für eine 107,5MiB-Eingabedatei.

    
SebMa 09.08.2018 18:01
-2

Ich habe die folgenden Befehle verwendet, aber es hat meine PDF-Datei nicht wesentlich komprimiert. Einige Male war ein Teil des Teils nach der Kompression geschwärzt.

  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)

Nachdem ich zu viel über das Internet gewandert bin, konnte ich einfach nicht die richtige Komprimierungsbibliothek finden. Ich bin auf pdfcompressor.com gestoßen. Das ist einfach eine tolle Webseite. Es komprimiert das PDF um 95% (15 MB Dateien). Also habe ich Selen und Tor benutzt, um die Kompression zu automatisieren. Überprüfen Sie mein Github Repository. [GITHUB] ( Pfandrecht )

    
Prince 08.05.2018 13:10

Tags und Links