首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PDFBox无线功能中的无效选项

PDFBox无线功能中的无效选项
EN

Stack Overflow用户
提问于 2020-07-25 01:50:07
回答 1查看 67关注 0票数 0

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

代码语言:javascript
复制
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,我会得到这样的结果:

代码语言:javascript
复制
FieldType: Button
FieldName: rad2
FieldFlags: 49152
FieldJustification: Left
FieldStateOption: 0
FieldStateOption: 1
FieldStateOption: Off
FieldStateOption: Yes

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

我使用的是pdfbox 2.0.20

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-25 11:48:40

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63078950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档