linux-l: Grafik aus PDF trennen

Jens Dreger dreger at physik.fu-berlin.de
Mo Nov 1 22:03:54 CET 1999


> Hallo Jens,
> 
> bisher habe ich versucht, das pdf-file per convert in ein jpg
> umzuwandeln. Allerdings ist das Ergebnis nicht gerade
> berauschend. Der Text ist sehr "rasterig".
>
> > Mit xv direkt vom Bildschirm grabben geht natuerlich.
> 
> Das ist eine gute Idee. Ich wußte gar nicht, daß man mit xv
> grabben kann. Klappt wunderbar :)

Ja, aber da sitzt man dann da, und klickt herum... Ausserdem: hast Du
schon mal versucht, mit xv irgendwas zu grabben, was nicht auf den
Bildschirm passt ? Eben, das geht nicht, weil xv nicht uber den
Bildschirmrand schauen mag (sollte es da ein Mittel gegen geben, teile man
es mir bitte mir !).

Wenn Du das ganze pdf-file nach jpg wandeln willst, dann kannst Du doch
auf dieses einfache Kommando zurueckgreifen, wie ging das noch ?

Richtig, fuer farbige pdf's:

cat file.pdf | acroread -toPostScript -level2 | gs -r144 -dNOPAUSE \
-dGraphicsAlphaBits=4 -dTextAlphaBits=4 -sDEVICE=ppm -dQUIET \
-sOutputFile=- -dNOPLATFONTS -dSAFER - | perl -ne 'if(/P3$/) { $i++; \
open(O,"|cjpeg > $i.jpg"); print "Page $i\n"; } print O;'

Fuer Grayscale reicht:

cat file.pdf | acroread -toPostScript -level2 | gs -r144 -dNOPAUSE
-dGraphicsAlphaBits=4 -dTextAlphaBits=4 -sDEVICE=pgm -dQUIET
-sOutputFile=- -dNOPLATFONTS -dSAFER - | perl -ne 'if(/P2$/) { $i++;
open(O,"|cjpeg > $i.jpg"); print "Page $i\n"; } print O;'

Okok, man kann das auch einzeln machen, aber die temporaeren pgm/ppm Files
werden einfach _riesig_ (100MB+). Am besten, Du schreibst statt "file.pdf"
einfach mal Deine pdf-Datei, und kopierst das Ganze per cut-n-paste in
irgendein Fenster. Die Groesse der jpgs kannst Du beim -r144 veraendern
(resolution des gs-device, default ist 72). Ab -r200 braucht's schon etwas
Speicher, aber die Ergebnisse sehen (bei mir) sehr huebsch aus.

Wenn Du sowas wie psselect (psutils) hast und nur eine Seite brauchst,
tut's auch ein einfaches:

cat install.pdf | acroread -toPostScript -level2 | psselect 17 | \
gs -r144 -dNOPAUSE -dGraphicsAlphaBits=4 -dTextAlphaBits=4 -sDEVICE=pgm \
-dQUIET -sOutputFile=- -dNOPLATFONTS -dSAFER - | cjpeg > Page17.ps

Ich habe acroread fuer den pdf->ps Teil verwendet, weil gv manchmal mit
pdf's Probleme hat, mit denen acroread klaglos klarkommt...

gs -v => GNU Ghostscript 5.10 (1998-12-17)
acroread Version 3.0
libjpeg (fuer cjpeg) verion 6b 

Gruss,

Jens.


PS: Wenn jemand sich ueber das seltsame perl-Konstrukt totlacht, weil's
fuer sowas schon ein Programm gibt, sage er Bescheid...

________________________________________________________________________
Jens Dreger                     | Freie Universitaet Berlin
Cauerstrasse 35a                | Fachbereich Physik, WWW Administration
10587 Berlin                    | Arnimallee 14
Tel: (030)342-3616              | 14195 Berlin
Fax: (089)66617-10770           | Tel.: (030)838-4774




Mehr Informationen über die Mailingliste linux-l