今の仕事をしていると、予想だにしない矢が飛んでくることがある。
今回は、バーコードラベルを印刷した時に、ギザギザになってしまう事象を見てほしいと言われた。本来サポートの対象からは外れている、ある意味勝手に使われているアプリケーションのサポートなどしないのだが、ユーザさんあっての仕事である。ベストエフォートと呼ばれる対応をするが、ベストエフォート(最善の努力)をした結果、解決できないなど矜持(プライド)が許さない。
<事象>
プリンタは問わない環境で、特定のアプリケーションから印字したバーコードがギザギザに印字される。バーコードリーダで読めることもある。
<解決方法>
プリンタのプロパティ上、RGBのどれか一色だけに制限して印字する。もしくは「ハーフトーン印刷」を無効にする。
<出典>
Code 128 Printed Barcode "blurry"
<記事ここから>
はっきり言って、Code 128だけの事象かどうかは不明です。通常バーコードのフォントはバーコードを印字できるラベルプリンタドライバなどをインストールすると一緒に関連するフォントがインストールされるので、あまり考えにくいのではないかというのが正直なところです。
今回事象を確認したところ、他のアプリケーションからの印字は問題ないものの、特定のアプリケーションから印字するとバーコードのバーがギザギザになる事象が認められました。
リクエストを受けた同僚は、一所懸命色々いぢったみたいですが現象は改善せず。。。
あまりそんなところに時間をかけても仕方がないので、とりあえずネットで調査した次第です。検索ワードは「バーコード」「ぎざぎざ」でしてみても満足の得られる結果もなく・・・
で、こういう時私がするのは検索範囲を英語圏(特にアメリカ)に広げることです。「barcode」「blurry」で検索してしばらく追っていくと、上の出典の記事にたどり着いたということです。
「Bartender」というラベルプリンタ用の印刷アプリケーションを開発しているその筋では有名な会社さんのサイトのようですが、下の方(2017/5/23現在)に解決法に近いものがありました。
karlsenさんの発言で"The solution for me was to change the color of the barcode to a RGB value of 0,0,1. Basically just make the blue a 1 and it prints crisp."とあり、簡単に意訳するとRGBの色設定の内、Blue(青)だけにすると綺麗に印字された、とのことです。
この情報を基に、今度はプリンタのプロパティから印字設定の中で該当する箇所を探してBだけ出力するようにしたところ、綺麗に印字されました。
ですが、印字結果はバーコード出力する対象の桁数に依存するようで、桁数が多い場合はまたギザギザになるようでした。
ここから行ったことと得られた結果を基に推測したところ、どうやら
アンチエイリアシングが自動で行われているのではないかと疑われました。
通常、バーコードを印字する際はこの機能をオフにしないとバーの境界がぼやけてしまうため、出力するアプリケーション側で制御しているものと思われますが、これが、例えばペイントなどの「見た目を重視する」アプリケーションから出力するとバーコードの読み取りすらできない状態で印字されることがあります。この当たりが疑わしい・・・ということでプリンタのプロパティ上で該当する箇所を探したわけです。
正直、プリンタのプロパティはベンダーによって全然違うので、どこが該当するかは探していただくしかありません。私が対応したプリンタは、「ハーフトーン」がそれを制御していました。「ハーフトーン」を無効化することで事象が完全に収まることが「我々の環境では」確認できました。
それにしてもバーコードを印字しようとしているのにここの機能をオフにしないアプリケーションがあるとは・・・ 情けないというかなんというか・・・
記事はここまでです。誰かのお役に立てれば幸いです。最後まで読んでいただきありがとうございました。