Skip to content

填写表单域

使用代码获取 PDF 文档中的表单域并在表单域中填写内容。

由于表单是特殊的注释类型,继承自注释类。所以对注释的接口也同样适用于表单。

使用代码填写表单域的步骤如下:

  1. 从 CPDFDocument 中获取想要填写表单的页面对象。
  2. 获取页面对象中的所有注释。
  3. 遍历所有注释,找到需要填写的表单。
  4. 根据需求修改表单填写内容。

以下是填写表单域的示例代码:

java
CPDFDocument document = new CPDFDocument();
document.open(pdfPath);

for (int i = 0; i < document.getPageCount(); i++) {
  CPDFPage page = document.pageAtIndex(i);
  for (CPDFAnnotation annotation : page.getAnnotations()) {
    switch (annotation.getType()) {
      case WIDGET:
        CPDFWidget cpdfWidget = (CPDFWidget) annotation;
        switch (cpdfWidget.getWidgetType()) {
          case Widget_TextField:
            CPDFTextWidget textWidget = (CPDFTextWidget) cpdfWidget;
            textWidget.setText("test");
            textWidget.updateAp();
            break;
          case Widget_RadioButton:
            CPDFRadiobuttonWidget radiobuttonWidget = (CPDFRadiobuttonWidget) cpdfWidget;
            radiobuttonWidget.setChecked(true);
            radiobuttonWidget.updateAp();
            break;
          case Widget_ListBox:
            CPDFListboxWidget listBoxWidget = (CPDFListboxWidget) cpdfWidget;
            listBoxWidget.setSelectedIndexes(new int[]{0});
            listBoxWidget.updateAp();
            break;
          default:
            break;
        }
        break;
      default:
        break;
    }
  }
}