pdf Dateien verkleinern

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Kermit24
Beiträge: 311
Registriert: 29.04.2006 14:44:39

pdf Dateien verkleinern

Beitrag von Kermit24 » 22.09.2013 14:09:24

Hallo,
ich suche ein Programm/Script, dass pdf-Dateien verkleinert, indem die (schwarz/weiß) Seiten automatisch mit jbig2 komprimiert werden. Wenn es dazu noch möglich ist, Farbgrafiken mit jpeg2000 komprimieren zu lassen, wäre das auch ganz gut, aber für mein Zweck erstmal sekundär.

Momentan nutze ich einen Brother-Multifunktionsdrucker mit ADF, welcher mir via ein sebstgeschriebenes Script direkt monochrome PDFs im jbig2 Format erzeugt. Jetzt möchte ich die Seiten z.T. noch ein wenig umsortieren. Dazu habe ich mir zwei kleine Scripts mit pdftk geschrieben:

Code: Alles auswählen

cat pdfmerge.sh 
#!/bin/sh
pdftk $* cat output pdfmerge_`date +"%Y%m%d_%H%M%S"`.pdf
Das ganze wird über .desktop-Verknüfungen via Rechtsklick im Dateibrowser aufgerufen

Code: Alles auswählen

`--> cat ~/.local/share/applications/pdftk.desktop 

[Desktop Entry]
Encoding=UTF-8
Type=Application
NoDisplay=true
Name=Splitten mit pdftk
Exec=pdftk %f burst
MimeType=application/pdf

`--> cat ~/.local/share/applications/pdftk2.desktop

[Desktop Entry]
Encoding=UTF-8
Type=Application
NoDisplay=true
Name=Mergen mit pdftk
Exec=pdfmerge.sh %F
MimeType=application/pdf
Problem ist nun aber, wenn ich eine mehrseitige jbig2-pdf mit pdftk splitte, dann wird die Summe der Einzeldateien natürlich größer als die ursprüngliche jbig2 Datei, was ja auch logisch ist. Jbig2 speichert ja wiederkehrende Muster über das gesamte Dokument. Nur wenn ich die mit pdftk gesplitteten PDFs wieder mit pdftk zusammenfüge, dann ist die neue PDF eben wirklich so groß, wie die Summe der Einzeldateien und nicht wie die ursprüngliche PDF.
Ich müsste neu jbig2 codieren.

Alternativ habe ich das Programm "pdfshuffler" getestet. Damit kann ich alle Seiten rauslöschen, die ich nicht brauche und dann als neue PDF speichern, welche schon deutlich kleiner als die von pdftk erstellte ist. Aber pdfshuffler braucht bei mir Jahre, um vielseitige PDF-Dateien erst mal zu laden :(


Die jbig2 pdf erstelle ich beim scannen direkt mit einen script aus vielen png-Dateien mit jbig2enc

Um eine pdf neu zu codieren, müsste ich wohl erst mal alle seiten irgendwie als monochrome png's zurückwandeln und dann neu durch jbig2enc jagen. Leider versteht jbig2enc einseitige pdf-Dateien nicht als Eingabeformat. :(


ergo: Hat denn niemand schon mal ein Script oder ähnliches geschrieben, dass jedes PDF in jbig2 (und ev. jpeg2000 bei Farbgrafiken mit http://www.openjpeg.org/) neucodieren kann ohne viel Aufwand?

Benutzeravatar
detix
Beiträge: 1743
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: pdf Dateien verkleinern

Beitrag von detix » 22.09.2013 17:22:17

Lohnt es sich denn für s/w-Bilder jpeg zu komprimieren?
Ist nicht png hier angebrachter?
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Re: pdf Dateien verkleinern

Beitrag von peschmae » 22.09.2013 18:54:08

Ich hatte mich vor ein paar Monaten mal ausführlicher mit dem Thema PDFs verkleinern beschäftigt.

Irgendwie lief alles auf Ghostscript und Auflösungsverkleinerung raus - dann sahen die PDFs aber auch richtig schlecht aus. Als Alternative gabs noch pdfsizeopt.py (jetzt neu auf Google Code mit DMCA takedown notice), was zwar ein bisschen was brachte aber auch nicht so viel.

Die mit Abstand beste Lösung war damals leider der Adobe Acrobat, nur doof weil nicht scriptbar, nur für Windows und mittlerweile habe ich dafür auch keine Lizenz mehr... :(

Würde sich auf jeden Fall lohnen da mal was schönes zu bauen, habe nur im Moment leider keine Zeit...

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

wanne
Moderator
Beiträge: 7581
Registriert: 24.05.2010 12:39:42

Re: pdf Dateien verkleinern

Beitrag von wanne » 22.09.2013 23:40:32

Zuerstmal PDFs sind im normalfall bei gleicher Qualität wesentlich kleiner als jpegs.
Deswegen ist es nicht sinnvoll da jpeg-Kompression drüber zu lassen.
Hier ein paar argumente für ghostscript, die verkleinern:
http://milan.kupcevic.net/ghostscript-ps-pdf/#refs
So bekommst du ne volle Liste mit Argumenten was man alles verstellen kann. Die eignen sich zum großen Teil, dazu das PDF zu verkleinern. Kannst du mal ein paar raussuchen, und dann in ein script hauen:

Code: Alles auswählen

 gs -o /dev/null -sDEVICE=pdfwrite -c "currentpagedevice {exch ==only ( ) print == } forall"
Von da:
http://stackoverflow.com/questions/1100 ... 3#11002313

pdftk ist im übrigen ein Aufsatz für gs, der ausdrücklich die Optionen so setzt, das die Konversion schnell geht und dafür größere Dateien in Kauf nimmt.
Im normalfall ist schonbei standardoptionen ordentlich Kompression drin.
rot: Moderator wanne spricht, default: User wanne spricht.

Kermit24
Beiträge: 311
Registriert: 29.04.2006 14:44:39

Re: pdf Dateien verkleinern

Beitrag von Kermit24 » 23.09.2013 18:41:39

Eine PDF ist im Grunde nur ein Containerformat, dass alle möglichen Grafikformate enthalten kann.

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Re: pdf Dateien verkleinern

Beitrag von peschmae » 03.10.2013 13:21:03

Noch etwas mehr am Thema vorbei: willst du wirklich jbig2 verwenden - nach dem was da in letzter Zeit bezüglich Xerox-Kopierer die Runde machte, würde ich davon eher Abstand nehmen.

Jpeg2k und ähnliches ist natürlich eine andere Geschichte...

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

wanne
Moderator
Beiträge: 7581
Registriert: 24.05.2010 12:39:42

Re: pdf Dateien verkleinern

Beitrag von wanne » 04.10.2013 14:13:15

Eine PDF ist im Grunde nur ein Containerformat, dass alle möglichen Grafikformate enthalten kann.
Das ist eben falsch. PDF ist wie PS ne schöne Beschreibungssprache für Vektorgrafiken. Man kann auch png oder JPEG einbinen. Die sind aufgrund ihrer Eigenschaften als Rastergrafiken bei gleicher Qualität meist viel größer.

Hier mal ein Beispiel: ftp://wanne.t-8ch.de/stuff/swpdf
Das jpg ist am größten das pdf am kleinsten trotzdem hat das pdf bei weitem die beste Qualität. (Die Unterschiedlichen auflösungen kommen daher dass die rastergrafiken einfach nicht mehr vernünftig aussehen, wenn man sie bei gleicher Auflösung zu vergleichbaren Dateigrößen komprimiert.)

BTW: Bis auf ein kleines festes offset komprimieren turingvollständige Sprachen wie ps oder pdf immer am besten. Beweis: Was anderes besser komprimiert kann man das einbetten. Sobalt sich an einer stelle was anderes lohnt kann man das nehmen.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Re: pdf Dateien verkleinern

Beitrag von peschmae » 05.10.2013 11:40:35

@wanne: ich glaube das ist ihm schon klar, aber das Ausgangsmaterial ist schon ein (halt nicht sondelrich gut komprimiertes) Rastergrafik-PDF... (auch wenn er das jetzt nicht explizit so schreibt)

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

Kermit24
Beiträge: 311
Registriert: 29.04.2006 14:44:39

Re: pdf Dateien verkleinern

Beitrag von Kermit24 » 08.10.2013 13:57:09

So ist es. Ich kann ja ein vorhandenes Papierdokument schlecht als Vektorgrafik einscannen (ja, ich weiß, dass es auch Vektorisierungs-Software gibt. Im Automatikbetrieb machen die bei komplexen Vorlagen aber keine guten Resultate, bzw. wenn doch, dann ist die Vektorgrafikdatei i.d.R. größer als die Ausgangsrastergrafik).

Um es präziser zu formulieren. Ich suche ein Programm, dass alle Rastergrafiken einer vorhandenen PDF entsprechend nach jbig2/jpeg2000 konvertiert.
Das Problem bei Xerox war doch nur ein Bug in deren jbig2-Umsetzung, bzw. betraf auch nur sehr kleine Zahlen/Buchstaben, die ein Normalsterblicher nur mit Lupe lesen kann.

Antworten