小白我要学实用 Agent 教程与工具实测
目录

Episode 002

本地 PDF 工具,哪些功能真的留在电脑里?

用签名 Windows MSI 的桌面本地运行,实测 Stirling PDF 的合并、旧脱敏、新脱敏和 OCR 边界,公开保留哈希、签名、输入输出和失败分支。

一句话结论这轮桌面本地实测里,合并通过;旧 auto-redact 虽然返回 200 但目标文本仍可提取;统一 redact-execute 配合 IMAGE_FINALIZE 在当前样本通过;桌面本地 OCR 直接返回 403,不可用。

打包日期
2026-07-20
原始证据目录
experiments/stirling-pdf/2026-07-20/
签名与哈希
GitHub Release SHA-256 与下载值一致,Windows Authenticode 状态为 Valid
桌面本地 OCR
POST /api/v1/misc/ocr-pdf 返回 403 This endpoint is disabled

本集视频

8 张公开证据图

四条结论与验收矩阵

组别总分本地后端可调用HTTP / 接口状态输出文件核验独立文本提取当前功能可用
合并通过511111
旧 auto-redact 失败311100
统一脱敏当前样本通过511111
桌面本地 OCR 不可用110000
  • 合并通过:本地后端可调用,HTTP 200 后又独立确认页序 A1、A2、B1 全部正确,当前样本通过。
  • 旧 auto-redact 失败:它能调用、能返回 200、也会吐出文件,但目标文本仍可提取,所以不能写成脱敏成功。
  • 统一脱敏当前样本通过:统一 redact-execute 加 IMAGE_FINALIZE 在当前单页虚构样本里既保留黑框,也让独立文本提取变成 0。
  • 桌面本地 OCR 不可用:本地后端确实起来了,但 OCR 接口直接返回 403 disabled,所以这轮不能虚构中文 OCR 准确率。

这轮怎么测

这期只用 experiments/stirling-pdf/2026-07-20/ 里的合成样本做核验:两个合并输入 PDF、一个带虚构手机号和邮箱的脱敏样本、一个 300 DPI 的中文图片 PDF,以及对应的本地输出、哈希和机器验收 JSON。页面的公开链接会保留同名原始证据路径。

  • 只引用 experiments/stirling-pdf/2026-07-20/verification-results.json、run-report.md、supply-chain.json、inputs 和 outputs 里的证据,不用宣传页替代实测。
  • 先核对供应链:v2.14.2 的 Windows MSI 下载哈希必须与 GitHub Release 公布值一致,Authenticode 必须是 Valid,签名主体是 Stirling PDF Inc。
  • 合并不只看 HTTP 200,还要独立读取 merged-a1-a2-b1.pdf,确认三页顺序与 expected-results.json 的 A1、A2、B1 完全一致。
  • 旧脱敏路径不把文件名里的 redacted 当结果,而是继续做独立文本提取,看手机号和邮箱是否还留在输出里。
  • 统一脱敏路径要同时看视觉黑框和文本提取字符数是否归零,并把边界写明为当前单页虚构样本,不外推到所有复杂 PDF。

不能夸大的边界

  • 这不是“全部离线”或“绝对隐私”的证明。run-report.md 只记录了一个受限的 loopback 观察窗口,不能证明程序永远不联网。
  • 这不是“OCR 准确”或“桌面中文 OCR 可用”的结论。原始 OCR 请求在本地桌面模式直接返回 403 This endpoint is disabled。
  • 这不是“全部 MIT”或“免费商用”的结论。project-research.md 和公开 LICENSE 来源都指出它是 open-core,桌面编辑器与 engine 目录有单独许可边界。
  • 这不是所有 PDF 都能安全脱敏的保证。统一路径只在当前单页虚构样本通过,owner issue 6153 还记录了银行 PDF 的失败样本。

官方链接、许可边界与已知问题

你可以怎样复测这期结论

如果你也想复测一款本地 PDF 工具,不要先问它“支不支持某功能”,而是先锁定你要公开的输入、输出、哈希、失败分支和不能夸大的边界。

  • 先做合成样本,把隐私测试控制在虚构手机号、无效邮箱和公开可见的测试备注,不把真人数据放进流程。
  • 先锁供应链,再跑功能:记录版本号、下载地址、GitHub Release 哈希、Authenticode 状态和签名主体。
  • 每条功能结论都要有独立验收,不把 HTTP 200、按钮可点或文件名变化当成真正通过。
  • 脱敏一定同时看可见输出和独立文本提取,必要时把目标字符串写进 expected-results.json 里做机器核验。
  • 遇到本地桌面接口报 403、disabled 或缺少依赖时,直接把不可用写清楚,不补写主观体验分。
  • 把官方文档、LICENSE 和 owner issue 分开记:文档说明意图,LICENSE 说明边界,issue 说明真实失败样本。
  • 最后只公开你能复现的最强证据图、原始 JSON 和运行报告,让别人能沿着同一路径复测。

原始证据路径