2011-07-28 51 views
5

Tengo un pdf con un formulario. Estoy intentando escribir una clase que tomará datos de mi base de datos y rellenará automáticamente los campos en el formulario.Use PDFBox para completar un formulario PDF

Ya he probado ITextSharp y su precio está fuera de mi presupuesto, aunque funciona perfectamente con mi pdf. Necesito un analizador de PDF gratuito que me permita importar el pdf, establecer los datos y guardar el PDF, preferiblemente en una secuencia para que pueda devolver un objeto Stream de mi clase en lugar de guardar el pdf en el servidor.

Encontré this pdf reader y no funciona. Los errores de referencia nulos son abundantes y cuando traté de "arreglarlos", todavía no podía encontrar mis campos.

Por lo tanto, he pasado a PdfBox, ya que la documentación dice que puede manipular un PDF, sin embargo, no puedo encontrar ningún ejemplo. Aquí está el código que tengo hasta ahora.

var document = PDDocument.load(inputPdf); 

var catalog = document.getDocumentCatalog(); 

var form = catalog.getAcroForm(); 

form.getField("MY_FIELD").setValue("Test Value"); 

document.save("some location on my hard drive"); 
document.close(); 

El problema es que catalog.getAcroForm() devuelve un nulo, por lo que no puede acceder a los campos. ¿Alguien sabe cómo puedo usar PdfBox para alterar los valores de campo y guardar la cosa de nuevo?

EDIT:

he encontrado this example, que es más o menos lo que estoy haciendo. Es solo que mi acroform es nula en pdfbox. Sé que hay uno allí porque itextsharp puede sacarlo muy bien.

Respuesta

Cuestiones relacionadas