Skip to content

PDF 生成模板编辑器

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

查看 GitHub
Guides

Reader 状态与界面回调

ComPDF Flutter SDK 通过 CPDFReaderWidget 提供 阅读器级回调。你可以使用这些回调处理查看器生命周期和 UI 事件。

可用回调

回调触发时机返回值
onCreatedReader 和 Controller 准备完成CPDFReaderWidgetController controller
onPageChanged当前页面变化int pageIndex
onSaveCallbackReader 完成保存;主动保存请以相关 API 的 Future<bool> 为准无返回值
onFillScreenChanged全屏状态变化bool isFillScreen
onTapMainDocAreaCallback用户点击 PDF 主页面区域无返回值
onPageEditDialogBackPress用户点击页面编辑弹窗返回按钮无返回值
onIOSClickBackPressed点击 iOS Reader 左上角返回按钮无返回值
onSearchBackButtonTappedCallback用户点击搜索界面返回按钮无返回值
onAddWatermarkDialogDismissedCallback添加水印弹窗关闭无返回值

示例

dart
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 状态或刷新水印相关控件。