sábado, 16 de septiembre de 2017

Extract page from pdf and convert to png


Extreure la pàgina que volem:
$ pdftk Caminant.pdf cat 1 output p1.pdf

Convertir-ho al que convingui, aquí en jpg
$ convert -units PixelsPerInch -density 300 p1.pdf p1_300.jpg

Si volem extreure totes les pàgines:
$ pdftk Caminant.pdf burst
Això ens crea un fitxer pg_xxxx.pdf per cada pàgina i un fitxer resum del que hi havia al pdf original
Ara, per convertir totes les pàgines de cop, podem fer:
for file in pg_*.pdf ; do convert -units PixelsPerInch -density 300 "$file" "${file%.*}.jpg" ; done 

Combinació de pdftk i de convert en una línia:

$ pdftk A=filein.pdf cat A14  output - | convert -density 96 - fileout.png

Els guions substitueixen els noms que hi hauria:

  • A pdftk faríem ... output output.pdf.
  • A convert faríem convert ... filein.pdf fileout.png
I ara per extreure-ho i convertir-ho en un nou PDF, per si el PDF original té problemes de fonts o qualsevol altre problema.
Aquí es fa a 96 dpi, però es pot fer a més resolució, si interessa.

$ pdftk A=POG.pdf cat A14  output - | convert -density 96 - - | convert - pag14.pdf

Això es pot fer automatitzat
NPAGES=$(pdfinfo $1 | grep Pages | awk '{print $2}')

echo $NPAGES

for i in $(seq $NPAGES); do
  echo Processing page $i
  echo Generating "FILE$i".png
  pdftk  A=$1 cat "A$i" output - | convert -density 96 - "__FILE$i".png
done