@embedpdf/plugin-history

中文文档
3.2.0发布于 2026/11/12Apache-2.0TypeScriptESM + CJS近 30 天下载 171.6万

在文档的更改队列上创建的每个打开的文档撤消和重做:每次更改的取景器插件阶段都是一步,在等待时通过引用被撤销.

中文使用文档
文档目录4 节
  1. 设置
  2. 撤消和重做
  3. 当引擎回复时
  4. 对于插件作者

@embedpdf/plugin-历史

撤消并重做 EmbedPDF, 每张打开的文档有一段历史 通过查看器更改:移动、休整、删除或打入 说明, 以及插件所做的其他更改 .

一次行动会立即消失 即使它还在前往 发动机。 引擎通过引用来取消一个变化: 它保存一个记录什么 每个变化都做了,所以历史没有保存文件的副本,还有一部分 别人变了 一个人待着.

设置

import { annotationPlugin } from '@embedpdf/react/annotation';
import { historyPlugin } from '@embedpdf/react/history';

const plugins = [
  // ...stage, interaction, selection...
  annotationPlugin(),
  historyPlugin(), // { limit: 100 } steps by default
];

没有依赖性:它记录了该图上每个插件阶段的更改 文档的更改队列.

撤消和重做

import { useHistory, useHistoryState } from '@embedpdf/react/history';

const history = useHistory();
const { canUndo, canRedo, undoLabel } = useHistoryState();

<button disabled={!canUndo} onClick={() => history.undo()}>
  Undo
</button>;
  • 一步就是行动: 移动三个说明是一步,同样 在一个文本框中暂停一个打字段.
  • 标签是数据 : undoLabel 实值 { key: 'annotation.move', count: 3 }, (中文(简体) ), 用于您自己的翻译("Undo moving of 3 Notes").
  • 选择如下: 取消后,请在 如果动作仍然显示,则再次选择动作.

当引擎回复时

发生什么事历史
应用的撤销或重做onUndone({ label, redo, skipped })· ; skipped 算起后来有人改变的零件,这些零件被留下
引擎拒绝行动行动留下了历史;已经走在路上了,却一言不发
引擎拒绝撤销或重做onUndoFailed({ reason: 'refused', error }),该步骤又回到了后面:可以再次尝试
已经无法挽回了onUndoFailed({ reason: 'unavailable' })一步步走,前所未有
修改、平整、签名或形式修复两种堆叠都清楚:没有东西可以撤销
文件的新版本两堆都清空了
其他人更改文档没什么,他们的变化并不在你的历史, 发动机留下了他们自那以后的变化

对于插件作者

历史记录了插件的阶段 ctx.changes。给出每个更改 a 一个 undo 所以在引擎前画出一个反面 答复; history: false 保持一个变化; 持有这个构成一个步骤通过 一个 merge 键。 规则在 docs/conventions/state-and-sync.md。 。 。 .

版本与发布记录

@embedpdf/plugin-history 共发布 92 个版本,首次发布于 2025/07/07;过去 12 个月发布了 49 个版本。

版本发布日期距今
3.2.0latest2026/11/121 天前
3.1.02026/11/094 天前
3.0.02026/11/076 天前
3.0.0-next.23next2026/11/076 天前
3.0.0-next.222026/11/049 天前
3.0.0-next.212026/11/0310 天前

关于 @embedpdf/plugin-history 的常见问题

@embedpdf/plugin-history 是什么?

在文档的更改队列上创建的每个打开的文档撤消和重做:每次更改的取景器插件阶段都是一步,在等待时通过引用被撤销.

如何安装 @embedpdf/plugin-history?

在项目目录运行 npm install @embedpdf/plugin-history,或使用 pnpm add / yarn add / bun add。

@embedpdf/plugin-history 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@embedpdf/plugin-history 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@embedpdf/plugin-history 可以商用吗?

@embedpdf/plugin-history 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@embedpdf/plugin-history 的下载量有多少?

根据 npm 官方下载统计,@embedpdf/plugin-history 在 2026/10/14 – 2026/11/12 这 30 天内被下载 1,716,129 次,日均约 57,204 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@embedpdf/plugin-history 还在维护吗?

最新版本 3.2.0 发布于 2026/11/12(1 天前);至今共发布 92 个版本,其中过去 12 个月发布了 49 个;首次发布于 2025/07/07。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。