我有一个包含表格的pdf文件。我正在尝试编写一个类,该类将从我的数据库中获取数据并自动填充表格字段。
我已经尝试过ITextSharp,但他们的定价超出了我的预算,即使它可以完美地处理我的pdf文件。我需要一个免费的pdf解析器,让我导入pdf、设置数据并保存PDF,最好是保存到流中,这样我就可以从我的类返回Stream对象,而不是将pdf保存到服务器上。
我找到了这个pdf阅读器,但它不起作用。空引用错误很多,当我试图“修复”它们时,它仍然无法找到我的字段。
所以,我转向了PdfBox,因为文档说它可以操作PDF,但我找不到任何示例。以下是我目前的代码。
问题在于
编辑:
我找到了这个示例,它几乎就是我正在做的事情。只是我的acroform在pdfbox中为null。我知道它存在,因为itextsharp可以很好地提取它。
我已经尝试过ITextSharp,但他们的定价超出了我的预算,即使它可以完美地处理我的pdf文件。我需要一个免费的pdf解析器,让我导入pdf、设置数据并保存PDF,最好是保存到流中,这样我就可以从我的类返回Stream对象,而不是将pdf保存到服务器上。
我找到了这个pdf阅读器,但它不起作用。空引用错误很多,当我试图“修复”它们时,它仍然无法找到我的字段。
所以,我转向了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中为null。我知道它存在,因为itextsharp可以很好地提取它。