【问题标题】:PDFBox invalid option in radio收音机中的 PDFBox 无效选项
【发布时间】:2020-11-14 15:17:33
【问题描述】:

尝试使用此代码填写此 pdf (http://vaielab.com/Test/2.pdf) 的表单时

PDDocument pdfDocument = PDDocument.load(new File("2.pdf"));
pdfDocument.setAllSecurityToBeRemoved(true);
PDDocumentCatalog docCatalog = pdfDocument.getDocumentCatalog();
PDAcroForm acroForm = docCatalog.getAcroForm();
if (acroForm != null) {             
    PDField field = (PDField) acroForm.getField("rad2");
    try {
        field.setValue("0");
    } catch (Exception e) {
        System.out.println(e);
    }
}
pdfDocument.save("output.pdf");
pdfDocument.close();

我收到此错误:值 '0' 不是字段 rad2 的有效选项,有效值为:[Yes] 和 Off

但是值“0”应该是一个有效的选项,如果我用 pdftk 做一个 dump_data_fields,我会得到这个:

FieldType: Button
FieldName: rad2
FieldFlags: 49152
FieldJustification: Left
FieldStateOption: 0
FieldStateOption: 1
FieldStateOption: Off
FieldStateOption: Yes

我也尝试了值“1”,但得到了完全相同的错误。

我正在使用 pdfbox 2.0.20

【问题讨论】:

    标签: java pdf-generation pdfbox acrofields


    【解决方案1】:

    这是因为Root/AcroForm/Fields/[7]/Opt 中的Opt 值,只有两个“是”条目。当设置/Opt 时,PDFBox 中的PDButton.setValue() 代码会以不同方式更新此字段。最好不要设置它,或者通过调用 field.setExportValues(null) 删除这些条目。那么有效的设置将是 0、1 和“关闭”。

    【讨论】:

    • 感谢您提供的信息。顺便问一下,你能告诉我你是用什么软件来得到这个图像的吗?再次感谢
    • PDFBox PDFDebugger 应用程序。从下载站点获取它:-)
    猜你喜欢
    • 2014-10-21
    • 2013-04-26
    • 1970-01-01
    • 1970-01-01
    • 2011-06-04
    • 2013-10-20
    • 2017-07-22
    • 2011-03-21
    相关资源
    最近更新 更多