Befehlszeilen-PDF-Optimierer (Linearisierer)

Ich suche nach einem Linux- Befehlszeilenprogramm, das eine zusammengeführte PDF-Datei (zwischen 1 MB und 500 MB) eingibt und eine optimierte/linearisierte Version ausgibt. Jede einzelne Seite verwendet denselben Satz von ~8 Bildern und dieselbe Schriftart. Beim Ausführen einer meiner Testdateien über Adobe Acrobat Pro wurde die Datei innerhalb von etwa 30 Sekunden von 34 MB auf 1,6 MB vergrößert. Ich erwarte nicht wirklich eine solche Leistung, aber etwas, das auch nur halb so schnell / effizient wäre, wäre wunderbar.

Ich brauche es für einen Batch-Job, der unter Linux ausgeführt wird , weshalb es eine CLI benötigt. Ich habe pdftk , gs , qpdf , pdftops und pdfsizeopt ausprobiert . Die ersten 4 sind entweder viel zu langsam oder optimieren die PDF- Dateien nicht vollständig . pdfsizeopt scheint vielversprechend zu sein, aber ich habe Probleme mit der Konsistenz - einige meiner PDF- Dateien funktionieren, andere werden Fehler verursachen.

Irgendwelche anderen Ideen als die, die ich bereits aufgelistet habe? Es würde mir nichts ausmachen, etwas zu kaufen, wenn es den Job machen würde.

Linearisierung und Dateigröße hängen nicht direkt zusammen ... können Sie genau erklären, was Sie wollen?
@Alec Sanger: Wenn meine Antwort für Sie hilfreich war, markieren Sie sie bitte als akzeptierte Antwort , damit andere sie in Zukunft leichter finden können. Dies ist auch eine höfliche Art, der Person, die deine Frage beantwortet, dafür zu danken, dass sie dir geholfen hat.

Antworten (2)

Ich persönlich verwende Ghostscript, um die Größe meiner PDF-Dateien zu optimieren. Sie können eine Optimierungsstufe angeben und die Bilder werden verkleinert. Dies hat auch den (IMHO wünschenswerten) Nebeneffekt, dass Elemente entfernt werden, die sich außerhalb der Seitenränder befinden.

gs -sDEVICE=pdfwrite -dPDFSETTINGS=/printer -dCompatibilityLevel=1.4 -r75 -dNOPAUSE -dQUIET -dBATCH -sOutputFile="output.pdf" "input.pdf"

Die Ebenen, die Sie verwenden können, sind:

-dPDFSETTINGS=/screen (screen-view-only quality, 72 dpi images)
-dPDFSETTINGS=/ebook (low quality, 150 dpi images)
-dPDFSETTINGS=/printer (high quality, 300 dpi images)
-dPDFSETTINGS=/prepress (high quality, color preserving, 300 dpi imgs)
-dPDFSETTINGS=/default (almost identical to /screen)
Für alle, die sich fragen, ergibt dies eine viel bessere Komprimierung als pdfsizeopt
Ich bin vielleicht der einzige, der davon gebissen wurde, aber es war schlimm genug, dass ich dachte, ich hinterlasse einen Kommentar. gsist ein sehr gebräuchlicher Alias ​​(insbesondere für den Git-Status). Wenn Sie eine Fehlermeldung erhalten, vergewissern Sie sich, dass es sich nicht um einen Alias ​​handelt type gs, oder verwenden Sie den vollständigen Namen ghostscriptanstelle von gs. Bestätigte auch die Arbeit an Fedora (Linux) Ghostscript v9.55.0

PdfCpu funktioniert super:

pdfcpu optimize in.pdf out.pdf

https://pdfcpu.io/core/optimize

pdfcpuerstickte an PDFs, die aus einem Google-Dokument mit Fehler erstellt wurden: dereferenceObject: problem dereferencing object 69: pdfcpu: parse: duplicate key. Allerdings führte es zuerst durch GhostScript (unter Verwendung einer anderen Antwort) und dann durch pdfcpu-Optimierung zu besseren Ergebnissen als Ghostscript allein.
Sind Sie ein Entwickler oder anderweitig mit dem Projekt verbunden? Ich kann das PDF von gestern nicht teilen, aber ich kann versuchen, es mit einem weiterverteilbaren PDF zu reproduzieren
@Freedom_Ben Ich bin ein Go-Experte, also kann ich vielleicht helfen