2

私のアプリケーションは Code 39 バーコードを生成していますが、印刷物をスキャンして再印刷した後、ドキュメント管理システムがバーコードを認識するのに問題があります。

また、最終ドキュメントのバーコードが読み取れないことを確認するオンライン バーコード リーダーを使用してテストしました。

他の場所で印刷、スキャン、再印刷した後に最良の結果が得られる、使用するのに最適なタイプのバーコードはありますか?

これは、アプリケーションから直接 PDF に含まれる元のバーコードです。

ここに画像の説明を入力

印刷、スキャン、再印刷されたバーコードは次のとおりです。

ここに画像の説明を入力

オンライン バーコード リーダーを使用したテストでは、次の結果が得られます。

アップロードされた画像にバーコードが見つかりませんでした。

バーコードを生成するために GNU Barcode を使用しています。

$ barcode -h
barcode: Options:
   -i <arg>     input file (strings to encode), default is stdin
   -o <arg>     output file, default is stdout
   -b <arg>     string to encode (use input file if missing)
   -e <arg>     encoding type (default is best fit for first string)
   -u <arg>     unit ("mm", "in", ...) used to decode -g, -t, -p
   -g <arg>     geometry on the page: [<wid>x<hei>][+<margin>+<margin>]
   -t <arg>     table geometry: <cols>x<lines>[+<margin>+<margin>]
   -m <arg>     internal margin for each item in a table: <xm>[,<ym>]
   -n           "numeric": avoid printing text along with the bars
   -c           no Checksum character, if the chosen encoding allows it
   -E           print one code as eps file (default: multi-page ps)
   -P           create PCL output instead of postscript
   -p <arg>     page size (refer to the man page)

Known encodings are (synonyms appear on the same line):
        "ean", "ean13", "ean-13", "ean8", "ean-8"
        "upc", "upc-a", "upc-e"
        "isbn"
        "39", "code39"
        "128c", "code128c"
        "128b", "code128b"
        "128", "code128"
        "128raw"
        "i25", "interleaved 2 of 5"
        "cbr", "codabar"
        "msi"
        "pls", "plessey"
        "code93", "93"
4

1 に答える 1

5

Code 39 は、幅の広い X 寸法 (細いバーの幅) に対応し、狭い幅と広い幅の比率 (最大 1:3) を高度に識別できる低データ密度のバーコードです。バーコード記号に関する限り、これは他のものよりも低解像度でノイズの多い媒体での転送に適しています。

Code 39 規格では、誤読の可能性を減らすモジュロ 43 チェック ディジットの使用が許可されています。これはスキャンされた画像には存在しないことに気付きました (ソース画像にはありますが) ので、システムをアップグレードしてこれに対応できるようにすることができます。

提供された画像の最も重大な問題は、最も狭いスペースの幅が小さすぎて、バーコードが破損していることです。ソース画像の場合、これは、ピクセルのかすれに起因する過剰な「印刷の伸び」(インクの広がり) が原因です。スキャンされた画像の場合、これは誇張されています。これは、選択された X 寸法が、エンド ツー エンド プロセスによって導入された画像の不完全性に耐えるには不十分であるためです。

印刷の伸びの効果を示すために、スキャンした画像に同じデータのよりきれいな表現を重ねました。

Code 39 バーコードの重ね合わせ

画像の右側に向かって、隣接する 2 つの細い棒の間の狭いスペースが圧縮されて、1 つの幅の広い棒が形成されていることがわかります。

ソースで物事を改善するには、次のことを試すことができます。

  • シンボルの X 寸法が出力デバイスのネイティブ解像度の倍数に設定されるようにバーコード生成が実行されるようにすることで、ピクセル グレージングを回避します。このプロセスは、「グリッド フィッティング」と呼ばれることもあります。
  • GNU バーコード ライブラリを変更して、印刷およびスキャン プロセスとの互換性を保つために、バーの幅から少量の固定量を差し引くことで、インクの広がりを補正します。
  • バーとスペースの狭幅と幅の比率を 1:3 に最大化します。
  • X 次元を最大化します。

これらの同じ問題がさらに大きな影響を与える可能性があるため、別のリニア バーコード シンボル体系に移行しても解決しない可能性があります。

高品質のバーコード生成に関する詳細情報は、この回答に記載されています。

于 2015-08-04T16:21:00.537 に答える