pie pagina pagesize headerfooter generar examples example encabezado crear java forms pdf itext

pagina - itext java table examples



Cómo automatizar el llenado de formularios PDF en Java (2)

Estoy haciendo un desarrollo "pro bono" para una despensa de alimentos cerca de donde vivo. Están inundados de formularios y papeleo, y me gustaría desarrollar un sistema que simplemente lea datos de su servidor MySQL (que configuré para ellos en un proyecto anterior) y alimente datos en versiones PDF de todos los formularios que se requieren para llenar. Esto les ayudará enormemente y les ahorrará mucho tiempo, además de deshacerse de una gran cantidad de errores humanos que se producen al completar estos formularios.

Sin saber nada sobre las partes internas de los archivos PDF, puedo prever dos vías aquí:

  • Harder Way : es posible escanear un documento en papel, convertirlo en PDF y luego tener un software que "completa" el PDF simplemente diciendo "agregar texto excepto blah a las siguientes coordenadas (x, y) ..." ; o
  • Manera más fácil : la especificación de PDF ya permite la construcción de "campos" que se pueden completar; de esta manera, simplemente escribo un código que dice "agregar texto extraído blah al campo llamado * address_value * ...", etc.

Entonces mi primera pregunta es: ¿a cuál de las dos avenidas me estoy enfrentando? ¿El PDF tiene un concepto de "campos" o necesito "completar" estos documentos al decirle a la biblioteca PDF las coordenadas de píxeles de dónde colocar los datos?

En segundo lugar, obviamente necesito una biblioteca de código abierto (y Java) para hacer esto. iText parece ser un buen comienzo, pero he escuchado que puede ser difícil trabajar con él. ¿Alguien puede prestar algunas ideas o recomendaciones generales aquí? ¡Gracias por adelantado!


Consulte el capítulo sobre formularios interactivos en el libro electrónico gratuito The Best iText Questions on . Agrupa las respuestas a preguntas tales como:

O puede ver este video donde explico cómo usar los formularios para informar paso a paso.

Ver por ejemplo:

public void manipulatePdf(String src, String dest) throws DocumentException, IOException { PdfReader reader = new PdfReader(src); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest)); AcroFields fields = stamper.getAcroFields(); fields.setField("name", "CALIFORNIA"); fields.setField("abbr", "CA"); fields.setField("capital", "Sacramento"); fields.setField("city", "Los Angeles"); fields.setField("population", "36,961,664"); fields.setField("surface", "163,707"); fields.setField("timezone1", "PT (UTC-8)"); fields.setField("timezone2", "-"); fields.setField("dst", "YES"); stamper.setFormFlattening(true); stamper.close(); reader.close(); }