本页内容
注释历史管理
CPDFAnnotationHistoryManager
类用于管理当前文档中注释的编辑历史,提供撤销与重做功能,支持对注释的添加、修改、删除等操作进行回退或恢复。
获取注释历史管理器
你可以通过 CPDFReaderView
获取 CPDFAnnotationHistoryManager
实例:
tsx
const pdfReaderRef = useRef<CPDFReaderView>(null);
<CPDFReaderView
ref={pdfReaderRef}
document={samplePDF}
configuration={ComPDFKit.getDefaultConfig({
})}/>
const historyManager = pdfReaderRef._annotationsHistoryManager;
设置历史状态变更监听器
调用 setOnHistoryChangedListener()
方法设置监听器,以便在注释历史状态变化时(如用户新增或撤销了注释)收到通知:
tsx
pdfReader._annotationsHistoryManager.setOnHistoryStateChangedListener((canUndo, canRedo) => {
});
判断是否可以撤销或重做
使用以下方法判断当前是否存在可撤销或可重做的操作:
tsx
const canUndo = await _annotationsHistoryManager.canUndo();
const canRedo = await _annotationsHistoryManager.canRedo();
这些方法返回布尔值,表示是否存在对应的历史记录。
执行撤销和重做操作
若存在可撤销或重做的历史记录,可调用以下方法进行操作:
dart
await _annotationsHistoryManager.undo(); // 撤销上一步注释操作
await _annotationsHistoryManager.redo(); // 重做上一步被撤销的注释操作