El formato PDF (Portable Document Format), es ya un estándar mundial. La primera razón es que probablemente sí cumpla con lo que dicen sus siglas, es decir, es portable a muchas plataformas. Cabe decir que se requieren lectores de PDF para todas ellas, pero parece que esto ya no es un problema. Existen multitud de aplicaciones que permiten leer este tipo de documentos.
Hasta donde recuerdo, cuando Adobe (el inventor del formato) mostró por vez primera este tipo de documentos, decidió por una parte, dar gratuitamente el lector de este tipo de archivos, el cual se encuentra normalmente instalado en la mayoría de las computadoras. Sin embargo, Adobe tenía una herramienta llamada PDF Distiller, el cual permitía crear y manipular los archivos PDF. Entre sus funciones estaba la de mantener la apariencia impresa de los documentos, el poder impedir que los usuarios copiaran el texto fácilmente, el usar marcas de agua etcétera. Distiller se convirtió en parte de los manejadores de impresoras y hoy día ya ha sido desplazado por el componente PDF Generator, por parte de Adobe.
La utilidad y uso de los PDF ha hecho que otros programadores se dediquen a producir herramientas para el manejo de estos documentos. Ahora tenemos PDFBox, una herramienta escrita en Java, de código abierto, que fue liberada por Apache.
Así pues, Apache PDFBox es una biblioteca de Java que puede usarse para crear y editar documentos PDF y para extraer el contenido de los mismos para uso externo, entre otras capacidades. Se pueden poner firma digitales, imprimir y validar archivos contra el estándar de PDF/A-1b. Hay también una serie de programas de apoyo que trabajan vía la línea de comandos, que pueden ser usadas para encriptar o desencriptar, convertir textos a PDF, depurar, insertar y hacer incluso los archivos PDF como imágenes.
PDFBox fue creado originalmente en el 2002 por Ben Litchfield. Fue un proyecto del «Apache Incubator» en el 2008 y se convirtió en un proyecto de nivel superior en el 2009. La última versión mejora el render y la extracción de textos. Ofrece soporte para UNICODE en la creación de PDFs y tiene mejor soporte para formas interactivas. Tiene una interesante función, que permite intentar «auto-curarse» tratando de recuperar un archivo PDF corrupto o formado de forma errónea. Otras mejoras tienen que ver con el uso de memoria, por ejemplo.
Así pues, si anda tras una serie de rutinas para manipular PDFs y trabaja con Java, probablemente usar PDFBox sea una de las mejores ideas.
Referencias: