Librería PDF

1.- Uso de la librería

Es una librería propia del proyecto AMD para ayudar a introducir las bandas de firma en un pdf.

Permite realizar modificaciones concretas sobre un documento (PDF, TIFF o imagen), para adecuarlo a los requisitos de la DGA sobre certificación y archivo a largo plazo de documentos.

Las modificaciones que se pueden realizar son:

  • Si el documento es un formulario, rellenar sus campos e incluirlos en los metadatos del documento.

  • Añadir marca de agua si el documento es de tipo borrador.

  • Añadir una banda en cualquier lado de la página, con un texto de firma (editable).

  • Añadir metadatos.

  • Insertar imágenes o textos a modo de sellos o firmas en cualquier página y en cualquier posición.

  • Paginar el documento.

La aplicación generará un documento de tipo PDF/A-1b.

Las clases configuradoras definen cómo se va a procesar el documento y qué elementos va a contener. Cuando se instancie un objeto de tipo PDFBasicGenerator, se pasará como parámetros dos objetos configuradores: uno de tipo PDFOptions y otro de tipo BandOptions.

1.1- PdfOptions

PDFOptions es la clase que define las propiedades del documento PDF: datos del formulario a rellenar, datos de la banda, estilo normal o borrador, paginación, orientación y tamaño de página, contraseña del documento original, imágenes a añadir al documento. Se pueden configurar algunos de los siguientes parámetros:

 

  • Password: Si el documento está protegido con contraseña, se podrá indicar la contraseña aquí. Si la contraseña es incorrecta, se lanzará una excepción de tipo ProtectedDocumentException.

  • values: Si el documento es un formulario, se pueden rellenar sus campos introduciendo un Map en esta variable, siendo el primer parámetro el nombre del campo y el segundo su valor. Estos también serán guardados en los metadatos del documento.

  • draft: Si se establece a "true", se añadirá una marca de agua "BORRADOR" en diagonal al documento.

  • pdfInfo: Para añadir una banda al documento, se crea un objeto de tipo PDFInfo y se introduce aquí. La banda contiene un texto editable.

  • textsToAdd: Se añadirán textos en cualquier parte y página del documento, instanciando objetos PDFText e insertándolos uno por uno en esta variable.

  • imagesToAdd: Se añadirán imágenes en cualquier parte y página del documento, instanciando objetos PDFImage e insertándolos uno por uno en esta variable.

1.2- BandOptions

BandOptions es la clase con la que se definen las propiedades de la banda y si el contenido del PDF debe escalarse una vez añadida la banda.

Si añadimos una banda al documento, se pueden configurar los siguientes parámetros:

  • bandSide: Especifica la ubicación de la banda en el documento: arriba, abajo (en horizontal), izquierda o derecha (en vertical). La opción por defecto es: BandOptions.LEFT.

  • draft: Añadirá el texto "Borrador" como fondo a lo largo de la banda.

  • textFont: Fuente del texto de la banda.

  • textSize: Tamaño del texto de la banda.

  • scaleContent: Indica si el contenido de la página se reducirá (y centrará) en el hueco disponible después de añadir la banda, o se dejará tal cual.

 

Para insertar una imagen en una posición y página del documento, se instancia un objeto PDFImage con los siguientes parámetros, y se introduce en el objeto PDFOptions con setImagesToAdd:

  • Imagen.

  • Posición.

  • Escalado.

Para insertar un texto en una posición y página del documento, se instancia un objeto PDFText con los siguientes parámetros, y se introduce en el objeto PDFOptions llamando al método setTextsToAdd:

  • Texto.

  • Tamaño.

  • Alineación.

1.3 Ejecución de PDFBasicGenerator

Para generar el documento PDF final, habrá que instanciar los siguientes objetos:

  • Un objeto de tipo PDFOptions.

  • Un objeto de tipo PDFInfo (opcional), para insertar una banda en el documento.

  • Uno de tipo BandOptions (opcional), para configurar los parámetros de la banda.

  • Uno o varios objetos de tipo PDFImage o PDFText (opcionales) para insertar imágenes y textos en el documento.

Se instancia un objeto de tipo PDFBasicGenerator con uno o dos parámetros, los objeto PDFOptions y BandOptions definidos anteriormente.

Por último, se llama al método generate(input), donde "input" es un String (una ruta de archivo), byte[] o InputStream con el documento, que puede ser de tipo PDF o TIFF, o bien una imagen JPEG, GIF, PNG o BMP, o una "Image" de tipo iText.

 

2. Versiones

Enlace a la última versión.