a person powered by ototoy blog

モヘンジョだろ!!

2006年12月28日

PHPバーコード生成 

PHPとバーコードでググるとよくリンクがはられている

http://oss.moongift.jp/intro/i-816.html

とかでさらにリンクがはられている総本山的な存在が

http://bar-code.sourceforge.net/

なんですが、このライブラリはJANに対応してないんですよ。どうやら2001年から更新がないみたいだから、JANコードの生成って需要がないのかもしれない。時代はQRコードってこと?

今回、フリーの既存ライブラリがあるだろうと思って調べ始めたんだけど、どうさがしても無い。とある仕事の締め切りが迫っていたので、しょうがなく自分で上のライブラリを拡張した。こういう僕みたいな人はもっといると思うんだけど、どうなんですか。

おかげでJAN(EAN)コードのバーコードエンコーディング規格が意外に複雑だということが分かったですよ。

QuickHackですがどうぞ。

http://d.spanner.com/~nt/janobject.phps

元ソースのbarcode.phpとsample.phpの中身を読んで、書き換えられる人じゃないと使えないと思いますが、まあ、そゆことで。

さらに元ソースはかなり旧いPHPをベースに書いてあるので、Super Global($_GETとか)とかいっさい使ってなくて、その辺の書き換えはやったほうがいいと思われ。

| Posted By nt 投稿日: 2006年12月28日 1時33分 更新日: 2006年12月28日 2時56分

コメント

15,6年前、当時いた会社のサービスで「FAXをHOSTコンピュータのリモートプリンターとして使えます」的なものをやっていたのですが(今もそのサービスは健在ですが)、クライアントの多くでバーコードを印字できるようにしてほしいという要望があがり、外字を組み合わせてバーコードを形作るという強引な方法で実現したことがありました。

同じ数字でも3つずつバーのパターンを用意しなくちゃならないし、レフト、ライトバーや、センターバーのところで字間ピッチ変えなくてはならないし、さらにFAXのドットピッチとJAN(EAN)のサイズ規格との絡みでえらく苦労しました。

実際にバーコードリーダーで読めるようになるまで試行錯誤の連続と出力物の山。おかげで当時はバーコードリーダー無しでもJANコード(他に、NW7, code39)を目で読めるようになりました。(ホントの話。)
by かたおかいくお - 2006年12月30日 14時52分
あれ?
ガードバーとセンターバーのピッチって違うんですか?
スペックシートにはそんなこと書いてなかったので、
janobject.phpsでは変えてません。
でも、ケータイ数機種で試したところ、問題なく
読めてたのでOKだと思います。

フォントでの実現方法も、さがしてみると色々ありますね。JANだと、かたおかさんも書いている通り、三種類ずつ用意しなくちゃいけないのがイケてないと思って、とりあえず実現方法からは除外してしまいました。

そして今の僕はJANの「8」は左右どこにあってもわかりますww
by nt - 2007年1月2日 7時44分
そうですね。ガードバーとセンターバーのピッチは同じだったんだと思います。
ただ、それらを縦二本線が真ん中に来るような外字で表現したので、バーと数字、数字と数字、でピッチを変える(つまり、隣り合う外字の重ね具合変える)必要があったんですね。

> そして今の僕はJANの「8」は左右どこにあってもわかりますww

ホント、バーコードさんざん見てるとそうなりますよね。^^)
そういえば、たしか僕がバーコードやってた頃、バーコードで対戦するようなゲームかなんかがあって、子供たちがいろんな商品のJANコードで強さ(?)を競い合ってましたねぇ。(自分で最強のバーコード作って子供たちを打ち負かすようなことはやりませんでしたが。。。)
by かたおかいくお - 2007年1月10日 23時4分
バーコードバトラーですね。読み取り部がスライダーだったので、読み込ませるのが結構大変でした。
by nt - 2007年1月11日 18時59分
name:
comment:
【コメントに関する注意事項】
記事と全く関連性のないコメント(例:宣伝目的のコメントスパムなど)は、オーナーの判断により削除される場合があります。 - レコミュニ会員としてコメントする

トラックバック