Skip to content

填写表单域

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

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

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

  1. 从 CPDFDocument 中获取想要填写表单的页面对象。

  2. 获取页面对象中的所有注释。

  3. 遍历所有注释,找到需要填写的表单。

  4. 根据需求修改表单填写内容。

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

swift
var document = CPDFDocument(url: URL(string: "filePath"))
let page = document?.page(at: 0)

if let annotations = page?.annotations as? [CPDFAnnotation] {
    for annotation in annotations {
        if let widgetAnnotation = annotation as? CPDFWidgetAnnotation {
            if let textWidget = widgetAnnotation as? CPDFTextWidgetAnnotation {
                textWidget.stringValue = "text"
            } else if let buttonWidget = widgetAnnotation as? CPDFButtonWidgetAnnotation {
                switch buttonWidget.controlType() {
                case .radioButtonControl:
                   
                    break
                case .pushButtonControl:
                   
                    break
                case .checkBoxControl:
                   
                    break
                default:
                    break
                }
            } else if let choiceWidget = widgetAnnotation as? CPDFChoiceWidgetAnnotation {
                
            }
        }
    }
}
objective-c
CPDFDocument *document = [[CPDFDocument alloc] initWithURL:[NSURL fileURLWithPath:@"filePath"]];
CPDFPage *page = [document pageAtIndex:0];

NSArray *annotations = [page annotations];
for (CPDFAnnotation *annotationz in annotations) {
    if([annotationz isKindOfClass:[CPDFWidgetAnnotation class]]) {
        CPDFWidgetAnnotation * annotation = (CPDFWidgetAnnotation *)annotationz;

        ((CPDFTextWidgetAnnotation*)annotation).stringValue = "text"
      } else if ([annotation isKindOfClass:[CPDFButtonWidgetAnnotation class]]) {
          if (CPDFWidgetRadioButtonControl == [(CPDFButtonWidgetAnnotation *)annotation controlType]{

          } else if (CPDFWidgetPushButtonControl == [(CPDFButtonWidgetAnnotation *)annotation controlType]) {

              }
          } else if (CPDFWidgetCheckBoxControl == [(CPDFButtonWidgetAnnotation *)annotation controlType]{

          }
      } else if ([annotation isKindOfClass:[CPDFChoiceWidgetAnnotation class]]) {

      }

  }
}