文字情報定義ファイルの生い立ち

必要に駆られて作ったのですが、「行政などが公開している仕様書が使い物にならず苦労したから、他の人が同じ苦労をしなくて済むように残しておこう」と思ったからです。
以下「PDFが使い物にならない」理由です。

国税庁へ「NISA」の申請・届出をプログラムで行うとしたとき、e-Tax/NISAでは使用可能な文字が決まっているので使用不可の文字は排除しておく必要があります。
この「文字」をチェックするためには使用可能な文字もしくは使用不可能な文字の一覧が必要ですが、現状、国税庁から提供されているのは下記URLからダウンロード可能なPDFファイルしかありません。
https://www.e-tax.nta.go.jp/tetsuzuki/tetsuzuki7.htm
下図は上記URLからダウンロードしたNISA版PDFの抜粋です。

見てのとおり、使用可能な文字(背景:白)と使用不可の文字(背景:灰色)が混在している「目視用」の作りになっています。
しかし プログラムでは文字を「コード」で扱うため、例えば「 了 」等ではなく「U+4E86」というコードが記載された下図のような一覧(テキストファイル)が欲しいのです。

プログラムの作り方によっては使用可能な文字を並べた checkStr = “…亀亂亅了 … “; というコーディングでも良いのですが、この場合PDFファイルから1文字ずつ (数千文字を) 根気よく 取り出す必要があります。
しかしPDFビューアである「Adobe Acrobat Reader」を使用したことがある方はわかると思いますが、文字、特にASCII以外の文字はクリップボードに転送すると文字化けを起こしてしまうことがあります。
さらに下図はAdobe Acrobat Readerを使用してPDFからU+00A2に対応する文字をクリップボードにコピーした後、テキストエディタ(MIFES)にペースとしたときのものですが、ペーストした文字は 00A2 ではなく FFE0 になっています。
そもそもPDF上の 00A2 の位置にある文字が 00A2 では無いのです。

上記の結果より、「PDF内の文字コード(コードポイント)しか信用できない」という前提で、PDFを見ながら背景が白になっているコードのみを抽出して文字情報定義ファイル中のe-Tax及びNISA列に反映しています。

コンピュータシステムに係わる人は「PDFは印刷用のフォーマットであって情報交換用フォーマットでは無い」という意識を持つ必要があると思います。
仕様提示者がコードを記したテキストファイルを公式に公開していれば本ファイルは必要なく、多くの人が無駄な苦労をしなくても良いのですけどね。

間違いもあるかもしれませんが、文字情報定義ファイルはgithubで公開していますので、よろしければご活用下さい。
JIS X 0213判定や常用・人名用漢字判定等も入っています。
https://github.com/68B09/CharacterInformation

コメントを残す

メールアドレスが公開されることはありません。