使用PDFBox填写PDF表格

时间:2011-07-28 14:46:57

标签: c# pdf pdfbox pdf-form

我有一张带有表格的pdf。我正在尝试编写一个类,它将从我的数据库中获取数据并自动填充表单中的字段。

我已经尝试过ITextSharp并且他们的定价超出了我的预算,即使它与我的pdf完全一致。我需要一个免费的pdf解析器,它可以让我导入pdf,设置数据,并将PDF保存到流中,最好是一个流,这样我就可以从我的类中返回一个Stream对象而不是将pdf保存到服务器。

我找到this pdf reader但它不起作用。空引用错误很多,当我试图“修复”它们时,它仍然无法找到我的字段。

所以,我已经转到了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来改变字段值并将其保存回去?

修改

我确实找到this example,这正是我正在做的事情。只是我的acroform在pdfbox中为null。我知道那里有一个,因为itextsharp可以很好地解决它。

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用1.2.1版本?

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