martes, 3 de julio de 2012

Crear PDFs a partir de imágenes (.jpg, .jpeg, gif)

Para convertir un grupo de imágenes .jpg en un pdf debemos contar con dos herramientas básicas pero muy poderosas como: pdftk y sam2p

¿Qué es pdftk?

pdftk o the pdf toolkit es una herramienta de código abierto multiplataforma para la manipulación de documentos PDF. pdftk es básicamente un front end de la librería iText(compilada a código nativo usando GCJ), capaz de dividir, combinar, cifrar, descifrar, descomprimir, recomprimir y reparar documentos PDF. Puede también ser utilizada para manipular marcas de agua, metadatos, o para llenar formularios PDF con datos FDF (Forms Data Format) o datos XFDF (XML Form Data).

¿Qué es SAM2P?

sam2p es una utilidad de línea de comandos UNIX escrito en ANSI C + + que convierte muchas tramas (mapa de bits) en formatos de imagen Adobe PostScript o PDF y otros formatos. Las imágenes no se vectorizan. sam2p da un control total para que el usuario especifique las normas de la condicionalidad, la compresión y bits profundidades. En algunos casos sam2p puede comprimir una imagen 100 veces más que PostScript. Sam2p ofrece ZIP, RLE y LZW (de), filtros de compresión, incluso a nivel de dispositivos PostScript.

Instalación de pdftk y sam2p


Para distribuciones basadas en Debian

$ sudo aptitude install sam2p
$ sudo aptitude install pdftk
$ sudo apt-get install sam2p
$ sudo apt-get install pdftk
Para Fedora

$ sudo yum install sam2p
$ sudo yum install pdftk


Para Opensuse
$sudo zypper in pdftk
Procedimiento:
  • Colocamos todas las imágenes en una carpeta ordenadas según la disposición que queramos para cada una de ellas. Por ejemplo: se pueden numerar desde la 001.jpg, 002.jpg, 003.jpg, ... Y guardadas todas en la Carpeta Ejemplo.
  • Abrimos un Terminal y nos dirigimos a la ubicación de la carpeta “Ejemplo”. Cd Escritorio/Ejemplo La ubicación varía según donde guardemos la carpeta contentiva del grupo de imágenes.
  • Una vez en la carpeta convertimos cada imagen en un archivo pdf con el comando:
    for f in $(ls *.jpg); do sam2p $f PDF: $f.pdf ; done

Y por cada imagen nos va a salir algo parecido a esto:This is sam2p v0.45-3.
Available Loaders: PS PDF JAI PNG JPEG TIFF PNM BMP GIF LBM XPM PCX TGA.
Available Appliers: XWD Meta Empty BMP PNG TIFF6 TIFF6-JAI JPEG-JAI JPEG PNM GIF89a+LZW XPM PSL1C PSL23+PDF PSL2+PDF-JAI P-TrOpBb.
sam2p: Notice: job: read InputFile: imagen001.jpg
sam2p: Notice: writeTTT: using template: p0jbb
sam2p: Notice: applyProfile: applied OutputRule #0
sam2p: Notice: job: written OutputFile: imagen001.jpg.pdf
Success.
La explicación de lo que hace nuestro programita bash es:
Cada resultado de ls *.jpg, es decir, cada imagen .jpg, se va almacenando en la variable f. Por cada imagen ejecutamos el comando
sam2p $f PDF: $f.pdf que convierte lo que hay almacenado en f en f.pdf. Es un bucle sencillo y muy útil.
  • Una vez hecho esto, ya tenemos varios pdfs cada uno con su correspondiente imagen. Ahora vamos a unirlos en un sólo pdf. Estando en Escritorio/Comic, escribimos en la terminal:
      pdftk *.pdf cat output miarchivo.pdf

  • En “miarchivo” colocan el nombre de su preferencia. Y, listo no debería presentarse ningún inconveniente.
Imágenes de Pantalla del Proceso:







Fuente:




1 comentarios: