Variable PDF Record Audit

使用指南与恢复方法

指南版本 1.0.1

打开应用

从成品PDF开始

使用上方链接打开公开应用,或按下方步骤从ZIP恢复。请选择用于提供应用的app文件夹之外的文件。应用核对PDF中可提取的号码文字。请按常规流程检查显示效果和印刷成品,需要OCR时请另行处理。

支持:单面四拼票券,正券及其对应存根各有两个准确的ASCII三位号码。不支持:仅OCR或图像中的号码、任意N拼、双面、QR或印刷批准。

具有文字记录的PDF · 最大100 MiB / 250页

UTF-8 · 最大1 MiB / 1,000张票券 · 选择两列

范围模式的起止编号须在 000–999 内,含首尾的编号总数须为正偶数,最多 500 张票。

已验证的环境

测试记录对应版本1.0.0

环境观察结果
Debian 13.6 Linux
Firefox 153.0 · Chromium 156.0.8078.79
本地自动测试通过了号码核对、JSON和HTML报告下载、将已保存的JSON重新导入应用,以及在浏览器中打开已保存的HTML。
Debian 13.6 Linux
Firefox 153.0
常规浏览器操作,范围模式示例
在公开HTTPS上通过常规浏览器操作完成了核对,并保存了两种报告。测试中将已保存的JSON导入了应用,并在浏览器中打开了HTML。
Debian 13.6 Linux
Chromium 156.0.8078.79
受管理的云端环境,带声明范围的CSV模式示例
核对通过。在受管理的云端Chromium环境中,点击JSON和HTML下载按钮未生成文件。原因尚未确认。本次无法读回已保存结果。
Windows、macOS和其他未列出的环境未经验证。

如果受管理的Chromium环境无法保存报告,请在允许下载的Debian 13.6 Linux上用Firefox 153.0重试示例。确认两种文件都已保存后再用于工作。

试用附带的八张票券示例

从下方链接保存normal.pdf、stub-swap.pdf、source.csv、layout.json和expected.json。先在应用中打开normal.pdf,再导入layout.json。选择范围模式,输入000和015,并保持最后一页的四个单元格全部选中。示例共有两页、八张票券。检查所有页面,并分别查看三个判定维度。在CSV模式中,选择source.csv、逗号分隔、启用标题行,以及第1列和第2列;启用范围号码清单检查后,再次输入000–015。正常文件的号码记录应当一致。stub-swap文件故意交换了存根,应报告同票存根不一致。两个文件的显示质量都仍未经验证。expected.json说明独立预先确定的示例预期结果;它不是应用配置文件,也不是已保存的检查报告。

示例文件

购买前,用范围模式和CSV模式分别测试两份示例PDF。每次核对后保存JSON和HTML,确认两个文件实际存在。使用“读回已保存的JSON报告”导入JSON,在浏览器中打开保存的HTML。对照应用和示例的预期结果核实状态、数量及不一致票券的位置。

1. 选择文件和预期条件

范围模式只需要PDF和声明的范围。CSV模式还需要您现有的双号码CSV,无需另外印制新的票券ID。请明确选择分隔符,并指定第一行是否为标题行。按照界面显示的从1开始的列号,输入两个不同的号码列。CSV必须使用UTF-8编码,可带BOM;支持逗号、分号、制表符分隔及带引号的字段。空行、空值、多余空格、全角数字及其他无效值都视为错误,不会静默修正。只有在确实希望将CSV中的1–3位ASCII数字补足为三位时,才启用前导零补齐。报告会保留CSV原始值。

声明范围与同票存根核对

每个号码应在正券上出现一次,并在该票券自己的存根上出现一次。原CSV号码对未提供,也不在此模式中验证。

输入0到999的ASCII整数,含首尾的号码总数必须是正偶数。PDF中的值必须是准确的三位数,并保留前导零。

现有CSV号码对与同票存根核对

将无序号码对及其出现次数与现有CSV核对。行顺序、票券顺序及号码左右顺序不影响结果。

没有声明范围时,CSV号码的唯一性和完整覆盖未经验证。CSV与PDF可能包含同一个错误。

只对CSV值补零,并保留原始值。PDF中的7绝不会自动变成007。

2. 定义四张票券及其号码区域

一个布局包含四个互不重叠的票券边界,可自由排列,不限于2 × 2网格。每个边界内包含四个互不重叠的号码区域:正券1、正券2、存根1和存根2。先在区域选择器中选择一个区域,再在预览上拖出该区域的矩形。如需用键盘操作,请先选择区域,再以旋转后页面视口的百分比编辑左位置、上位置、宽度和高度。初始布局只是操作便利,并非自动检测,也不能证明号码区域正确。检查前请确认每个边界和号码区域。

最后一页之前的所有页面都使用全部四个单元格。最后一页只选中实际含有票券的单元格;未满的最后一页可包含一张、两张或三张票券。选中数量必须与预期票券数和页数一致。不要把未读或检查失败的票券标为空白来隐藏问题。即使单元格被标为空白,其中已声明号码区域内的号码文字仍会被检查并诊断。混合布局、封面和双面页面不会被静默跳过。

预览用于定位号码区域和差异,不用于验证显示质量。

3. 检查所有页面

确认文件、模式、范围或CSV选项及区域后,再开始检查所有页面。请查看进度,以及预期、已处理和未处理的票券数量。用户停止或因资源错误失败的作业会保留未处理数量,绝不会判为完整一致。如有必要,请停止检查,解决输入或资源问题后,重新运行整个作业。只有全部必要比较均已完成,才能判定号码记录一致;显示质量始终不会变为已验证。

分别查看三个判定维度

源CSV号码清单、PDF号码记录、显示与印刷质量是三个独立结论。CSV可能不符合声明的号码清单,而PDF却准确匹配同一份有误的CSV;这样的整项作业不能通过。不指定范围的纯CSV模式即使号码对一致,也仍未验证源号码的唯一性和完整覆盖。在范围模式中,未提供源CSV及其原始号码对。已确认的差异、无法确定的值、错误和用户停止含义不同;请查看状态和未处理数量,不要把每个显示已结束的界面都当作成功。

差异及无法确定的号码记录

每条诊断都包含固定代码、预期与观测数据,并在可用时提供页码、票券、正券或存根及号码区域。原作业仍打开时,可使用“显示位置”返回对应页面和区域。CSV输入错误也会在可用时标明行号和列号。正券与存根不一致时,请同时检查两边;应用不会假定其中一边就是正确原件。无法读取或存在歧义的号码区域属于无法确定,不会视为空白且正确的号码。请修正源文件或区域定义,本应用不能编辑成品PDF。

4. 查看并保存

请下载JSON和HTML两种报告,并确认浏览器实际保存的文件。JSON保留机器可读的值、输入文件名、字节数、SHA-256、选项、配置、版本、数量和诊断。HTML以安全方式呈现便于阅读的报告。通过“读回已保存的JSON报告”读取保存的JSON,确认状态和数量符合预期。导入结果属于历史记录,不会检查当前选中的PDF,其位置记录也不能替代重新检查。应用绝不覆盖原始PDF或CSV。报告有意包含所选文件名和号码数据,请按可能含有敏感信息的文件处理。

已请求下载。请确认保存的文件;向浏览器发出请求并不能确认已写入磁盘。

复用配置并重新检查修正结果

确认每个区域和选项后,下载可复用配置。配置保存布局和选项,不保存源文件。处理修正后或其他PDF时,先打开新文件,按需导入配置,再次确认页面尺寸、旋转、区域、预期条件模式及最后一页使用的单元格。任何输入或选项更改都会使当前结果失效。请重新检查所有页面,并保存与新输入哈希绑定的新报告。修改后的某一页正确或旧报告一致,都不能证明整个新文件一致。

保留ZIP并恢复本地使用

请保留一份未经修改的已购版本ZIP。解压后确认存在app文件夹,然后在其上一级文件夹打开终端。确认已安装受支持的Python 3;如未安装,请从Python官方网站获取。运行下方命令,并在使用本地应用期间保持该终端打开。用桌面浏览器打开回环地址。客户PDF和CSV不能放在app文件夹中,请从其他文件夹选择。直接通过file://启动、单个HTML文件以及无需安装即可离线启动,都不是所提供的恢复方法。

python3 -m http.server 8765 --bind 127.0.0.1 --directory app

http://127.0.0.1:8765

Python官方下载

在Windows上,请使用本机已安装的Python启动器,通常为py -3,并使用相同参数。如果系统中的命令为python而非python3,请使用已安装的命令。不要将此恢复服务器绑定到外部接口,也不要发布到互联网。

py -3 -m http.server 8765 --bind 127.0.0.1 --directory app

如果端口8765已被占用,请仅用Ctrl+C停止您自己此前启动的服务器,或选择另一个未占用端口,例如8766。服务器命令和浏览器地址必须改为同一端口。关闭浏览器标签页不会停止服务器;使用完毕后,请在其终端中按Ctrl+C。app文件夹必须包含该发布版本的完整构建,包括同版本的worker、字体、CMaps及其他资源。资源缺失或版本不匹配时,应恢复完整构建,不能忽略错误。

python3 -m http.server 8766 --bind 127.0.0.1 --directory app

http://127.0.0.1:8766

从 ZIP 恢复时,在终端使用 Python 3 通过本地 HTTP 提供应用。打开回环地址后,按上文核对样例,并保存和重新打开两份报告。

更新与托管中断

将新版本解压到独立文件夹前,请保留旧ZIP和报告。阅读版本号和变更说明,使用完整且匹配的资源集,重新导入兼容配置,确认所有区域,并在正式作业前重新运行附带示例。不要混用新旧worker或资源。若托管地址变更或停止服务,请保留ZIP恢复途径,并遵循卖方的迁移通知。本地恢复并不免除卖方在已购12个月服务期内剩余的同等托管服务义务。已购版本可无限期使用,不代表承诺提供所有未来功能或兼容每次浏览器更新。

常见问题

号码记录一致就可以批准印刷吗?

号码记录一致不代表批准印刷,也不保证可见数字、隐藏文字、裁切、颜色或实际印刷结果正确。请继续进行通常的显示和印刷校样检查。

范围一致能证明原CSV号码对正确吗?

未提供原CSV号码对。范围一致不能验证原来的号码配对。

CSV和PDF可能有相同错误吗?

没有声明范围时,CSV号码的唯一性和完整覆盖未经验证。CSV与PDF可能包含同一个错误。

为什么某个号码区域无法确定?

必需号码区域可能没有可读文字、有多个候选值、文字跨越边界、采用不支持的布局,或所需资源不可用。应用不会通过猜测或对PDF值补零,将这样的区域判为一致。请修正源文件或配置,使用支持范围内的文字型PDF,并重新检查所有页面。纯图像或已转曲的号码需要使用其他流程。

购买与交付

含税1,280日元,单人一次购买。所购版本可永久商用。下载的ZIP包含完整应用、所需资源、指南和示例。自购买起12个月内提供重新下载、缺陷修复、文字支持和同等托管服务。请保留ZIP。购买前可试用公开应用和示例。

在BOOTH购买

许可与文字支持

单用户买断:购买的版本可无限期使用。分发/重新下载、缺陷修复、文字支持及同等功能的托管服务提供至购买后12个月。请保留ZIP;不承诺永久托管、重新下载或新功能。开源组件保留其各自许可证赋予的权利。

寻求支持前,请先用附带的合成示例重现问题。通过卖方的BOOTH文字联系渠道提供应用/浏览器版本、诊断代码及匿名化步骤。通常无需发送客户原始PDF、CSV或可识别身份的文件名。

通过BOOTH联系卖家

尚未登录时,BOOTH会提示登录。