Skip to content
ComPDF
Guides

填写表单域

ComPDF 支持通过代码向 PDF 文档中的表单字段填充内容。

填充表单字段的步骤如下:

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

  2. 从页面对象中检索所有表单控件。

  3. 遍历所有表单,找到需要填充的字段。

  4. 根据需要修改表单字段的内容。

以下示例演示如何填充表单字段:

获取 CPDFReaderView 对象

tsx
const pdfReaderRef = useRef<CPDFReaderView>(null);

<CPDFReaderView
  ref={pdfReaderRef}
  document={samplePDF}
  configuration={ComPDFKit.getDefaultConfig({})}
  />

const pageIndex = 0;
// 获取第一页的页面对象
const cpdfPage: CPDFPage = pdfReaderRef?.current?._pdfDocument.pageAtIndex(pageIndex);

// 获取当前页面上的所有表单控件
const widgets = await page?.getWidgets();

修改文本域内容

tsx
const textWidget = widgets[0] as CPDFTextWidget;
// 设置文本字段内容为 "Hello World"
await textWidget.setText('Hello World');
textWidget.update({
  text: 'Hello World'
});
await pdfReader?._pdfDocument?.updateWidget(textField);

修改单选按钮选中状态

tsx
const radioButtonWidget = widgets[0] as CPDFRadiobuttonWidget;
// 设置单选按钮为选中状态
radioButton.update({
  isChecked: true,
});
await pdfReader?._pdfDocument?.updateWidget(radioButton);

修改复选框按钮选中状态

tsx
const checkBox = widget as CPDFCheckboxWidget;
checkBox.update({
  isChecked: false,

});
await pdfReader?._pdfDocument?.updateWidget(checkBox);

签名域表单添加电子签名

tsx
const signatureWidget = widgets[0] as CPDFSignatureWidget;
// Android 支持的 URI 格式:
const signImagePath = 'content://media/external/images/media/123';
// 或使用文件路径:
const signImagePath = '/path/to/image';
const signResult = await pdfReader?._pdfDocument.addSignatureImage(signImagePath);
if (signResult) {
  await pdfReader?._pdfDocument.updateAp(signatureWidget);
}