Variable PDF Record Audit

使い方と復旧手順

説明書のバージョン 1.0.1

アプリを開く

完成PDFから始める

上のリンクから公開アプリを開くか、後述の手順でZIPから復旧してください。PDFやCSVは配信するappフォルダの外から選びます。このアプリはPDFから取り出せる番号の文字を照合します。表示や印刷の仕上がりは通常の校正で確認し、OCRが必要な場合は別の手順で処理してください。

対象は片面4面付けの券で、本体と同じ券の控えのそれぞれに二つずつある正確なASCII 3桁番号です。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はブラウザで開きました。
Debian 13.6 Linux
Firefox 153.0
通常のブラウザ操作で範囲モードを確認
公開HTTPSで通常のブラウザ操作を行い、照合と両レポートの保存を確認しました。保存したJSONはアプリに読み込み、HTMLはブラウザで開きました。
Debian 13.6 Linux
Chromium 156.0.8078.79
管理されたクラウドで宣言範囲付きCSVモードを確認
照合はできました。このクラウド環境でJSONとHTMLのダウンロードボタンを押しても、ファイルは作成されませんでした。原因は未確認です。ファイルがないため、読み戻しは行っていません。
Windows、macOS、その他の表にない環境未検証です。

管理されたChromium環境でレポートが保存されない場合は、ダウンロードが許可されたDebian 13.6 Linux上のFirefox 153.0でサンプルを試してください。両方のファイルが保存されたことを確認してから作業に使ってください。

同梱の8券サンプルを試す

下のリンクから normal.pdf、stub-swap.pdf、source.csv、layout.json、expected.json を保存します。先にアプリで normal.pdf を開き、次に layout.json を読み込んでください。範囲モードで開始000・終了015を入力し、最終ページの四つのセルをすべて選択します。サンプルは2ページに8券あります。全ページを検査し、三つの判定軸を確認してください。CSVモードでは source.csv、カンマ、ヘッダーあり、列1と列2を指定します。範囲の番号在庫検査も使う場合は000–015を改めて指定します。正常ファイルでは番号レコードが一致する想定です。stub-swap.pdf は意図的に控えを交換しており、同じ券の控えの不一致を示す想定です。どちらも表示品質は未検証のままです。expected.json は独立して固定したサンプルの期待結果を説明するもので、アプリの設定や保存レポートではありません。

サンプルファイル

購入前に両方のサンプルPDFを範囲モードとCSVモードで試してください。照合のたびにJSONとHTMLを保存し、ファイルがあることを確認します。「保存したJSONレポートを読み戻す」でJSONを読み込み、HTMLはブラウザで開いてください。状態と件数、不一致が出た券の位置をアプリの表示やサンプルの期待結果と比べます。

1. ファイルと照合条件を選ぶ

範囲モードに必要なのはPDFと宣言範囲です。CSVモードでは既存の二番号CSVも使いますが、券IDの追加印字は求めません。区切り文字を明示し、先頭行がヘッダーかを指定してください。画面では1から数える列番号で、異なる二つの番号列を選びます。CSVはBOM付き・なしのUTF-8に対応し、カンマ・セミコロン・タブ、引用符で囲まれた欄を処理します。空行・空値、余分な空白、全角数字などの不正値はエラーです。無言で補正しません。CSVのASCII 1–3桁を3桁に正規化したい場合だけ、先頭0埋めを有効にしてください。CSVの生値もレポートに残ります。

宣言範囲と同券控えの照合

各番号が本体に1回、同じ券の控えにも1回あるかを調べます。元CSVの番号ペアは未提供として検査しません。

0〜999のASCII整数で、開始と終了を含む件数が正の偶数になる範囲を指定します。PDFの値には先頭の0を含む正確な3桁が必要です。

既存CSVの番号ペアと同券控えの照合

順不同の番号ペアとその出現数を既存CSVと照合します。CSVの行順、券順、番号の左右順は問いません。

宣言範囲がなければ、元CSVの番号の一意性と網羅は未検証です。CSVとPDFが同じ誤りを含む場合があります。

0埋めはCSVの値だけに適用し、生値も残します。PDFの7を007へ自動補正しません。

2. 四つの券と番号欄を指定する

設定には重ならない四つの券の外枠を指定します。配置は2 × 2だけに限定しません。各券の中に、本体1・本体2・控え1・控え2の重ならない四つの番号欄を置きます。領域の選択欄で一つを選んでから、プレビュー上で長方形をドラッグしてください。キーボードで操作する場合は領域を選び、左位置・上位置・幅・高さを回転後のページ全体に対する百分率で編集します。初期配置は設定の出発点であり、自動検出や正しい領域の確認結果ではありません。検査前にすべての外枠と番号欄を確認してください。

最終ページより前はすべてのページで四つのセルを使います。最終ページだけ、実際に券があるセルを正確に選んでください。最終ページが埋まらない場合は1・2・3券に対応します。選択数は期待する券数とページ数に一致する必要があります。未読や失敗した券を空きに指定して隠さないでください。空きセルの指定番号欄に番号文字があれば診断します。混在した配置、表紙、両面のページを無言で飛ばしません。

プレビューは番号欄の指定と不一致の場所の確認に使います。表示品質の検証ではありません。

3. 全ページを検査する

ファイル、モード、範囲・CSVの条件、領域を確認してから全ページ検査を始めます。進捗と、対象・処理済み・未処理の券数を読んでください。中断や資源エラーで止まったジョブは未処理数を残し、全件一致にはなりません。必要なら検査を中断し、入力や資源の問題を解消してジョブ全体を再実行してください。番号レコード一致には必要な比較の全件完了が必要です。表示品質は検証済みになりません。

三つの判定軸を分けて読む

元CSVの番号在庫、PDFの番号レコード、表示・印刷品質は別の結論です。元CSVの宣言在庫が不一致でも、その誤ったCSVとPDFが正確に対応する場合があります。そのジョブ全体を受入成功にはしません。範囲を宣言しないCSV対応のみでは、番号ペアが一致しても元の一意性と網羅は未検証です。範囲モードでは元CSVと元の番号ペアは未提供です。確定した不一致、確定できない値、エラー、利用者の中断は意味が異なります。画面に処理結果が出たことだけを成功とせず、状態と未処理数を確認してください。

不一致と確定できない番号レコード

診断には共通コード、期待値と観測値があり、分かる場合はページ・券・本体と控え・番号欄も示します。元のジョブを開いている間は「場所を表示」でそのページと領域へ戻れます。CSVの入力エラーでは分かる範囲で行と列も示します。本体と控えが違う場合は両方を確認してください。アプリは片方を正しい原本と決めません。読めない欄や候補を一意にできない欄は判定不能であり、空の正しい番号ではありません。このアプリ内で完成PDFを編集するのではなく、生成元や領域指定を修正してください。

4. 結果を確認して保存する

JSONとHTMLの両レポートをダウンロードし、ブラウザが実際に保存したファイルを確認してください。JSONには機械可読の値、入力名・バイト数・SHA-256、設定、領域、バージョン、件数、診断を残します。HTMLは安全に読める形で結果を示します。「保存したJSONレポートを読み戻す」で、保存した状態と件数が意図したものか確認してください。読み込んだ結果は過去の記録であり、選択中のPDFを検査しません。過去の場所情報を新たな検査の代わりにしないでください。アプリは元PDF・CSVを上書きしません。レポートには選択ファイル名と番号データを意図的に含めるため、機密情報を含み得るものとして扱ってください。

ダウンロードを要求しました。保存ファイルを確認してください。ブラウザへの要求だけではディスクへの保存を確認できません。

設定の再利用と修正版の再検査

領域と条件をすべて確認してから、再利用する設定をダウンロードします。設定には配置と条件を保存し、元ファイルは含めません。修正版や別のPDFでは先に新しいファイルを開き、必要なら設定を読み込んでください。ページ寸法、回転、領域、照合モード、最終ページの使用セルを改めて確認します。入力や設定を変えると現在の結果は無効になります。全ページを再検査し、新しい入力ハッシュと結び付いたレポートを保存してください。修正した一ページの一致や過去レポートだけでは、新しいファイル全体が一致する根拠になりません。

ZIPを保管し、手元で復旧する

購入したバージョン付きZIPを未変更のまま保管してください。appフォルダができるように展開し、その親フォルダでターミナルを開きます。サポート中のPython 3があるかを確認し、なければPython公式サイトから導入してください。下のコマンドを実行し、手元のアプリを使う間はそのターミナルを開いたままにします。デスクトップブラウザでloopbackのアドレスを開いてください。顧客のPDF・CSVはappフォルダに置かず、別のフォルダから選びます。file://直接起動、単体HTML、導入不要のoffline起動は、この配布物の復旧方法ではありません。

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

http://127.0.0.1:8765

Python公式ダウンロード

Windowsではインストール済みのPythonランチャーを使います。一般的には py -3 に同じ引数を付けます。python3でなくpythonが起動名の環境では、そのコマンドを使ってください。この復旧サーバーを外部のインターフェースにbindしたり、インターネットへ公開したりしないでください。

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

8765ポートを使用中なら、自分の以前のサーバーだけをCtrl+Cで止めるか、8766などの空きポートを選びます。サーバーのコマンドとブラウザのアドレスを同じポートへ変更してください。ブラウザのタブを閉じてもサーバーは止まりません。使い終わったら、そのターミナルでCtrl+Cを押してください。appフォルダには、同じバージョンのworker・フォント・CMapsなどを含む完全な配布buildが必要です。資産の欠落やバージョン不一致ではエラーを無視せず、build全体を戻してください。

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値の0埋めで、その欄を一致へ変えることはできません。生成元や設定を修正し、対象範囲内で文字レコードのあるPDFを使って全ページを再検査してください。画像やアウトラインだけの番号は別の工程が必要です。

購入と配布内容

税込1,280円で1ユーザーの買い切りです。購入したバージョンは商用で期限なく利用できます。配布ZIPには、動作に必要なファイル、説明書、サンプルを含むアプリ一式が入っています。購入から12か月間の提供内容は、再ダウンロード、不具合修正、文字サポート、同等機能のホスト提供です。ZIPは保管してください。公開アプリとサンプルは購入前に試せます。

BOOTHで購入する

ライセンスと文字サポート

1ユーザーの買切です。購入したバージョンは期限なく利用できます。配布・再取得、不具合修正、文字サポート、同等機能のホスト提供は購入から12か月です。ZIPを保管してください。無期限のホスト提供・再取得や新機能は約束しません。オープンソース部分の権利は各ライセンスに従います。

問い合わせの前に、同梱の合成サンプルで再現を確認してください。アプリとブラウザのバージョン、診断コード、匿名化した再現手順を、BOOTHで販売者に文字で伝えてください。通常の問い合わせで顧客の元PDF・CSVや個人を特定できるファイル名を送らないでください。

BOOTHで販売者に問い合わせる

未ログインの場合はBOOTHのログイン画面が開きます。