PDF 生成模板编辑器
开源可视化 PDF 生成引擎,支持自定义模板,并提供面向开发者的 API,灵活构建文档生成流程。
ComPDF Flutter SDK 通过 CPDFReaderWidget 提供 阅读器级回调。你可以使用这些回调处理查看器生命周期和 UI 事件。
可用回调
| 回调 | 触发时机 | 返回值 |
|---|---|---|
onCreated | Reader 和 Controller 准备完成 | CPDFReaderWidgetController controller |
onPageChanged | 当前页面变化 | int pageIndex |
onSaveCallback | Reader 完成保存;主动保存请以相关 API 的 Future<bool> 为准 | 无返回值 |
onFillScreenChanged | 全屏状态变化 | bool isFillScreen |
onTapMainDocAreaCallback | 用户点击 PDF 主页面区域 | 无返回值 |
onPageEditDialogBackPress | 用户点击页面编辑弹窗返回按钮 | 无返回值 |
onIOSClickBackPressed | 点击 iOS Reader 左上角返回按钮 | 无返回值 |
onSearchBackButtonTappedCallback | 用户点击搜索界面返回按钮 | 无返回值 |
onAddWatermarkDialogDismissedCallback | 添加水印弹窗关闭 | 无返回值 |
示例
CPDFReaderWidget(
document: documentPath,
configuration: configuration,
onCreated: (controller) {
// 如后续需要注册监听事件,请保存 controller。
},
onPageChanged: (int pageIndex) {
debugPrint('当前页面: $pageIndex');
},
onSaveCallback: () {
debugPrint('Native Reader reported a successful save');
},
onFillScreenChanged: (bool isFillScreen) {
debugPrint('填充屏幕: $isFillScreen');
},
onTapMainDocAreaCallback: () {
debugPrint('点击了 PDF 主页面区域');
},
onPageEditDialogBackPress: () {
debugPrint('点击了页面编辑弹窗返回按钮');
},
onIOSClickBackPressed: () {
debugPrint('点击了 iOS 返回按钮');
},
onSearchBackButtonTappedCallback: () {
debugPrint('点击了搜索返回按钮');
},
onAddWatermarkDialogDismissedCallback: () {
debugPrint('添加水印弹窗已关闭');
},
);注意事项
CPDFReaderWidget 生命周期,不使用 removeEventListener()。onSearchBackButtonTappedCallback 适合在 Flutter 层管理搜索状态时使用。onAddWatermarkDialogDismissedCallback 会在添加水印面板关闭后触发,可用于恢复自定义 UI 状态或刷新水印相关控件。