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


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

Die Datei war ein JPEG-Bild, das ich gescannt und dann in PDF konvertiert hatte.


294
2018-03-16 17:12


Ursprung


es hängt davon ab, was den Raum verbraucht ... braucht viel mehr Informationen. Komprimieren des Bildbereichs könnte helfen, aber wenn Sie eine große Datei Heap Spray versuchen, wird das nicht funktionieren. ernsthaft brauchen mehr Infos. - RobotHumans
Konvertiere es in DjVu, versuche stattdessen auf PDF zu verkleinern (Quelle) - zetah
Die Datei war ein JPEG-Bild, das ich gescannt und dann in PDF konvertiert hatte. - tamimym
Es scheint nur, um die Dateigröße ein wenig zu helfen, aber pdfopt hat eine einfache Syntax und verbessert die Lade- und Seitendrehgeschwindigkeit in der iPad-Ära. :-) - Ari B. Friedman
PDF to PS ist in gescannten PDF-Dateien nicht effektiv, ich versuche, 56 MB pdf in ps-Datei zu konvertieren, aber ps-Datei in 1,3 GB konvertieren und wieder ps2pdf wird in 45 MB-Datei konvertiert


Antworten:


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 für richtig halten.


119
2018-03-16 17:28



Vielen Dank für deine Vorschläge, die Ghostscript-Shell hat Wunder vollbracht und sie auf 460 KB reduziert :) - tamimym
Das ist nicht unbedingt wahr. Wenn der Inhalt von einem Bild zu einem Text wurde, ist das mehr als nur möglich. [Das setzt voraus, dass der Text genau richtig ist] - monksy
Ich empfehle Ihnen shrinkpdf.sh-Skript, Sie können den Code anpassen, um den gewünschten ppi-Wert (standardmäßig 72) zu verwenden und genau die Dateigröße zu erreichen, die Sie benötigen, um die geringste Qualität zu opfern. Dadurch konnte ich ein gescanntes Dokument von 11 MB mit einem max. Größe von 3 MB ohne viel Qualität zu verlieren. - Severo Raz
shrinkpdf funktioniert super! - AmanicA
Der erste Link mit der Einstellung "/ ebook" reduzierte eine 19 MB gescannte Datei auf 4,2 MB und der gescannte Text bleibt lesbar. - dremodaris


Verwenden Sie Folgendes Ghostscript Befehl:

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

406
2018-02-15 13:53



Man kann auch ein Nautilus-Skript erstellen, um auf diese Funktion für jede Datei zuzugreifen. - Sina
Dies sollte die akzeptierte Antwort sein. Ghostscript ist das PDF-, XPS- und PS-Implementierung für Units und kann grundsätzlich alles mit bester Qualität liefern ... - dom0
@Sina: Es gibt tatsächlich ein Nautilus-Skript mit einer einfachen Zenity-basierten GUI, die diesen gs-Befehl mit all seinen Qualitätsoptionen verwendet: launchpad.net/compress-pdf - Sadi
Dies ist die richtige Antwort für diese Frage (Komprimieren einer PDF-Datei, bei der es sich hauptsächlich um Bitmap-Daten handelt). Ich habe das gefunden screen Einstellung war zu geringe Qualität für mich, aber ebook funktionierte gut und schnitt ein Scan-basiertes PDF-Dokument mit 33 MB auf 3,6 MB herunter und hielt es gut lesbar. Andere Optionen für die -dPDFSETTINGS Option sind hier aufgeführt: milan.kupcevic.net/ghostscript-ps-pdfund es könnte eine gute Idee sein, sie in diese Antwort aufzunehmen. - naught101
gs verfügbare Konfigurationsparameter: ghostscript.com/doc/current/Ps2pdf.htm - Antonios Hadjigeorgalis


Mein liebster Weg, dies zu tun ist, die PDF in PS und zurück zu konvertieren. Es funktioniert nicht immer, aber wenn es funktioniert, sind die Ergebnisse gut:

ps2pdf input.pdf output.pdf

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


123
2018-01-16 09:18



Dies ist eine sehr einfache und effektive Möglichkeit, dies zu tun. Ich war überrascht zu sehen, wie sehr diese Methode die Dateien komprimiert hat. Danke! - Gabriel
Trotz der Tatsache, dass dieser eine Ansatz meine Lieblingslösung zum Komprimieren von PDF-Dateien wurde, bricht er URL-Links auf, die das Dokument haben kann (was bei @Michael D's Ansatz nicht passiert). Abgesehen davon, ist die Großartigkeit alles, woran ich denken kann, dieses Snippet zu laufen! (: - Rubens
@ Rubens Ah. Wusste nicht, dass es die URL-Links bricht. Danke, dass du das hinzugefügt hast. - don.joey
Das umgeht den Passwortschutz ... sag einfach - jojo
ps2pdf verwendet pdfs als Eingaben, so dass Sie dies in einem Schritt tun können: ps2pdf intput.pdf output.pdf - frabjous


Wenn Sie eine haben pdf mit gescannten Bildernkannst du benutzen convert um ein PDF mit zu erstellen JPEG-Komprimierung (Sie können diese Methode auf jedem PDF verwenden, aber Sie werden alle Textinformationen verlieren).

Beispielsweise:

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

Einstellen Dichte (z.B. 100 × 100) und Qualität auf deine Bedürfnisse.

Abhängig von Ihrer Eingabe jpeg Kompression möglicherweise nicht die beste Wahl aufgrund von Kompressionsartefakten. 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 Streit).


105
2018-05-19 17:39



Für ein gescanntes Dokument, bei dem der Text das ist, an dem Sie interessiert sind, ist die JPEG-Komprimierung keine gute Idee, da die Artefakte dazu neigen, extrem auffällig zu sein. Wenn du benutzt pdfimages input.pdf pages um PBM-Dateien zu extrahieren, dann können Sie etwas tun wie: for page in *.pbm; do convert $page -compress Group4 -type bilevel TIFF:- | convert - output.pdf. Jede OCR wird verloren gehen, was ich normalerweise tue pdfsandwich output.pdfDies scheint die Dateigröße noch weiter zu reduzieren. - Brian Z
@BrianZ sicher JPEG-Komprimierung ist nicht immer die beste Wahl, aber für mich war es der beste Ansatz für gemischte Dokumente. Ich fügte der Antwort einige Informationen über andere Komprimierungsmethoden hinzu. - someonr
Diese Methode verwendet letztendlich gs hinter den Kulissen. - alfC
Ich musste Doppelstrich für die Optionen verwenden, um den Befehl auszuführen --density --quality --compress vs -density -quality -compress. - Rotareti
Wenn Bildqualität nicht die höchste Sorge ist (und Sie möchten nur, dass der dang E-Mail-Anhang klein genug ist, um gesendet zu werden), könnte man hinzufügen -resize 50% Ändern Sie den Prozentsatz, je nachdem, wie viel DPI beim Scannen verwendet wurde - chrki


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 aus 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 2012 Nexus7 immer noch perfekt lesbar.


30
2018-01-19 06:25



+1 für das Downsampling von Bildern, aber das Halten von Text als Vektoren. Hat einen großen Unterschied in der Seite gemacht, ohne dass mein Text verpixelt wurde. - Jason O'Neil


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 \
     $1

Sie könnten es ein wenig anpassen, um es wiederverwendbar zu machen, aber wenn Sie nur eine pdf haben, könnten Sie einfach ersetzen $1 mit Ihrem PDF-Dateinamen und stopf es in einem Terminal.


24
2017-08-31 20:29



Funktioniert ein Vergnügen, danke Oli. Du hast so ziemlich alles beantwortet, was ich bisher gefragt habe :-D - Rob Cowell
Das ist eine gute Antwort, aber in meinem Fall dauert es zumindest ein Menge von Zeit, um eine etwas große (> 10Mb) PDF-Datei (mehr als eine Minute) zu konvertieren. - Gabriel
Ich bin mir nicht sicher was passiert, aber ein 30 MB PDF ergibt eine 68 MB Datei. Anstatt zu reduzieren, vergrößert es sich. Gleiche Ausgabe bei direkter Verwendung von ps2pdf wie in der nächsten Antwort angegeben. - Ed Villegas
@EdVillegas Das einzige, was mir einfällt (um diese Art von Zunahme zu erklären) ist, dass die Bilder eine niedrigere Auflösung haben als die, die erzeugt werden (72dpi). Oder irgendwie die Schriften einbetten saugt ein alle die Schriftarten. - Oli♦


Normalerweise verwende ich ps2pdf, um dies zu tun (einfachere 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))

15
2017-09-01 07:26



Danke für die alternative Lösung. Ich habe zuerst Oli's versucht und es gab mir das Ergebnis, das ich brauchte, aber ich werde dieses auch für die Zukunft aufbewahren. - Rob Cowell
-dPDFSETTINGS = / Drucker Option 50% Größenänderung. Ebook tun 90% Größe ändern. - neouyghur


  1. ich benutze LibreOffice Zeichnen um das PDF zu öffnen.
  2. Ich dann "als pdf exportieren"
  3. Und stellen Sie "JPEG Kompressionsqualität" auf 50% und "Bildauflösung" auf 150 dpi

Dies wird ein gutes Ergebnis haben.


13
2018-06-14 09:59



Worstmögliche Lösung für das Problem! Es hat meine Akte total durcheinander gebracht! - ThatIs


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


6
2018-04-21 11:03



gute Zusammenfassung danke - Gery
Tolle Lösung. Einfach zu merken und es brachte meine PDF von 32 bis 3,5 MB ohne sinnvollen Lesbarkeitsverlust. - Immanuel Weihnachten