Mac · 全程在你自己的电脑上 · PDFium + PP-OCRv5 · 已对平明细 · 带命令行
Tickmark:把对账单 PDF 读成已对平的明细
把一个文件夹的银行或信用卡对账单交给 Tickmark,它会读出每一笔:日期、摘要、金额、逐笔余额。每个账户都对着打印的期初和期末余额核对,精确到分。有文字层的 PDF 直接读;扫描件在这台 Mac 上用 PP-OCRv5 识别。结果可导出 CSV、XLSX、QBO、OFX 或 QFX,并附一份报告,说明哪些已经对上、哪些还需要看一眼。
US$6.99 一次买断 · 含免费版
版本 1.0.0 · macOS 14 Sonoma 或更新,Apple Silicon · 下载 60 MB · PP-OCRv5 模型随 App 安装,无需另外下载
一次买断 · 包含 1.x 全部更新 · 14 天全额退款

你的授权码
打开 Tickmark → 设置 → 授权,把整行粘进去。请另存一份:授权码离线校验,你自己的所有 Mac 都能用,覆盖 1.x 的所有版本。
工作方式
- 加入对账单。 文件夹里的 PDF 会依次排进队列。可以拖入文件、选择文件,或者直接选文件夹;
⌘O和 Finder 的「打开方式」走的都是同一个入口。免费版一次读一份,每月三份。 - 读出明细。 PDFium 给出每一个字符的字体、字号和位置。日期、摘要、金额和逐笔余额来自文字层;没有文字层的页面按 300 dpi 渲染,再用 PP-OCRv5 识别。每一笔都记着来自第几页,任何一个数字都能回溯。
- 核对余额。 对每个账户,Tickmark 把明细加总,与打印的期初、期末余额比较,差额精确到分。它也会拿每一笔的逐笔余额和上一笔对照,把断链的那几笔标成「待查」。
- 导出、归档。 选好格式,Tickmark 会在对账单旁边(或你指定的文件夹里)为每个账户、每种格式写一个文件,同时生成 JSON 核对报告。每个输出都会重新打开校验,通过之后才交给你。

每一笔都对得上
目标不是一张看起来对的表,而是一张总额能解释清楚的表。对每个账户,Tickmark 会记下:
- 期初余额:按打印值;对账单没印时,从第一笔逐笔余额反推,并明确标注是反推的。
- 收入、支出和笔数:所有金额都以整数「分」保存,不经过浮点数。
- 期末余额:按打印值,与「期初 + 全部明细」比较,差额显示到分。
- 每一笔逐笔余额:和上一笔对照;链条断了,那一笔就进复核清单,而不是被悄悄接受。
- 每一条警告:附页码——缺期末余额、某一笔没有金额、账户分区标题读不出来。
银行对账单和信用卡账单都能读;借方和贷方分列处理,一份文件里的多个账户也各自独立,不会混成一张表。
从页面读出列
Tickmark 找到表头和每一页右对齐的金额,再给列命名:日期、起息日、摘要、对方、借方、贷方、金额、余额、手续费。「列」面板会显示这份对账单读到了什么,以及每一列在页面上的横向范围。1.0 的读取是自动的;可编辑的列映射留给后续版本,面板里也写明了这一点。


金额的两种小数写法都能读——1,902.69 和 1.902,69——包括 10 598,70 这样的空格分位、负数、尾随正负号和括号写法。常见的货币代码和符号会被识别;账户自己的币种会一直带到导出文件里。
扫描件,也在这台 Mac 上读
如果 PDF 没有文字层,Tickmark 会按 300 dpi 渲染页面,运行 PP-OCRv5 的检测和识别,再带着位置重建文字,交给同一个表格解析器。模型(约 21 MB)随 App 一起安装,通过 ONNX Runtime 在 CPU 上运行。页面、图片和识别出的字都不会离开这台 Mac。OCR 可以在设置里关掉;关掉之后,纯图片 PDF 会报告「无法读取」,而不是猜一个答案。
OCR 面向印刷体对账单。手写不识别;扫歪了或角度很大的页面也可能读不出来——这些页面会进报告,而不是被填上看起来合理的数字。
一份可以放进卷宗的报告
每次导出都会在明细旁边写一份 JSON 报告:每个账户一条,每项检查都带页码,还有合计和待复核的明细。它和应用里看到的是同一份报告,同事或审计看到的就是 Tickmark 当时看到的东西。免费版的报告带「Free version」水印。
Tickmark 不宣称能代替你的记账。它做机械的部分——读出明细、加总、证明余额、保留页码——其余需要人判断的,逐条列出来。
留给人工的部分
有些事只靠页面推断,诚实地说做不到。这些会进报告,而不是猜一个答案:
- 不常见的版面。 表格不按「表头 + 右对齐金额」排的对账单,可能只读到一部分;复核标记和「列」面板会告诉你读到了哪里。
- 手写和印章。 两者都不识别,开了 OCR 也一样。
- 旋转的扫描件。 横过来的页面会报告为无法读取,而不是转一个方向再猜。
- 多币种换算。 导出的是对账单上印的金额;Tickmark 不做币种换算。
- 缺失的逐笔余额。 对账单只印了计算的一边时,期初或期末余额会被反推,并标注出来。
- 断链的明细。 标记为「待查」,并列进报告。用这份文件之前,请先读这几笔。
免费版与授权
下载的就是完整应用。没有授权时,每月可以读三份对账单,一次一份,导出 CSV,核对报告带水印——足够用你自己的对账单试一遍。读取、OCR、明细表和「列」面板都在;其他格式和命令行的 convert 需要授权。
| 免费版 | 授权版 | |
|---|---|---|
| 每月对账单 | 3 份 | 不限 |
| 同时处理的文件 | 一个 | 整个文件夹 |
| 明细表、列与核对 | ✓ | ✓ |
| 扫描件(PP-OCRv5) | ✓ | ✓ |
| 核对报告 | 带水印 | ✓ |
| 导出格式 | CSV | CSV、XLSX、QBO、OFX、QFX |
命令行 scan 与 models | ✓ | ✓ |
命令行 convert | — | ✓ |
| 更新 | ✓ | 1.x 全部更新 |
| 价格 | 免费 | US$6.99,一次 |
对账单留在你的 Mac 上
不上传、不注册、不数额度。Tickmark 不会把 PDF、文件名或读出的任何一笔发到任何地方。它只做两类网络请求,都与你的文档无关:
- 开启自动更新时,每天一次,从 api.swordfishsoft.org 取新版本信息和已退款订单的公开列表——同样是所有人共用的文件,里面没有你的任何信息。可以在设置里关掉。
- 购买授权时,结账页由 Paddle 提供。之后授权码就在这台 Mac 上校验;使用 Tickmark 本身不会调用授权服务器。
读取、核对和导出完全不需要联网。详见隐私政策。
命令行与 AI 助手
Tickmark 附带 tickmark,与应用共用同一个引擎。可以扫描整个文件夹看看它读到了什么,把明细写到另一个目录,也可以交给能在你 Mac 上执行命令的 AI 助手,比如 Claude Code 或 Codex。
tickmark scan statement.pdf # 只看它读到了什么,不写文件
tickmark scan clients/2025/*.pdf --json # JSON Lines,每个文件一行
tickmark convert statement.pdf --format csv,xlsx # 明细和 JSON 报告写在源文件旁边
tickmark convert clients/2025/*.pdf --out ledger \
--format qbo,qfx --report recon.json
tickmark license --key SFS1-… # 为这台 Mac 保存授权码
tickmark models # 查看随 App 安装的 OCR 模型
- 为脚本而做。 它从不等待输入,进度写到 stderr;加
--json时输出 JSON Lines。退出码:0 全部对上,2 用法错误或有对账单需要复核,3 文件读不成对账单,4 缺少 PDFium 或随 App 安装的 OCR 模型,5 输出回读校验失败,6convert没有授权,130 被中断。 - 重复运行是安全的。 结果是新文件;输入 PDF 只读,绝不修改。不给
--out时,文件写在源文件旁边,名为<name>.tickmark.csv、.xlsx、.qbo、.ofx或.qfx,报告为<name>.tickmark.json。已有输出默认跳过,加--overwrite才覆盖。 - 应用和命令行一致。 同样的读取、同样的核对、同样的报告——应用里转的文件夹和终端里转的文件夹,产出的明细相同。
给 AI 助手的提示词
我的 Mac 上装了 Tickmark。它把银行和信用卡对账单 PDF 读成已核对的明细,完全离线,用的是 PDFium 和 PP-OCRv5,并且带一个命令行工具: "/Applications/Tickmark.app/Contents/Helpers/tickmark" (如果把命令装进了 PATH,也可以直接写 tickmark)。先用 --help 看用法。参数: tickmark scan FILE... [--json] [--ocr|--no-ocr] tickmark convert FILE... [--out DIR] [--format csv,xlsx,qbo,ofx,qfx] [--report FILE] [--overwrite] [--json] tickmark license [--key KEY] [--clear] [--json] tickmark models [--json] 加 --json 时输出 JSON Lines。不给 --out 时,convert 在输入旁边写.tickmark.csv/.xlsx/.qbo/.ofx/.qfx 和 .tickmark.json。输入 PDF 永远不被修改;已有输出默认跳过,除非给 --overwrite。 退出码:0 全部对上,2 用法错误或有对账单需要复核,3 文件读不成对账单,4 缺少 PDFium 或随 App 安装的 OCR 模型,5 输出校验失败,6 convert 需要授权,130 被中断。进度写到 stderr,全程不等待输入。 明细和列是从页面推断的:不常见的版面、手写、旋转的扫描件、缺失的逐笔余额,以及每一笔标着「待查」的明细,仍然需要我自己复核。如果说需要授权,请直接告诉我,不要绕过。不要删除或移动我的文件。 我的任务:
scan、models 和 license 不需要授权即可使用;convert 需要授权。免费版读一份扫描件同样计入每月三份。
购买流程
- 先下载、先用免费版。 打开磁盘映像,把 Tickmark 拖进「应用程序」,拿自己的一份对账单跑一遍:明细表、核对、「列」面板和带水印的报告都在。
- 在本页购买授权。 结账由我们的转售商 Paddle 完成,可以刷卡、用 PayPal 或结账页上的其他方式,适用地区会加税。
- 复制授权码。 付款成功后会立即显示在本页,同时也会发到你的邮箱。把它粘进 Tickmark → 设置 → 授权,限制就没了。
授权码丢了?用付款时的邮箱发信到 [email protected],我们会重发。
常见问题
它能读我银行的对账单吗?
只要 PDF 里有能读的日期、摘要和金额表格,多半可以。对账单的版式差别很大,免费版就是为此准备的:拿你实际收到的对账单跑一遍。「列」面板和复核标记会告诉你读到了哪里,核对结果会告诉你总额对不对得上。1.0 不带各家银行的模板,它读的是页面本身。
到底核对了什么?
每个账户:期初余额、全部明细加总、期末余额、差额到分,以及每一笔逐笔余额和上一笔的对照。断链的那笔标为「待查」;期末余额对不上的账户会报告为「未对上」。JSON 报告逐条列出,并带页码。
能读扫描件吗?
能,打开 OCR 即可。没有文字层的页面按 300 dpi 渲染,用 PP-OCRv5 读取,然后和其他页面一样处理。模型随 App 安装,在这台 Mac 上运行。手写和横过来的扫描件不读;这些页面会进报告。
一份 PDF 里有多个账户能处理吗?
能。银行对账单常常包含多个账户,信用卡部分也可能跟在银行部分后面。Tickmark 会把它们分开,各自对着自己的打印余额核对,每个账户写一个输出文件。
能导出什么?
CSV、XLSX(每个账户一个工作表,带合计和检查)、QBO(QuickBooks Online 和 Desktop)、OFX 1.0.2(SGML),以及 QFX(Quicken,同一 OFX 1.0.2,带 Intuit 的头)。每个文件写完后都会重新打开校验;校验不通过就删除并报告,而不是把坏文件交给你。
会改动我的 PDF 吗?
不会。对账单只读打开。导出的是新文件,写在源文件旁边或你选的文件夹里。
免费版的限制怎么算?
每个自然月三份不同的对账单,一次一份,只导出 CSV,报告带水印。每月 1 日重新计数。授权后这台 Mac 上所有限制解除;本月已经读过一遍的对账单不会重复计数。
一份对账单要多久?
有文字层的一般一两秒。扫描件还要渲染和 OCR,每页通常几秒;很长的扫描件可能要一分钟。应用会显示进度,也可以中途停止。
支持哪些 Mac?
Apple Silicon(M1 及以后)、macOS 14 Sonoma 或更新。不支持 Intel Mac。
有 Windows 版吗?
暂时没有。问的人够多我们就做,同一份授权同样通用。可以发信到 [email protected]。
macOS 问我要不要打开,这正常吗?
正常。第一次打开任何从网站下载的应用,macOS 都会问一次。确认提示里写着 Apple 已检查且未发现恶意软件,然后点「打开」:应用有我们的 Apple Developer ID 签名,并经过 Apple 公证。
用着不合适怎么办?
每次购买都有14 天全额退款。
由重庆剑鱼科技有限公司(SwordFishSoft)销售。订单流程由我们的在线转售商 Paddle.com 完成,Paddle.com 是所有订单的 Merchant of Record。使用条款 · 退款政策 · 隐私政策。引擎:PDFium(BSD-3-Clause)负责读取与渲染,PP-OCRv5(Apache-2.0)通过 ONNX Runtime(MIT)识别扫描件,rust_xlsxwriter(MIT)写 XLSX;Sparkle(MIT)。截图中的对账单是一份合成的基准文档,不是客户文件。