Skip to content
DemoAPI 参考文档FAQ

PDF 生成模板编辑器

开源可视化 PDF 生成引擎,支持自定义模板,并提供面向开发者的 API,灵活构建文档生成流程。

查看 GitHub
Guides

自定义注释创建流程

以下 API 对 SDK 默认流程有不同影响:

流程 API

目标API对 SDK 默认行为的影响
被动得知注释已创建CPDFEvent.ANNOTATIONS_CREATED不改变默认行为。
用 React Native UI 替换签名、图片、图章、Link 或 Note 的默认创建弹窗onAnnotationCreationPrepared关闭对应自动弹窗后,应用必须完成或取消创建流程。
接管已有 Note 或 Link 的点击行为onInterceptAnnotationActionCallbackSDK 不再执行默认编辑或跳转行为。
接管指定表单字段的点击行为onInterceptWidgetActionCallbackSDK 不再执行该字段的默认行为。

接管注释创建流程

注释类型需要关闭的配置annotation 参数应用后续操作
CPDFAnnotationType.SIGNATUREautoShowSignPicker: falsenull选择图片后调用 prepareNextSignature()
CPDFAnnotationType.STAMPautoShowStampPicker: falsenull选择图章后调用 prepareNextStamp()
CPDFAnnotationType.PICTURESautoShowPicPicker: falsenull选择图片后调用 prepareNextImage()
CPDFAnnotationType.LINKautoShowLinkDialog: false已创建的 CPDFLinkAnnotation设置 action 后调用 _pdfDocument.updateAnnotation();取消时移除该注释。
CPDFAnnotationType.NOTEautoShowNoteEditDialog: false已创建的 CPDFNoteAnnotation设置 content 后调用 _pdfDocument.updateAnnotation();取消时移除该注释。
tsx
const configuration = ComPDFKit.getDefaultConfig({
  annotationsConfig: {
    autoShowSignPicker: false,
    autoShowStampPicker: false,
    autoShowPicPicker: false,
    autoShowLinkDialog: false,
    autoShowNoteEditDialog: false,
  },
});

签名、图章和图片在回调触发时尚未添加到页面:

tsx
await pdfReaderRef.current?.prepareNextSignature(signaturePath);
await pdfReaderRef.current?.prepareNextImage(imagePath);
await pdfReaderRef.current?.prepareNextStamp({
  standardStamp: CPDFStandardStamp.APPROVED,
});

Link 和 Note 在回调触发时已经添加到页面。修改 JavaScript 对象不会自动写回 PDF,必须显式调用 updateAnnotation()removeAnnotation()。完整 Note 确认和取消流程参见创建注释

拦截已有注释的操作

annotationsConfig 中将 interceptNoteActioninterceptLinkAction 设为 true。启用后,应用需要在 onInterceptAnnotationActionCallback 中完成 Note 编辑、网页链接或页面跳转。若只想观察点击而不替换默认行为,不要开启拦截。

拦截表单字段操作

formsConfig.interceptFormWidgetActions 中只列出需要自定义处理的 CPDFWidgetType。修改返回的 CPDFWidget 后,调用 pdfReaderRef.current?._pdfDocument.updateWidget(widget)。只有当应用实现了全部表单字段行为时,才使用 interceptAllFormWidgetActions: true