PDFBox 2.0 RC3 - 查找和替换文本

时间:2016-02-15 22:53:39

标签: java pdfbox

如何使用PDFBox 2.0查找和替换PDF文档中的文本,他们提取旧示例并且它的语法不再有效,所以我想知道它是否仍然可行,如果是的话最好的办法是。谢谢!

2 个答案:

答案 0 :(得分:6)

您可以尝试这样:

c:\Windows\installer

答案 1 :(得分:1)

我花了很多时间为此提出解决方案并最终获得Acrobat DC订阅,以便我可以创建字段作为要替换的文本的占位符。在我的案例中,这些字段用于客户信息和订单详细信息,因此数据不是很复杂,但文档中充满了与业务相关的条件,并且布局非常复杂。

然后我就这样做了,这可能适合你。

private void update() throws InvalidPasswordException, IOException {
    Map<String, String> map = new HashMap<>();
    map.put("fieldname", "value to update");
    File template = new File("template.pdf");
    PDDocument document = PDDocument.load(template);
    List<PDField> fields = document.getDocumentCatalog().getAcroForm().getFields();
    for (PDField field : fields) {
        for (Map.Entry<String, String> entry : map.entrySet()) {
            if (entry.getKey().equals(field.getFullyQualifiedName())) {
                field.setValue(entry.getValue());
                field.setReadOnly(true);
            }
        }
    }
    File out = new File("out.pdf");
    document.save(out);
    document.close();
}

YMMV