Skip to content
ComPDF
Guides

预定义表单域

预定义表单域允许您设置默认的表单属性,以便在创建新表单域时自动应用这些属性。您可以通过 CPDFConfigurationCPDFReaderWidgetController 来设置预定义表单域属性。

以下是如何设置预定义表单域属性的示例:

通过 CPDFConfiguration 设置预定义表单域属性

dart
CPDFReaderWidget(
  document: widget.documentPath,
  configuration: CPDFConfiguration(
        formsConfig: const CPDFFormsConfig(
      initAttribute: CPDFFormAttribute(
        textFieldAttr: CPDFTextFieldAttr(
          fillColor: Colors.lightBlue,
          borderWidth: 10,
          fontSize: 20,
          borderColor: Colors.pink,
          fontColor: Colors.white,
          alignment: CPDFAlignment.right,
          familyName: 'Times',
          styleName: 'Bold'
        ),
        checkBoxAttr: CPDFCheckBoxAttr(
          fillColor: Colors.lightBlue,
          borderWidth: 8,
          borderColor: Colors.pink,
          checkedColor: Colors.deepOrange,
          isChecked: true,
          checkedStyle: CPDFCheckStyle.circle
        ),
        radioButtonAttr: CPDFRadioButtonAttr(
            fillColor: Colors.lightBlue,
            borderWidth: 8,
            borderColor: Colors.pink,
            checkedColor: Colors.deepOrange,
            isChecked: true,
            checkedStyle: CPDFCheckStyle.circle
        ),
        listBoxAttr: CPDFListBoxAttr(
          fillColor: Colors.lightBlue,
          borderWidth: 8,
          borderColor: Colors.pink,
          fontColor: Colors.white,
          familyName: 'Academy Engraved LET',
          styleName: 'Plain',
          fontSize: 20
        ),
      )
    )
  );

更多表单域可预定义的属性请参考 CPDFFormAttribute 类的定义。

通过 CPDFReaderWidgetController 设置预定义表单域属性

dart
// 获取当前定义的表单域默认属性
CPDFFormAttribute defaultFormStyle = await controller.fetchDefaultWidgetStyle();
// 修改默认属性
// 修改文本域属性
    final textFieldAttr = defaultAttr.textFieldAttr.copyWith(
      fillColor: Colors.lightGreen,
      borderColor: Colors.deepOrange,
      borderWidth: 5,
      fontColor: Colors.black,
      fontSize: 20,
      alignment: CPDFAlignment.center,
      multiline: true,
      familyName: familyName,
      styleName: styleName,
    );

    await controller.updateDefaultWidgetStyle(textFieldAttr);

更多可修改的属性请参考各表单域属性类的定义,例如 CPDFTextFieldAttrCPDFCheckBoxAttr 等。