使用PDFBOX填充PDF表单中的多个字段,并在填充后锁定pdf文档的编辑

时间:2019-07-26 20:17:20

标签: pdfbox

我是PDF BOX的新手,需要在PDF表单中填写信息,该表单具有部分和字段名称:

PDF表单包含

的信息

NAME 和框来填充信息

地址 和框来填充信息

城市 框填充信息。

如果我有姓名,地址和城市信息,如何使用pdf框将其填写到pdf表单中。

使用了PDFbox中的示例,acroForm仅填充示例字段,如何在特定字段中填充特定信息。

填充后如何将其锁定。

String formTemplate =“ C:/FillFormField.pdf”;

      PDDocument pdfDocument = PDDocument.load(new File(formTemplate))

        // get the document catalog
        PDAcroForm acroForm = pdfDocument.getDocumentCatalog().getAcroForm();

        // as there might not be an AcroForm entry a null check is necessary
        if (acroForm != null)
        {
            // Retrieve an individual field and set its value.
            PDTextField field = (PDTextField) acroForm.getField( "sampleField" );
            field.setValue("Text Entry");

            // If a field is nested within the form tree a fully qualified name
            // might be provided to access the field.
            field = (PDTextField) acroForm.getField( "fieldsContainer.nestedSampleField" );
            field.setValue("Text Entry");
        }

        // Save and close the filled out form.
        pdfDocument.save("C:/FillFormField.pdf");

当前没有错误,以上代码可用于填充一些垃圾字段。

需要使用名称信息用框信息准确填写名称                          带框信息的地址和地址信息

2 个答案:

答案 0 :(得分:0)

我可以使用PDFBOX中的PDF调试器来做到这一点。

使用CMD提示获取文件的结构

java -jar pdfbox-app-1.8.10.jar PDFDebugger yourfile.pdf

请从apache PDF框中获取上述jar文件。

看到结构后,找到字段名称。

答案 1 :(得分:0)

出于我锁定的目的,我不需要使用加密方法。因此使用了Acroform Flatten PDF方法。

// flatten()方法将PDF保存为只读     acroForm.flatten();