Pdftk: la herramienta para manipular archivos "pdf"

pdftk es una herramienta que nos permite manipular archivos con formato pdf.

Posee una muy buena colección de acciones que podremos ejecutar sobre este tipo de documentos, entre las cuales podemos mencionar:

  • Unir documentos
  • Separa documentos
  • Encriptar y desencriptar documentos
  • Generar reportes de un documento
  • Reparar archivos pdf (donde sea posible)
  • Descomprimir archivos pdf
  • Restaurar la compresión de un documento pdf
  • Rotar hojas en un documento
  • Agregar marcas de agua a documentos

    A continuación explicaré algunas de estas.

    Línea de comando


  • Para unir dos documentos diferentes podemos ejecutar lo siguiente desde la consola:
    pdftk archivo1.pdf archivo2.pdf cat output salida.pdf

  • Tambien podemos unirlos utilizando etiquetas:
    pdftk A=archivo1.pdf B=archivo2.pdf cat A B output salida.pdf

  • Y por supuesto podemos usar comodines:
    pdftk *.pdf cat output salida.pdf

  • Para separar páginas de varios documentos y crear un documento nuevo con estas hacemos lo siguiente:
    pdftk A=uno.pdf B=dos.pdf cat A1-7 B1-5 output salida.pdf

  • Otro ejemplo con un solo documento:
    pdftk A=archivo1.pdf cat A1-12 A14-end output salida.pdf

  • Para encriptar con una clave de 128 bits (opción por defecto) y restringir todos los permisos (opción por defecto):
    pdftk archivo.pdf output archivo_encriptado.pdf owner_pw foopass

  • Para encriptar igual que el caso anterior pero asignando una contraseña "miclv" que permite abrir el archivo de salida:
    pdftk archivo.pdf output archivo_encriptado.pdf owner_pw foo user_pw miclv

  • Igual que el caso anterior pero con permiso de impresión:
    pdftk archivo.pdf output archivo_encriptado.pdf owner_pw foo user_pw miclv allow printing

  • Para desencriptar:
    pdftk asegurado.pdf input_pw foopass output inseguro.pdf

  • Para repara un archivo pdf:
    pdftk corrupto.pdf output arreglado.pdf

  • Para descomprimir un archivo pdf para su posterior edición en algún editor de texto:
    pdftk midoc.pdf output midoc_desc.pdf uncompress

  • Para separar cada una de las páginas del documento:
    pdftk in.pdf burst

  • Para generar un reporte del documento:
    pdftk archivo.pdf dump_data output reporte.txt


    Nautilus


    Hay dos scripts que podemos crear para poder usarlos desde el menú emergente dentro de Nautilus, el primero es para separar una por una cada página del documento y el segundo para crear un documento partiendo de varios archivos pdf.

    Vamos a crear el primer script, para ello generamos un documento de texto que llamaremos pdftk_burst que contendrá el siguiente código:

    #!/bin/bash
    cd ${1%/*}
    /usr/bin/pdftk "$1" burst
    rm doc_data.txt

    Guardamos y cerramos el archivo.

    Ahora crearemos el segundo script, abrimos un documento de texto vacío el cual llamaremos pdftk_cat y escribiremos lo siguiente en este:

    #!/bin/bash
    cd ${1%/*}
    outfile="00out.pdf"
    if [ -f $outfile ] ; then
    rm -f $outfile
    fi
    /usr/bin/pdftk *.pdf cat output $outfile

    Guardamos y cerramos.

    Le asignamos permisos de ejecución al usuario:
    chmod u+x pdftk_burst pdftk_cat

    (Si así lo deseamos podemos mover los archivos creados a alguna carpeta desde donde los ejecutaremos)

    Lo siguiente que debemos hacer es escoger un documento pdf cualquiera y hacer click con el botón derecho sobre este, seleccionamos Propiedades y nos vamos a la pestaña Abrir con, hacemos click en Añadir y luego en Usar un comando personalizado. Al examinar, buscamos la ruta donde hemos guardado los archivos y escogemos pdftk_burst. Repetimos el proceso para pdftk_cat.

    Ahora al hacer click con el botón derecho sobre algún(nos) documento(s) pdf nos mostrará en el menú emergente las opciones de separar y unir que hemos creado (el archivo de salida para pdftk_cat será .

    Para mas información sobre la herramienta pdftk (otras funciones y ejemplos) les recomiendo como siempre leer el manual.
    man pdftk
  • Comentarios

    Anónimo dijo…
    Saludos!!

    Estoy tratando de usar el pdftk pero me encuentro con un inconveniete al generar al fdf, pues hay algo que no entiendo> cuando genero el fdf que se supone que deba colocar en los Fields, si se que el nombre de cada Field seguido de su valor, se la sintaxis lo que no se es COMO saber cual es el NOMBRE de cada Field en la planilla..

    Gracias
    David Hernandez dijo…
    Creo que debes generar el archivo fdf con la siguiente sintaxis:

    pdftk original.pdf generate_fdf output salida.fdf

    Luego revisas el archivo generado (salida.fdf) para conocer el nombre de los "campos".
    David Hernandez dijo…
    Si no salen los nombres de los campos es porque el archivo es sólo para ver/imprimir.

    Pero todavía se puede editar usando flpsed o gimp.
    Germán Camilo dijo…
    Si están utilizando Thunar en cambio de Nautilus:
    En -configure custon actions- añaden una nueva llamada PDFmerge o lo que quierna, y en el comando escriben esto:
    pdftk %F output %f.pdf
    y yap...
    luego seleccionan los .pdfs que quieran unir, click derecho y encontraran la acción, la corren y su nuevo .pdf se llamar agual que el primer archivo pero con doble extencion... xxx.pdf.pdf
    supongo que se puede mejorar pero a mi me funciona así.
    exitos

    Entradas populares