Utilizamos principalmente el estupendo PDFTK (The PDF ToolKit), aunque para algunas cosas nos apoyamos en ImageMagick (para el comando convert), qpdf, gocr, gs:
# aptitude install pdftk imagemagick qpdf gocr
Trabajando solo en formato PDF
Extraer paginas de un pdf (como pdf)
$ pdftk file.pdf burst
Regenerar pdf completo (a veces si el archivo está corrupto lo arregla)
$ pdftk file.pdf output nuevo.pdf
Solo algunas páginas
$ pdftk file.pdf cat 3-5,8 output nuevo.pdf
Solo páginas (im)pares
$ pdftk file.pdf cat 1-5odd output nuevo.pdf
Invertir el orden de las páginas
$ pdftk file.pdf cat end-1 output nuevo.pdf
Unir diferentes archivos
$ pdftk file1.pdf file2.pdf cat output nuevo.pdf
Diferentes páginas de diferentes archivos
# Insertamos la página 2 del fichero B entre la página 2 y la página 3 del fichero A
$ pdftk A=file1.pdf B=file2.pdf cat A1-2 B2 A3-end output nuevo.pdf
Combinar páginas de dos archivos, uno de ellos de atrás adelante:
$ pdftk A=paginas_pares.pdf B=paginas_impares_al_reves.pdf shuffle A Bend-1 output escaneado_completo.pdf
Rotar PDFs
# S(outh) – 180% ; E(ast) 90%; W(est) 270%; N(orth) 0%
$ pdftk A=file1.pdf cat A1-endS output nuevo.pdf
En un pdf que contiene páginas giradas, será necesario rotar al Norte para que recuperen la orientación original.
Añadir marca de agua
$ pdftk fileIn.pdf background marca_agua.pdf output fileOut.pdf
Se recomienda que marca_agua.pdf sea del tamaño de las páginas del PDF (A4, letter…).
Si el pdf son imágenes, éstas taparán la marca de agua y no se verá. Por tanto solo es útil en pdfs con textos. La alternativa es el “sello”.
Añadir sello (stamp)
$ pdftk fileIn.pdf stamp sello.pdf output fileOut.pdf
Se recomienda que sello.pdf sea del tamaño de las páginas del PDF (A4, letter…).
El pdf se “estampará” como sello encima de las páginas del pdf. La alternativa es la marca de agua.
Modificar los datos de propiedades de un pdf (autor, fecha de modificación…)
$ pdftk fichero.pdf dump_data output propiedades.dat
$ vi propiedades.dat
$ pdftk fichero.pdf update_info propiedades.dat output fichero_mod.pdf
Desproteger PDF
$ qpdf –decrypt protected.pdf unprotected.pdf
Reducir tamaño de pdf
$ gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -sPDFSETTINGS=[setting] -sOutputFile=output.pdf input.pdf
Donde [setting] puede ser, de menor a mayor calidad: “/screen” “/ebook” “/printer” o “/prepress”
Trabajando con imágenes
Extraer paginas de un pdf (como imágenes)
$ convert -density 150 archivo.pdf img_%04d.tiff
Convertir imagenes en un pdf
$ convert *.tiff archivo.pdf
Extraer imágenes de un pdf
$ pdfimages -j file.pdf img
Trabajando con texto
Extraer texto de un pdf
$ pdftotext file.pdf
Convertir pdf en txt
$ pdftotext -layout fich.pdf fich.txt
Bonus: OCR desde imágenes
$ for x in $(ls img_*tiff); do gocr $x >> kk.txt; done
Trabajar con PDFs desde el prompt, edición de PDFs desde la línea de comandos