单选按钮域由一组相关的按钮组成,每个单选按钮具有两种状态:开启或关闭。需要注意的是,单个单选按钮不能直接关闭,只能通过选择同一组中的其他按钮来切换状态。通常情况下,一组单选按钮(作为某个单选按钮域的子域标注)在任意时刻最多只能有一个按钮处于选中状态;选择其中一个按钮会自动取消同组中其他按钮的选中状态。这组按钮共享相同的域名称,当获取该单选表单域的值时,只会返回当前被选中按钮的导出值。
实现步骤
第一步:获取PDF文档对象
var pdfdoc = await pdfui.getCurrentPDFDoc();
第二步:获取文档的表单对象(表单域集合)
var forms = await pdfdoc.loadPDFForm();
console.log(`当前文档中存在 ${forms.fields.length} 个表单域。`);
第三步:获取指定名称的表单域对象
var Field_Type = ["Unknown","PushButton","CheckBox","RadioButton","ComboBox","ListBox","Text","Sign","Barcode"];
/* PDF.form.constant.Field_Type
{
"Unknown": 0,
"PushButton": 1,
"CheckBox": 2,
"RadioButton": 3,
"Text": 6,
"ListBox": 5,
"ComboBox": 4,
"Sign": 7,
"Barcode": 8
} */
var isRadio = false;
for (let i = 0; i < forms.fields.length; i++) {
console.log(`第${i}个表单域 的类型是:${Field_Type[forms.fields福昕PDF SDK 软件开发工具包 > 福昕PDF SDK(Web).getType()]},名称是:${forms.fields福昕PDF SDK 软件开发工具包 > 福昕PDF SDK(Web).getName()},值是:${forms.fields福昕PDF SDK 软件开发工具包 > 福昕PDF SDK(Web).getValue()}`);
if (forms.fields福昕PDF SDK 软件开发工具包 > 福昕PDF SDK(Web).getType() === PDF.form.constant.Field_Type.RadioButton) {
isRadio = true;
}else{
isRadio = false;
continue;
}
for (let j = 0; j < forms.fields福昕PDF SDK 软件开发工具包 > 福昕PDF SDK(Web).controls.length; j++) {
let control = forms.fields福昕PDF SDK 软件开发工具包 > 福昕PDF SDK(Web).controls[j];
if (isRadio) {
console.log(`第${j+1}个单选按钮的导出值是:${control.info.exportValue}`);
console.log("坐标是:", control.widget.getRect());
}
console.log("页码是:", control.widget.page.getIndex());
}
}
完整代码实现:
async function getExportValueOfRadioButtons(){
var pdfdoc = await pdfui.getCurrentPDFDoc();
var forms = await pdfdoc.loadPDFForm();
console.log(`当前文档中存在 ${forms.fields.length} 个表单。`);
var Field_Type = ["Unknown","PushButton","CheckBox","RadioButton","ComboBox","ListBox","Text","Sign","Barcode"];
/* PDF.form.constant.Field_Type
{
"Unknown": 0,
"PushButton": 1,
"CheckBox": 2,
"RadioButton": 3,
"Text": 6,
"ListBox": 5,
"ComboBox": 4,
"Sign": 7,
"Barcode": 8
} */
var isRadio = false;
for (let i = 0; i < forms.fields.length; i++) {
console.log(`第${i}个表单域 的类型是:${Field_Type[forms.fields福昕PDF SDK 软件开发工具包 > 福昕PDF SDK(Web).getType()]},名称是:${forms.fields福昕PDF SDK 软件开发工具包 > 福昕PDF SDK(Web).getName()},值是:${forms.fields福昕PDF SDK 软件开发工具包 > 福昕PDF SDK(Web).getValue()}`);
if (forms.fields福昕PDF SDK 软件开发工具包 > 福昕PDF SDK(Web).getType() === PDF.form.constant.Field_Type.RadioButton) {
isRadio = true;
}else{
isRadio = false;
continue;
}
for (let j = 0; j < forms.fields福昕PDF SDK 软件开发工具包 > 福昕PDF SDK(Web).controls.length; j++) {
let control = forms.fields福昕PDF SDK 软件开发工具包 > 福昕PDF SDK(Web).controls[j];
if (isRadio) {
console.log(`第${j+1}个单选按钮的导出值是:${control.info.exportValue}`);
console.log("坐标是:", control.widget.getRect());
}
console.log("页码是:", control.widget.page.getIndex());
}
}
}
通过上述代码,您可以遍历PDF文档中的所有表单域,特别关注单选按钮类型,并获取每个单选按钮的导出值、坐标位置以及所在页码信息。