使用PDFBox填写PDF表单

本文关键字:表单 PDF 填写 PDFBox 使用 | 更新日期: 2023-09-27 18:03:55

我有一个pdf,里面有一个表单。我正试图编写一个类,将从我的数据库中获取数据,并自动填充表单中的字段。

我已经尝试过ITextSharp,他们的价格超出了我的预算,尽管它在我的pdf中工作得很好。我需要一个免费的pdf解析器,它可以让我导入pdf,设置数据,并将pdf保存出来,最好是保存到一个流,这样我就可以从我的类返回一个stream对象,而不是将pdf保存到服务器。

我找到了这个pdf阅读器,它不能工作。Null引用错误很多,当我试图"修复"它们时,它仍然找不到我的字段。

所以,我已经转移到PdfBox,因为文档说它可以操作PDF,但是,我找不到任何示例。以下是我目前编写的代码。

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();

问题是catalog.getAcroForm()返回null,所以我不能访问字段。有人知道我如何使用PdfBox来更改字段值并将其保存回来吗?

编辑:

我确实找到了这个例子,这就是我正在做的。只是我的acroform在pdfbox中为空。我知道这里有一个,因为itextsharp可以很好地把它拉出来

使用PDFBox填写PDF表单

你试过1.2.1版本吗?

http://pdfbox.apache.org/apidocs/overview-summary.html