本页内容
填写表单域
使用代码获取 PDF 文档中的表单域并在表单域中填写内容。
由于表单是特殊的注释类型,继承自注释类。所以对注释的接口也同样适用于表单。
使用代码填写表单域的步骤如下:
从 CPDFDocument 中获取想要填写表单的页面对象。
获取页面对象中的所有注释。
遍历所有注释,找到需要填写的表单。
根据需求修改表单填写内容。
以下是填写表单域的示例代码:
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]]) {
}
}
}