2011-01-05 19 views
8

Estamos utilizando iText para rellenar automáticamente campos de formulario en una serie de documentos y luego concatenar esos documentos en un PDF resultante.Concatenar archivos PDF y conservar funciones ampliadas en Acrobat Reader

Adobe ha introducido la opción Extender funciones en Acrobat Reader para permitir a los usuarios de Acrobat Reader guardar el PDF con cambios en los campos del formulario.

Esta es una característica patentada de Adobe que iText solo puede funcionar.

He podido ejecutar el trabajo en torno a un documento específico utilizando la clase PdfStamper en modo de adición. Como los PDF contienen campos de formulario, usamos la clase PdfCopyFields para realizar la concatenación. PdfCopyFields no tiene un modo de agregar.

¿Hay alguna otra manera de hacer un apéndice de un PDF en un PDF preexistente con iText (cualquier versión)?

Respuesta

5

Es posible, pero es necesario que sepa lo suficiente para modificar PdfCopyFields para que se guarde en el modo de adición.

Puede duplicar la funcionalidad y usarla encima de PdfStamper (en su propia clase o de otro modo), la subclase PdfCopyFields, o modificar PdfCopyFields directamente.

Big Stumbling Block Todos los campos con el mismo nombre en un PDF también comparten el mismo valor. Si tiene dos copias del mismo formulario en su PDF resultante, entonces tiene dos vistas de la misma información.

Incluso con diferentes formas, si tiene una colisión de nombre ("Ciudad" aquí podría ser parte de una dirección actual, mientras que allí podría ser la ciudad en la que nacieron), se agitarán juntas el mismo valor

Si tiene un sistema integral tal que todas las colisiones de nombres serán deliberadas, eso es genial, vaya a por todas. Si "Nombre" siempre se está refiriendo a la misma persona, y al cambiarlo DEBERÍA cambiar el valor en todos los formularios en cuestión, estás dorado. Si no ... es por eso que la capacidad de aplanamiento de PdfStamper es tan popular.

La alternativa se convierte en "cambiar el nombre de todos sus campos antes de pegar los formularios juntos" para evitar tales colisiones.

Incluso con un sistema completo, sigo sugiriendo preparar una pequeña herramienta que vaya a través de los formularios que propone fusionar y buscar colisiones. Tal vez los liste junto con sus valores en algunos datos de prueba. Puede ver algo como "Volar: Casa, Común" vs "Volar: Southwest Airlines".

Probablemente no sea un ejemplo en particular, pero ¿quién sabe? ;)

+0

Gracias Mark. Para el problema de colisión de nombre de campo, simplemente agrego un postfijo a cada campo en función del recuento del documento adjunto. Funciona para nosotros –

Cuestiones relacionadas