Skip to content
DemoAPI 参考文档FAQ

PDF 生成模板编辑器

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

查看 GitHub
Guides

注释历史管理

CPDFAnnotationHistoryManager 类用于管理当前文档中注释的编辑历史,提供撤销与重做功能,支持对注释的添加、修改、删除等操作进行回退或恢复。

获取注释历史管理器

你可以通过 CPDFReaderView 获取 CPDFAnnotationHistoryManager 实例:

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

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

const historyManager = pdfReaderRef.current?._annotationsHistoryManager;

设置历史状态变更监听器

调用 setOnHistoryStateChangedListener() 设置监听器,以便在注释历史状态变化时(如用户新增或撤销注释)收到通知:

tsx
historyManager?.setOnHistoryStateChangedListener((canUndo, canRedo) => {
  // 根据是否可以撤销或重做更新界面。
});

判断是否可以撤销或重做

使用以下方法判断当前是否存在可撤销或可重做的操作:

tsx
const canUndo = await historyManager?.canUndo();
const canRedo = await historyManager?.canRedo();

这些方法返回布尔值,表示是否存在对应的历史记录。

执行撤销和重做操作

若存在可撤销或重做的历史记录,可调用以下方法进行操作:

tsx
await historyManager?.undo(); // 撤销上一步注释操作
await historyManager?.redo(); // 重做上一步被撤销的注释操作