PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Riesige PDFs verkleinern


Simon
2010-08-30, 08:29:31
Hallo,

auch wenn es nicht direkt Linux-spezifisch ist, so stehen mir doch hauptsächlich Linux-Tools dafür zu Verfügung: Ich hab hier mehrere 600-Seiten PDFs, die allerdings alle um die 200-250MiB groß sind. Und genau das ist das Problem: Die Files sind viiiel zu groß. Daneben hab ich ähnlich lange PDFs, die kaum 50MiB sind.

Wie komm ich jetzt also von 250MiB auf 50MiB? =)

Bin für alle Hinweise dankbar :)

Ganon
2010-08-30, 09:16:08
Imagemagick?

Mit "convert" kannst du quasi alles machen :D

Pinoccio
2010-08-30, 09:28:57
jPdf tweak (http://jpdftweak.sourceforge.net/) hat im Output Tab eine Option Optimize PDF size, vielleicht hilft die.
Falls die riesige Größe von eingebetteten Bildern herrührt, kann man auch mit Ghostscript in niedrigerer Auflösung speichern.

mfg

Simon
2010-08-30, 09:43:59
jPdf tweak (http://jpdftweak.sourceforge.net/) hat im Output Tab eine Option Optimize PDF size, vielleicht hilft die.
Mhm, mal schauen. Ich hatte mit pdf2ps und wieder zurück mit ps2pdf und der Size-Option gearbeitet. Zusammen mit Kompression bringt das 5-7% kleinere Dateien ;(

Avalox
2010-08-30, 09:46:47
Mhm, mal schauen. Ich hatte mit pdf2ps und wieder zurück mit ps2pdf und der Size-Option gearbeitet. Zusammen mit Kompression bringt das 5-7% kleinere Dateien ;(

Warum sind den die Dateien so groß? Sind gigantische Bitmaps enthalten?

Man kann mit Boardmitteln (Ghostscript) die Dateien resamplen.

Hier ein Script, welches dieses macht.

http://www.mactricks.de/de/Software/Linux-System/pdf-verkleinern/

Simon
2010-08-30, 09:58:23
Warum sind den die Dateien so groß? Sind gigantische Bitmaps enthalten?
Ja, das weiß ich nicht ganz sicher. Die PDFs sind allerdings zu 80% Text (denk ich). Wobei ich auch keine Ahnung hab, wie ich das überprüfen soll...

pdf2html versaut leider die Image-Links und die gesamte Struktur.


Man kann mit Boardmitteln (Ghostscript) die Dateien resamplen.

Hier ein Script, welches dieses macht.

http://www.mactricks.de/de/Software/Linux-System/pdf-verkleinern/
Mhm, 5-10% leider nur.


Imagemagick?

Mit "convert" kannst du quasi alles machen :D
Und wohin konvertier ich dann?

Ganon
2010-08-30, 10:46:33
Na wieder nach PDF. Welche Optionen du brauchst, kann ich dir leider nicht sagen. Wenn ich große PDFs hatte, dann lag es meist daran, dass sie eine brutal hohe Auflösung hatte. Hier hilft -density. Wenn du viele Bitmaps eingebunden hast, hilft die JPEG-Komprimierung.

Sind es denn "richtige" PDFs, oder A4-Bitmaps im PDF Format? D.h. woher stammen die Daten? Von einem Scanner?

Wenn ja, dann hilft vllt. auch eine Konvertierung zu einem 1Bit TIF-Format.

Deine Möglichkeiten hängen nunmal leider von deinen PDFs ab :D Sonst finde erst mal raus was deine PDFs so groß macht.

Odal
2010-08-30, 11:00:23
ich vermute mal das es (bei der Grösse) Scans sind d.h. kein Text sondern Text in Form von Bildern im PDF
ausser die Auflösung derer zu ändern (resultiert in merklich schlechterer Lesbarkeit falls man eine deutliche Verkleinerung erzielen möchte) bleibt nur noch das PDF bzw. dessen Inhalt durch eine gute OCR software zu jagen und wieder PDFs daraus zu machen

Eine gute OCR Software für Linux such ich auch gerade btw. ;)

Avalox
2010-08-30, 11:06:20
Eine gute OCR Software für Linux such ich auch gerade btw. ;)

Da gibt es eine extrem gute OCR Software für Linux
Ist aber eine kommerziell Engine. Eben Finereader.
http://www.abbyy.com/ocr_sdk_linux/overview/

Ansonsten gibt es ja mit Tesseract die Engine, welche Google für den Google Book Internetdienst nutzt und entwickelt, eben als Opensource.

http://code.google.com/p/tesseract-ocr/


Ich denke es gibt für beide(und einige mehr) auch PDF Frontends.

Acid-Beatz
2010-08-30, 11:09:13
Ich würds einfach mal komprimieren, sollte gut gehen und alles ist noch da wo es "sein soll"

Greez

Simon
2010-08-30, 12:40:01
Also das PDF ist:

doc1.pdf[431] PDF 612x792 612x792+0+0 16-bit Bilevel DirectClass 26.37MB 0.060u 0:00.019
Anscheinend ist das schon komprimiert, denn 431 * 26 MiB ~= 11 GiB.

Und kommt von PDFCreator (http://sourceforge.net/projects/pdfcreator/) aus einem komplexen Word-Dokument. Das ganze ist Dokumentation mit recht vielen Bildern und (für mich) etwas komplexen Layout. Die Original-Word Dokumente haben wir natürlich nicht mehr :|

Wenn ja, dann hilft vllt. auch eine Konvertierung zu einem 1Bit TIF-Format.
Umwandlung nur in Grau würde gehen, aber ich brauch doch die Abstufungen. Aber:


Konvertieren und Auflösung ändern mit Imagemagick bringt:
Error: /ioerror in --showpage--
Operand stack:
1 true
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1878 1 3 %oparray_pop 1877 1 3 %oparray_pop 1861 1 3 %oparray_pop --nostringval-- --nostringval-- 170 1 432 --nostringval-- %for_pos_int_continue --nostringval-- --nostringval-- 1761 0 9 %oparray_pop --nostringval-- --nostringval--
Dictionary stack:
--dict:1162/1684(ro)(G)-- --dict:1/20(G)-- --dict:75/200(L)-- --dict:75/200(L)-- --dict:108/127(ro)(G)-- --dict:290/300(ro)(G)-- --dict:22/25(L)-- --dict:6/8(L)-- --dict:21/40(L)--
Current allocation mode is local
Last OS error: 28
GPL Ghostscript 8.71: Unrecoverable error, exit code 1
convert: Postscript delegate failed `doc1.pdf': 174J.cache @ error/pdf.c/ReadPDFImage/638.
convert: missing an image filename `doc.pdf' @ error/convert.c/ConvertImageCommand/2940.
convert -density 250x250 -compress lzw -colorspace RGB head.pdf 49.39s user 4.03s system 80% cpu 1:06.43 total
Das gleiche für "Gray" als Color Space. Die einzige Lösung dafür, die ich bisher über Google finde konnte, war den Color Space auf RGB zu ändern :|

Tesseract bzw. OCRopus hat einen Bug auf 64 Bit Systemen:

ocroscript: unicharset.cpp:76: const UNICHAR_ID UNICHARSET::unichar_to_id(const char*, int) const: Assertion `ids.contains(unichar_repr, length)' failed
Und Tesseract 3 zu kompilieren hab ich im Moment keine Lust zu.

Ich würds einfach mal komprimieren, sollte gut gehen und alles ist noch da wo es "sein soll"
Ja, das war natürlich das erste was ich gemacht hab: 7Zip und bzip (beide maximale Kompression) bringen mein 120MiB PDF auf 118MiB.


Diesen Artikel über OCR Engines (http://www.linux-magazin.de/Heft-Abo/Ausgaben/2009/03/Nachlese) versuch ich später mal. Erstmal was essen ;)


Vielen Dank an alle, die sich beteiligen! =)

Odal
2010-08-30, 15:21:41
ich glaube die beste (komerzielle) Lösung für OCR wäre ein Windows Finereader mittles Wine zum laufen zu bringen

die derzeitige Linux (ubuntu 10.04 64bit) lösung hier fürs archivieren von scans in PDF ist scan mittels sane dann tesseract bzw. tesseract-deutsch->ocropus (mit den zusätzen leptonica und openfst) und das ganze wird mit der neusten version von gscan2pdf aufgerufen die ocropus aufrufen kann

tesseract allein macht leider aus jeder vorlage reinen fliesstext sprich es gehen sämtliche layoutinformationen verloren

per ocropus wird zwar noch versucht ein rudimentäres layout beizubehalten aber das ganze ist recht dürftig

auch ist die texterkennung von tesseract sehr dürftig

ich glaube eine rein linux basierte lösung für gutes OCR (sei es als directscan oder images/PDF) relativ variabler dokumente (bzgl. layout) gibts leider nicht