Skip to content
KongValleyPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

PDF 编辑器 操作手册

基于 Electron 的 Windows 桌面 PDF 阅读与标注编辑器。


1. 下载与启动

文件 说明
pdf-editor-green-<版本>-<平台>.zip 绿色版(唯一分发形式),免安装:解压到任意目录后双击其中的 PDF 编辑器.exe 即可运行

平台四种组合:Win7-32 位 / Win7-64 位 / Win10-32 位 / Win10-64 位。 下载地址:https://github.com/KongValley/PDFEditor/releases (建议选 Latest 一版)。 Win7 与 Win10 两套名称的构建内容相同(同为 Electron 22,仅按 32/64 位架构区分),两边的系统都可运行;32 位系统选 32 位包,64 位系统两种均可。

绿色版是整个程序目录的压缩包:解压后不要只拷 exe,整个目录一起移动;放到受限目录(如桌面受控、Program Files)时可能因权限无法写入配置。

Windows 7 前置要求:需 Windows 7 SP1,并按下表补齐补丁(内网机器若长期未更新,先补再装);内网分发的文件夹里已附带「前置补丁」子文件夹(32 位目录放 x86、64 位目录放 x64,含各 .msu 与《安装说明.txt》);从 GitHub 下载的机器按下表自行补装:

补丁 必要性 官方下载地址 作用
KB2533623 强烈建议 KB2533623 支持页(含 x86/x64 下载入口) 提供 DLL 安全加载 API(SetDefaultDllDirectories);缺失时应用按旧式加载运行,老系统若报「无法定位程序输入点…KERNEL32.dll」补装它即可
KB2670838 推荐 x86+x64 Windows 7 平台更新(DirectWrite 1.1);未装时页面文字可能渲染模糊
KB4490628 推荐 Update Catalog 维护堆栈(KB4474419 的前置),先装
KB4474419 推荐 Update Catalog SHA-2 代码签名支持;企业内网更新分发与签名校验链路需要

应用完全离线运行,不依赖网络与代码签名验证;补丁需按系统位数分别下载(分发目录中已按架构放好),Win10 及以上系统无此要求。

卸载:直接删除解压出来的整个目录即可。

可选:硬件加速。本应用默认关闭硬件加速(面向无 GPU 的内网机器与 32 位老机器,软件光栅更稳)。在装有独立显卡、显卡驱动正常的机器上,可用环境变量 PDF_EDITOR_HWACCEL=1 启动以启用硬件加速,渲染吞吐明显更高;若启用后出现黑屏或崩溃,去掉该变量即可恢复默认。

1.1 兼容性(Win7 / Win10 / 无 GPU)

系统基线:应用基于 Electron 22(内置 Chromium 108)——这是仍支持 Windows 7 的最后一代 Electron。Win7 需先装 SP1 与上表的前置补丁;Win7 与 Win10 两种构建内容相同,仅按 32/64 位区分。

字体依赖:文字批注与图章在保存时会嵌入一个中文字体到 PDF(便签只画图标、测量只写数字,都不需要字体),按顺序尝试 simhei.ttf(黑体)→ simkai.ttf(楷体)→ msyh.ttf(雅黑)。前两者是 Windows 基础字体,一般机器都有;精简版 / ghost 镜像可能缺失。缺失时保存会明确提示"系统缺少可嵌入的中文字体",文字批注与图章无法保存(图形类批注不受影响),请先安装黑体或楷体。查看本机是否找到字体:关于对话框的「环境自检」。

无 GPU 表现:默认软件光栅,不需要显卡驱动。物理内存 ≤ 4GB 的机器自动走"省内存"档:渲染并发降为 1、长图导出预算 96MB、打印的"高清"自动降为标准清晰度(会有提示)。需要更高吞吐时按上面的方式启用硬件加速。

排障入口:遇到"字体不对 / 打不开 / 很卡"时,打开工具栏「关于」→ 顶部的环境自检区块,里面有系统版本、架构、Electron/Chromium 版本、内存档位、渲染模式、中文字体、用户数据目录可写性,截图反馈即可定位。


2. 界面布局

┌───────────────────────────────────────────── 工具栏(两行) ──┐
│ 打开 图片转PDF 保存 另存为 导出图片 打印 | 撤销 重做 删除 | 视图旋转 搜索 关于 缩略图 侧栏 │
│ 选择 高亮 矩形 椭圆 画笔 箭头 测量 文字 便签 图章 图片                │
├── 缩略图栏 ──┬──────────── 主视图 ────────────┬── 右侧面板 ──┤
│ 全选/反选/清空│                              │ 注释 (n) / 大纲 │
│ 删除 提取 拆分│          PDF 页面            │                │
│ 导出 左旋 右旋│                              │ 属性 / 注释列表 │
│ 统一方向 空白页│                              │                │
│ 页码 水印 合并│                              │                │
├──────────────┴──────────────────────────────┴────────────────┤
│ 状态栏:文件名 | 后退/前进 翻页 ⟲⟳ 阅读视图 缩放 | 未保存 问题(n) 加密文档 │
└──────────────────────────────────────────────────────────────┘

图 1 界面总览

图 1:上排是文件、编辑、旋转与搜索操作,底部状态栏集中翻页、阅读视图与缩放控件,下排是 11 种注释工具;左侧缩略图栏管页面,右侧面板管注释与大纲。

  • 状态栏:左侧为文件名;右侧集中 后退 / 前进、上一页 / 下一页 + 页码输入框、连续 / 单页 / 双页阅读视图、缩放控件(− / 可输入百分比 + 常用比例菜单 / + / 实际大小 / 适合页面 / 适合宽度)与「未保存 / 加密文档」标记。
  • 状态栏「未保存」:有注释、表单或页面改动后出现,保存后消失。
  • 状态栏忙碌提示:保存 / 拆分 / 合并 / 打印 / 批量导出 / 页面操作(旋转、删除、插入、移动)/ 页码 / 水印进行中时显示当前操作(如「正在旋转页面…」「拆分中 文件 12/40,已输出 120 个」);此时相关按钮与快捷键入口置灰,重复点击会被拒绝而不是并发跑第二份。
  • 状态栏「问题」:保存 / 导出 / 打印 / 页面操作出现失败或非致命提示时,状态栏出现「问题 (n)」按钮,点开是明细(可重试、可复制),见第 9 节。
  • 未打开文档时:正文区显示「打开文件」「图片转 PDF」按钮与最近打开列表(最多 10 条,记录在用户数据目录,单击即按原路径打开并回到上次阅读页)。
  • 窗口标题:显示当前文件名,有未保存改动时追加 *(多开时可从任务栏区分)。
  • 状态栏「加密文档」:该文档为加密 PDF,保存行为见第 6 节。
  • 关于 / 开源许可:工具栏右侧「关于」按钮,显示当前版本号、环境自检(系统 / 架构 / 内存档位 / 中文字体 / 数据目录可写性)与随包附带的开源组件许可清单(Electron / Chromium 的完整声明见安装目录的 LICENSE.electron.txt 与 LICENSES.chromium.html);其中「运行日志」一行显示日志目录,可切换记录等级(信息 / 调试 / 关闭)或一键「打开日志文件夹」;Esc 或「关闭」退出。

图 2 未打开文档时的空状态

图 2:未打开文档时的正文区——「打开文件」「图片转 PDF」两个入口与「最近打开」列表(单击即回到上次阅读页)。

图 3 关于对话框

图 3:关于对话框——版本号、环境自检、运行日志目录与等级切换,以及随包的开源组件许可清单。


3. 打开与浏览

  • 打开:工具栏「打开」按钮 / Ctrl+O / 把 PDF 文件拖到窗口上。
  • 打开进度:大文档读取期间状态栏显示「正在读取文件 42%」(内网共享盘上几十 MB 的文件尤其明显),随后显示「正在读取页面信息 320/400」;未打开文档时正文区同样显示进度。此时不渲染空白页面,保存/打印等入口保持禁用,读完后自动进入阅读界面。读取阶段可点状态栏或正文区的「取消」中止本次打开(不报错、不影响已打开的文档)。
  • 加密 PDF:弹出密码框,输错会提示重新输入,取消则不打开该文件(当前已打开的文档不受影响)。
  • 翻页:状态栏上一页/下一页按钮、状态栏页码输入框(回车跳转)、缩略图点击、← → Home End PageUp PageDown。
  • 前进 / 后退:状态栏「后退 / 前进」按钮或 Alt+← Alt+→,按访问过的页码历史回退与前进(滚动/翻页停下约 0.7 秒记一条,最多 100 条;换文档后清空)。
  • 阅读位置:重新打开同一文件会自动回到上次阅读页(第 1 页除外),并提示「已回到上次阅读位置」。
  • 打印:工具栏「打印」或 Ctrl+P → 输入页码范围、选择清晰度(标准 ≈150dpi / 高清 ≈300dpi)、勾选是否包含注释 → 系统打印对话框(可选择任意已安装打印机,或选「Microsoft Print to PDF」输出 PDF);渲染时提示「正在渲染打印页面 x / N…」,每页按文档页尺寸整页输出。物理内存 ≤4GB 的机器会自动把高清降为标准清晰度并提示(高清单页位图约 33MB)。
  • 阅读视图:状态栏「连续 / 单页 / 双页」切换——连续阅读纵向滚动全部页面;单页阅览一次一页并居中显示(页面装得下时滚轮直接翻页,放大后滚到页底/页顶再滚即翻页);双页阅览每行两页(1-2 / 3-4 / 5-6),行内连续滚动,上一页/下一页与 PageUp PageDown 按整行步进。模式选择跨文档保留。慢机上双页并发渲染较多,页面渲染超时会自动退避重试;若连续重试仍失败,该页保持空白并在控制台记录(滚一下或切一下视图即可重试),不会显示成「看起来正常的空白页」。
  • 缩放:状态栏 + / −、可输入的百分比框(输入 25–400 后回车或失焦生效,非法输入回显当前值;点击自动全选)、常用比例菜单(▾,25%–300%,当前比例高亮)与 实际大小(1:1)/ 适合页面 / 适合宽度;Ctrl+滚轮 以光标为锚点缩放;范围 25%–400%;Ctrl+0 适合宽度。双页模式下适合页面 / 适合宽度按整行(摊开的两页)计算。
  • 平移:按住 空格 拖动,或按住鼠标中键拖动。
  • 视图旋转:工具栏左旋/右旋(仅改变屏幕显示方向,不修改文件)。当前页由竖变横或由横变竖时自动重新缩放,保证整页可见。
  • 页面旋转(修改页面本身,可撤销):三种入口 —— ① 缩略图栏「左旋 / 右旋」(勾选缩略图则作用于勾选页,否则当前页);② 状态栏 ⟲ / ⟳ 按钮旋转当前页;③ 在主视图页面或缩略图上右键弹出菜单(旋转 / 插入空白页 / 删除 / 提取 / 导出该页)。快捷键 [ / ] 旋转当前页。同样在当前页方向翻转时自动重新缩放(撤销旋转也会),180° 不换宽高故不调整。
  • 面板显隐:工具栏「缩略图」「侧栏」按钮,或 Ctrl+B / Ctrl+Shift+B。
  • 搜索:Ctrl+F 打开搜索栏,输入后回车搜索;命中最多 200 条、超出显示 + 号;Enter/F3 下一条,Shift+F3 上一条;命中在页面上以黄色高亮、当前命中为橙色。

图 4 打开进度与取消

图 4:大文档读取期间正文区显示「正在读取文件 x%」/「正在读取页面信息 x/N」与「取消」按钮,读完自动进入阅读界面。

图 5 加密 PDF 密码框

图 5:打开加密 PDF 时弹出密码框;输错会提示重新输入,取消则本次打开作废。

图 6 打印页码范围对话框

图 6:打印前选择页码范围、清晰度(标准 / 高清)与是否包含注释;「确定」后进入系统打印对话框。

图 7 双页阅览

图 7:双页阅览每行两页(1-2 / 3-4),状态栏的「双页」按钮高亮;上一页/下一页与 PageUp / PageDown 按整行步进。

图 8 页面右键菜单

图 8:在主视图页面或缩略图上右键,可直接旋转、插入空白页、删除、提取或导出该页。

图 9 搜索

图 9:输入关键词后 300ms 自动搜索,计数显示「当前命中 / 总命中」(如 1 / 9),页面上的命中会同步高亮并随 F3 滚动跳转。


4. 注释、表单与大纲

4.1 工具

图 10 注释工具

图 10:第二行按钮即全部注释工具;选「图章」时右侧会出现样式下拉框(已批准 / 作废 / 审核中 / 待复核 / 已归档 / 机密),当前生效的工具会高亮。

工具 用法
选择 单击选中;Shift 单击多选;拖动移动;拖动四角/边手柄缩放;方向键等翻页键不受影响
高亮 在文本层上划选文字自动贴合行;或在空白处拖拽框选
矩形 / 椭圆 拖拽绘制;线宽、颜色、透明度可调
画笔 按住拖动自由绘制,松开自动平滑简化
箭头 从起点拖到终点;端点可用圆点手柄调整
测量 拖拽测距离,标签显示 n mm;端点可调整
文字 单击放置后弹出输入框,Ctrl+Enter 或点击别处提交;内容为空会自动删除该注释
便签 单击放置黄色便签,双击可再次编辑内容
图章 先在工具栏下拉选图章样式(已批准 / 作废 / 审核中 / 待复核 / 已归档 / 机密),再在页面单击放置
图片 单击后选择 PNG/JPEG,插入到该位置;图片文件路径会被记录,重开文档时自动恢复

绘制类工具在画完后自动切回「选择」。按 Esc 可随时切回「选择」并关闭搜索栏。在「选择」工具下可直接拖选正文,出现蓝色选区后用 Ctrl+C 复制文本。

4.2 选中与属性面板

选中一条注释后,画布上出现蓝色控制框与 8 个缩放手柄,右侧「属性」面板可调整:

图 11 属性面板

图 11:选中文字注释后的状态——控制框可拖动/缩放,属性面板依次为颜色、透明度、字号、内容、层级(置底/下移/上移/置顶,按同页邻居自动禁用)、锁定与删除。

  • 颜色:8 色调色板。
  • 透明度:滑块 10%–100%。
  • 线宽:矩形/椭圆/画笔/箭头/测量可用。
  • 字号:文字/图章可用。
  • 内容:文字与便签可直接改文本(拖动滑块或连续输入期间不写历史,松手/失焦后合并为一条撤销记录)。
  • 层级:置底 / 下移 / 上移 / 置顶。层级只在同一页内比较,按钮会按当前同页邻居自动禁用。
  • 锁定:锁定后画布上不可拖动、缩放、双击编辑;属性面板仍可改样式或解锁。
  • 删除注释:删除当前选中的一条。

4.3 注释列表与调色板之外的操作

  • 右侧「注释」页签列出注释,可按当前页/全部页与注释类型筛选;单击定位并选中,Shift 单击多选,行尾 × 直接删除。
  • 剪贴板:Ctrl+C 复制、Ctrl+V 粘贴到当前页(偏移 12pt)、Ctrl+D 原地再制。
  • 框选提示:在「选择」工具下点击页面空白处会取消选中。

4.4 撤销与重做

  • Ctrl+Z 撤销、Ctrl+Y(或 Ctrl+Shift+Z)重做,按钮在工具栏。
  • 注释类操作最多保留 100 条历史;页面操作(删除/旋转/插入/移动/合并)最多保留 5 条,与主进程内存快照配对。
  • 超过 128MB 的大文档不记页面快照:此时做页面操作会提示「文档较大,该操作不可撤销」,请先另存备份。
  • 页面撤销/重做若失败(例如快照已被淘汰),会保留现场并提示,不会丢注释。

4.5 表单填写

打开带表单域的 PDF 时,字段位置会渲染成可编辑控件:文本框、复选框、单选按钮与下拉/列表(按字段类型),直接在页面上填写、勾选即可。

图 12 表单填写

图 12:表单域就地填写——文本框与勾选框直接作用在页面上;填写后状态栏出现「未保存」,保存时表单值与注释一起写回 PDF。

  • 字段值属于文档改动:状态栏出现「未保存」,Ctrl+S 保存时写回 PDF 本体;
  • 加密 PDF 与注释一样只写进同名 sidecar(xxx.pdfanno.json),见 6.1;
  • 覆盖层随缩放与滚动实时贴合页面,不会与注释或文本层错位。

4.6 大纲(书签)

右侧面板「大纲」页签列出 PDF 书签,按层级缩进、可折叠,单击行即跳到目标页。

图 13 大纲(书签)

图 13:大纲页签——书签按层级缩进,单击跳页;顶部「+ 书签」把当前页加为书签,行内 + / 改 / 删 分别添加子书签、重命名与删除(含子书签)。

  • 顶部「+ 书签」:把当前页添加为顶层书签;行内 + 添加指向当前页的子书签;
  • 改 行内重命名(Enter 提交、Esc 取消);删 弹出确认后删除该条及其子书签;
  • 改动计入文档「未保存」,保存时写进 PDF 大纲,其它阅读器同样可见;
  • 历史书签的目标页无法解析时会置灰并标注「目标页面无法解析」,不影响其它条目。

5. 页面管理(缩略图栏)

图 14 缩略图栏与页面操作

图 14:缩略图栏管页面——顶部「全选 / 反选 / 清空」与 11 个页面操作按钮;勾选页面后可对选中页批量左旋/右旋、删除;拖动缩略图即可调整页序。

工具栏两行,共 11 个按钮:

按钮 说明
删除 按页码范围删除(删完后可用 Ctrl+Z 撤销)
提取 按页码范围复制为新 PDF,原文档不变
拆分 打开批量拆分对话框(见 5.2)
导出 按范围导出:PDF / PNG 逐页多图 / PNG 拼接长图(见 6.3)
左旋 / 右旋 旋转页面自身(勾选缩略图 → 对勾选页;否则对当前页)
统一方向 分析全文并统一页面朝向(见 5.3)
空白页 在当前页之后插入一页同尺寸空白页
页码 按页码范围加页码(见 5.5)
水印 按页码范围加文字水印(见 5.4)
合并 打开合并对话框(见 5.1)

缩略图行首的复选框用于多选:顶部「全选 / 反选 / 清空」一次调整整批选中;勾选状态下,删除与左旋/右旋作用于勾选页,否则作用于当前页。

拖拽排序:直接拖动缩略图到目标位置即可移动页面,松开后按落点半区决定插入到目标页之前/之后。拖动中被拖的缩略图会变淡、目标位置显示蓝色插入线;拖到列表上/下边缘时列表会自动滚动,便于在长文档中跨页搬运。页面顺序变化后视图保持当前滚动位置(不会跳回顶部)。

5.1 合并对话框

图 15 合并对话框

图 15:第 1 行是当前文档(整份参与,始终勾选且不可取消);已追加文件用「包含」勾选是否参与合并,可各自指定页码范围并用 ↑ ↓ 调整顺序;输出名称、输出目录与「转换完成自动打开文件目录」都在下方设置。

  • 第 1 行是当前文档(始终参与、不可改范围,整份参与合并)。
  • 「+ 添加文件」追加其它 PDF;每行的「包含」勾选决定是否参与输出,取消勾选后不计入总页数;「移除选中」删除已勾选的文件行。每行可填输出范围(如 1-3,5),用 ↑ ↓ × 调整顺序或删除。
  • 至少保留当前文档 + 1 个勾选文件才能开始合并。
  • 输出目录:默认「PDF相同目录」,也可「选择目录…」;目录不存在会自动创建。
  • 输出名称:默认 <原文件名>-合并;重名自动改名(追加 -1、-2…),不会覆盖已有文件。
  • 转换完成自动打开文件目录:勾选后结束后打开输出所在目录。
  • 「开始合并」按钮会实时校验页码范围,无效时置灰。
  • 合并完成后编辑器会切到合并结果文件;Ctrl+Z 可撤销本次合并(含输出文件之前的编辑现场)。

5.2 拆分对话框

图 16 拆分对话框

图 16:每行一个文档,用「包含」勾选是否参与拆分,可分别选择「最大页数」或「页码范围」;下方统一设置输出目录、「包含注释」与「转换完成自动打开文件目录」。

  • 支持批量:当前文档 + 追加的其它 PDF,每行独立设置;每行「包含」勾选决定是否参与本次拆分,全部取消后「开始拆分」置灰。
  • 「移除选中」删除已勾选的行(当前文档行也可移除)。
  • 拆分方式:
    • 最大页数:填「输出范围」(1-based 闭区间)+「每个文档包含页数」,按固定页数切块;
    • 页码范围:填 1-3,5-7,按连续段切块(逗号分隔的连续段各自成文件)。
  • 输出目录:同上,默认 PDF 相同目录,可另选或新建。
  • 包含注释:默认勾选(见第 6 节说明)。
  • 转换完成自动打开文件目录:勾选后结束后打开首个输出所在目录。
  • 每行「输出范围」无效会红框提示且「开始拆分」置灰;单个文件失败不会中断其它文件,失败提示会带文件名与原因。
  • 进度与停止:点击「开始拆分」后对话框切换为进度视图(已处理文件数 / 总文件数,已输出文件数);点「停止」会在下一个文件边界停下,已经写出的文件保留,可继续用剩余文件重新发起。
  • 输出文件名 <原名>-1.pdf、-2.pdf…,重名自动追加 -1(-1-1.pdf)。

5.3 统一页面方向

扫描仪进纸异常时,扫描件里会有零星几页方向与其它页不一致(有的横着、有的竖着,甚至上下颠倒)。 缩略图栏「统一方向」用于把这类页面统一过来 —— 它只改页面的旋转信息,不重新生成页面内容,因此无损、可秒级完成、可用 Ctrl+Z 撤销。

点「统一方向」后:

  1. 先定基准:以全文多数页的朝向为准(近方形页不参与判断);横向页与纵向页数量相同时不做任何修改并提示「无法判定基准方向」。

  2. 再核对内容:逐页判断内容是正立、横躺还是倒置 ——

    • 有可选文字的页:读文字基线角度,连横躺的页该转 90° 还是 270° 都能算准(转错方向会把它转成倒置);页面框本来就在基准方向、内容却横躺的页同样会被认出来并转正(转正后页面框随之翻转);
    • 纯图片扫描件(没有文字层):先交给离线 OCR(内置 Tesseract 的整页方向检测,不联网、无需额外安装)—— 密排的表格/图页上墨迹分不出横竖,OCR 读文字排布才是唯一还判得准的手段;
    • OCR 也识别不出来时(置信度不足、页面几乎没有正文),退回全篇行墨迹剖面共识:把每页缩成 ≤160px 的小图,与其它页的剖面比较,判断横躺的页该往哪边转、以及页面框已经对了的页是否内容上下颠倒或横躺。

    因此真正的横向页不会被误伤:像宽表格、图纸这类"页面横着、内容相对页面是正的"页,会被标为「页面方向不同,内容与页面一致」并默认不转。

  3. 逐页确认:弹出的对话框列出每个待调整页,给出页码、当前朝向、判定原因(内容横躺 / 内容倒置 / 按 OCR 识别的内容方向 / 无法判定内容方向)与建议角度,每页都能单独勾选并选择 不转 / 90° / 180° / 270°;底部有「全选」「全部不转」。确认后「应用」一次完成,算作一次页面操作(一次撤销)。

耗时:纯文字文档几乎瞬时;扫描件按页取像,含 OCR 时每页约 0.5–0.8 秒(14 页扫描件实测整轮约 6 秒,分析期间可在对话框看到「正在分析页面方向…」)。若某页始终判不出来,直接在该行手动指定角度即可 —— 漏判只是保持原样,不会改动页面。

图 17 统一页面方向对话框

图 17:逐页列出待调整页、判定原因与建议角度;每页可单独勾选并改角度,「应用」一次性完成(算作一次页面操作,可 Ctrl+Z 撤销)。

5.4 水印

缩略图栏「水印」在指定页叠一行文字水印(写下的是真实页面内容,可撤销)。

图 18 水印对话框

图 18:水印对话框——页码范围留空 = 全部页,文字、字号、不透明度、角度与颜色可调,勾选「铺满页面」则平铺整页。

  • 页码范围留空表示全部页;非法范围会红框提示且「确定」置灰;
  • 文字水印默认「机密」、45°、不透明度 0.15,适合做内部流转标记;
  • 确认后写入页面内容(不是批注对象),需要移除时用 Ctrl+Z 撤销。

5.5 页码

缩略图栏「页码」给指定页加页码(同样是写入页面内容的正式内容)。

图 19 页码对话框

图 19:页码对话框——页码范围、编号格式(1 / 1 / N / 第 1 页 / 第 1 页 / 共 N 页)、起始页码、位置(页眉/页脚,居中或右侧)、字号与边距;底部实时显示样例。

  • 起始页码支持与正文页码对齐(例如正文从第 5 页开始编 1);
  • 位置可选页脚居中 / 页脚右侧 / 页眉居中 / 页眉右侧;边距为距页边的点数;
  • 样例行随设置实时刷新;确认后页码写入页面内容,可 Ctrl+Z 撤销。

6. 保存与导出

6.1 保存

  • 保存(Ctrl+S):直接写回当前文件路径。
  • 另存为(Ctrl+Shift+S):弹保存对话框,默认路径为当前文件(同目录同名),请按需改名,避免覆盖原文件。
  • 提取 / 导出的保存对话框默认名会自动避让重名(如 xxx-提取-1.pdf)且定位在当前文档目录,不会覆盖已有文件。
  • 原子写入:先写临时文件再替换,中途失败(磁盘满、被占用等)原文件保持完好。
  • 保存前会先把画布上正在编辑的文字内容并入文档,不会漏掉最后一次编辑。
  • 保存过程中的非致命提示(图片文件丢失、单条批注画不出来等)会汇总成一条消息并打印到控制台;缺中文字体不属于此类 —— 它会让本次保存直接失败并弹出可读原因,免得中文批注被静默丢弃(纯英文/数字的文字批注不受影响)。

注释的存储方式(重要)

  • 明文 PDF:注释写入 PDF 批注对象(/Annots + 外观流),因此
    • 用 Adobe Reader、Edge/Chrome、Foxit 等其它阅读器打开能看到注释;
    • 删除、修改后再保存不会叠加、不会残留鬼影;
    • 同一文件重复保存体积稳定。
    • 同名 sidecar 文件 xxx.pdfanno.json 仍会生成,但其中 annotations 为空,只保留表单值。
  • 加密 PDF:无法改写原文件,注释与表单值只保存到 sidecar 文件 xxx.pdfanno.json,保存后会提示这一点(明细在「问题」面板里)。请把 sidecar 与 PDF 放在一起再拷贝/分发。

图 20 加密文档保存提示

图 20:加密 PDF 保存后状态栏出现「加密文档」;保存说明(批注与表单值仅写入同名 sidecar、PDF 未重写)汇总为一条提示,明细在「问题」面板,可复制转发。

  • 旧版本文件:此前版本把注释「烘焙」进页面内容的文件,重开时若存在 sidecar,注释会恢复为可编辑对象、下次保存起转为真实批注对象;但页面上已经烘焙进去的旧痕迹无法移除(仅影响这类历史文件,新文件不会再有此问题)。

6.2 PDF 导出

  • 提取(缩略图栏)与导出 → PDF:把页码范围复制成新的 PDF(保存对话框确认路径);原文档不受影响。
  • 删除(缩略图栏)是修改当前文档;删除完成后提示「已删除 N 页,可用 Ctrl+Z 撤销」。能否撤销取决于文档大小:超过 128MB 的文档不记录页面快照,此时改为提示「文档较大,该操作不可撤销」,建议先「另存为」备份。
  • 提取/导出的页码对话框中勾选「包含注释」时会:保留其它软件写入的外来批注,并按输出页序重建本应用的注释;不勾选则输出纯净页面(剥离全部批注)。

6.3 图片导出

  • 导出图片(Ctrl+E):把当前页按 2 倍分辨率导出 PNG,并与当前注释一起绘制。
  • 导出 → PNG 支持两种方式:

图 21 导出页面对话框

图 21:导出对话框输入页码范围后选择格式与方式;PNG 长图模式还会出现方向选项;「包含注释」默认勾选。

  • 逐页多图:每页一张 PNG,选择保存目录后批量写出,重名自动追加 -1、-2…;
  • 拼接长图:多页拼成一张长图,可选纵向(上下)或横向(左右)。
  • 长图的上限与自动降档:拼接图受画布单边 65535 像素限制。页数较多时会按「整页数 × 位图内存」预算自动下调分辨率(100 页 A4 纵向 → 50%),并提示实际百分比;连最低档仍放不下时提示「请缩小页码范围」,不会静默失败。
  • 批量多图的上限:逐页多图会在内存里累积每页的 base64,页数过多时会提示「请分批导出」而不是把内存撑爆。
  • 页码范围对话框中的「包含注释」对 PNG 同样生效:勾选时图片上会绘制矩形/高亮/画笔/箭头/测量/文字/便签/图章/图片等注释;不勾选为纯页面。

6.4 图片转 PDF

把多张扫描图/照片合并成一份 PDF,每张图一页。三个入口等价:工具栏「图片转 PDF」、未打开文档时的空状态按钮、以及把图片直接拖进窗口。

图 22 图片转 PDF

图 22:添加 PNG/JPEG 后按选择顺序成页,可逐条移除;页面尺寸默认按图像像素(无留白),也可切 A4;转换时显示「已转换 N / M」进度。

  • 支持格式:PNG / JPEG(按文件头判断,不信任扩展名)。其它格式会在添加时被跳过并提示原因。
  • 页面尺寸二选一,默认「按图像尺寸」:
    • 按图像尺寸(无留白):图像像素按 96 DPI 换算成点(512×512 → 384×384 pt),图像铺满整页。最贴近扫描原件,适合再配合「统一页面方向」整理方向不一的扫描件;
    • A4(方向随图像):横向图用横向 A4、其余用纵向 A4,图像等比缩放并居中留白,直接打印友好。
  • 进度条:转换期间对话框显示「已转换 N / M」与当前文件名;转换中不响应 Esc(避免留下半开的进度界面)。
  • 完成后自动打开生成的 PDF,可直接继续标注、旋转或导出。当前文档有未保存改动时不会覆盖现场 —— 只提示保存路径,由你决定何时打开。
  • 单次上限 200 张(转换后全部驻留内存);超出会提示分批处理。逐张失败不会中断其余图片,完成后在对话框里汇总失败数量。

扫描件若进纸歪斜导致几页方向不同,先用第 5.3 节的「统一方向」整理,再执行本节的转换也可以。


7. 快捷键一览

快捷键 功能
Ctrl+O 打开 PDF
Ctrl+S / Ctrl+Shift+S 保存 / 另存为
Ctrl+E 导出当前页为 PNG
Ctrl+P 打印(页码范围对话框)
Ctrl+F 打开/关闭搜索栏
Ctrl+= / Ctrl+- 放大 / 缩小
Ctrl+0 适合宽度
Ctrl+Z / Ctrl+Y 撤销 / 重做
Ctrl+C / Ctrl+V / Ctrl+D 复制 / 粘贴到当前页 / 原地再制
[ / ] 左旋 / 右旋当前页(修改页面本身)
Ctrl+Shift+N 在当前页之后插入空白页
Ctrl+Shift+Delete 删除当前页(会弹确认框)
Ctrl+1 / Ctrl+2 / Ctrl+3 阅读视图:连续 / 单页 / 双页
Ctrl+B / Ctrl+Shift+B 显示/隐藏缩略图栏 / 右侧面板
Delete / Backspace 删除选中注释
F3 / Shift+F3 搜索下一个 / 上一个
F11 全屏切换
Esc 关闭搜索栏 / 「关于」对话框,并切回「选择」工具
← → Home End PageUp PageDown 翻页
Alt+← / Alt+→ 后退 / 前进
空格 + 拖动 / 中键拖动 平移视图

说明:文本输入框、下拉框聚焦时,除 Ctrl+O、Ctrl+S / Ctrl+Shift+S、F11 外的文档级快捷键一律交还给输入控件——包括 Ctrl+E / Ctrl+P / Ctrl+F、Ctrl+1/2/3、Ctrl+B、Ctrl+C/V/D、Ctrl+Z、方向键与 [/]。这样在文字注释、表单字段或搜索框里打字时,不会再被弹出的对话框或视图切换打断(也避免 Ctrl+V 同时粘贴系统文本与批注)。Ctrl+O/S、F11 保留为全局可用。关闭窗口时若有未保存更改会弹出确认框。

页码范围对话框(打印 / 提取 / 导出 / 删除)输入时实时校验:有效显示「将处理 N 页」,无效红框并禁用「确定」;Enter 确认、Esc 关闭在输入框与下拉框上都生效。


8. 常见问题

Q:换文档后注释数量不对/看不到注释? 本版本从 PDF 内部的批注对象读取注释;如果文件是其它软件写入的批注,本应用不负责编辑/显示这类外来批注(但保存时会原样保留,不破坏)。

Q:保存后 PDF 体积变大? 重复保存不会持续增长。若首次保存后体积明显增大,通常是嵌入了中文字体子集(文字/图章注释需要),属正常。

Q:提示「文档较大,该操作不可撤销」? 文档超过 128MB 时不记录页面快照。请先「另存为」备份,再做页面增删改。

Q:「未保存」标记一直不消失? 保存对话框被取消不会清标记;另外保存期间若又产生新编辑,标记会保留(避免把新编辑误标为已保存)。再按一次 Ctrl+S 即可。

Q:加密文档保存后找不到注释? 加密文档只能写 sidecar(xxx.pdfanno.json)。分发文件时请把 PDF 与 sidecar 一起拷贝,或先用其它工具解除加密后再用本应用编辑。

Q:图片注释显示为空白? 图片注释保存的是磁盘路径引用;原图片文件被移动/删除后无法恢复,重开时会提示「图片注释丢失」。

Q:在 Windows 7 上双击没反应 / 提示找不到 KERNEL32.dll 的程序输入点? 系统缺少 KB2533623(未更新或精简版系统未集成)。确认系统为 Windows 7 SP1 后补装 KB2533623;若装好能打开但文字发虚,再装 KB2670838。

Q:在 Windows 10 上双击解压出的 PDF 编辑器.exe 弹出「Windows 已保护你的电脑」/ SmartScreen 提示? 应用 exe 未做代码签名。当 zip 带有「下载自互联网」标记(浏览器下载、邮件或 IM 附件等)时,Win10/11 的 SmartScreen 可能拦截,点「更多信息 → 仍要运行」即可;从内网共享或域内分发的文件通常不带该标记,不会触发。需要全局放行时,可由 IT 在 SmartScreen 策略中把本应用加入白名单,或为 exe 申请企业代码签名证书。


Q:在文字注释或表单里打字时,Ctrl+E / Ctrl+P / Ctrl+1 之类没反应了? 这是有意为之:焦点在输入框内时,除 Ctrl+O、Ctrl+S、F11 外的文档级快捷键都让位给输入控件,避免弹窗或切换视图打断录入。点回页面空白处即可恢复。

Q:长图导出提示「已自动降到 50% 分辨率」? 拼接图受画布单边 65535 像素限制,页数多时按整页数与内存预算自动降档以保证能出图。想要原始清晰度就分几次导出更少的页。

Q:打开大文件时为什么先显示「正在读取页面信息 320/400」而不是直接看到页面? 需要先拿到每页尺寸才能排出正确的滚动几何。读取期间显示进度而不是空白页面,读完即自动进入阅读界面。

Q:扫描件里几页方向和别的页不一样,怎么办? 缩略图栏「统一方向」:以多数页的朝向为基准,自动挑出方向不同的页并核对内容是否真的横躺,弹窗让你逐页确认后统一。只改旋转信息,不重新生成内容,可 Ctrl+Z 撤销。真正的横向页(宽表格、图纸)会被自动排除、默认不转。

Q:怎么把手上的扫描图合成一份 PDF? 工具栏「图片转 PDF」(或把图片拖进窗口),「+ 添加图片」可一次选多张,按选择顺序成页;页面尺寸默认按图像像素换算(无白边),需要打印时切 A4。转换完自动打开,可继续标注或导出。手机竖拍照片可能有 EXIF 方向信息,本功能不处理,若发现某页横着用第 5.3 节的「统一方向」转正即可。

Q:点「停止」后拆分出来的文件会丢吗? 不会。停止在下一个文件边界生效,已经写出的文件保留;用剩余页重新发起即可。

Q:保存/拆分时按钮变灰了? 长操作执行中入口会被锁定,防止并发跑第二份(例如两批拆分写进同一目录)。状态栏会显示当前操作与进度,结束后自动恢复。

9. 数据与隐私

  • 应用不联网、不上传任何文档内容。
  • 本机运行日志:启动、打开文件、保存/导出/拆分/打印、渲染看门狗超时等会写一行日志,默认存于 %APPDATA%/PDF编辑器/logs(app-YYYY-MM-DD.log,单文件超过 1MB 滚动、共留 3 份,可在「关于」对话框里打开目录或关闭记录)。日志只记录 basename 与页数、耗时、成功与否等指标:不含文档内容、批注文字、表单值、密码,也不含完整路径。排障时把它随问题描述一起发给维护者即可。
  • 问题面板:保存 / 导出 / 打印 / 页面操作出现失败或非致命提示(如图片丢失、某页渲染超时被跳过)时,状态栏出现「问题 (n)」按钮;面板里保留最近 20 条明细,可一键重试(保存/导出/提取类失败会重放原操作)或复制文字,离线打包环境没有控制台,这里就是唯一的失败明细入口。
  • 「统一页面方向」的方向识别(含内置 OCR)全部在本机完成:OCR 引擎与语言数据随包分发,不调用任何在线服务、也不需要装 Office/Tesseract。
  • 只读打开时不会写任何文件;保存/导出只在用户选择的路径与同名 sidecar 位置写入。
  • 缓存策略面向低内存机器:文档缓存 3 份、页面缓存 12 页、图片缓存 20 张,超出自动回收。
  • 加载优先级与预读:打开文件时缩略图让路,先画你正在看的页;当前页画完后,按实测渲染耗时决定提前把相邻页也铺好(省内存机 ≤4GB 不预读,其余机器铺 1–2 页),翻页时直接用已有位图,不再每次现场重画。渲染队列按 当前页 > 其它页 > 缩略图 排优先级,扫描件缩略图不会再挤住正在看的页。
  • 随包附带第三方开源组件许可清单:应用内「关于 / 开源许可」可查看,安装目录 resources/THIRD-PARTY-NOTICES.json 为同一份文件。

图 23 问题面板

图 23:失败与提示的明细集中在「问题」面板——每条含时间、原因与可操作按钮(重试/复制);状态栏的「问题 (n)」随记录出现。

10. 构建(开发者)

  • 依赖全部由 electron-vite 打进 out/(主进程只 require("electron") 与 node 内置模块),因此 package.json 里没有运行时 dependencies、所有包都在 devDependencies——electron-builder 据此不再把 node_modules 打进 app.asar(打包体积从 65.5 MB 降到约 6 MB)。
  • 静态资源由 predev/prebuild 同步到 src/renderer/public/:pdfjs 的 cmaps/standard_fonts 走 sync-pdfjs-assets.mjs;「统一页面方向」用的离线 OCR(worker + wasm 核心 + osd 语言数据)走 sync-ocr-assets.mjs(语言数据在 npm 包里是 .gz,构建期解压)。这些目录不入版本库,由 gen-licenses.mjs 一并写进第三方许可清单。
  • 若将来改用 externalizeDepsPlugin 外置依赖,必须同时把对应包从 devDependencies 移回 dependencies,否则运行时缺包。
  • 本地打包:npm run dist(四组合齐跑,只产出绿色版 zip,输出到 release/<平台>/,资产名不含中文);CI 由 v* tag 触发同一流程并发布 GitHub Release。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages