書くことが思いつかないので昔のテキストあさってます。okita です。
数年前のテキストで
「バーコード出力」っていうのがありました。
ということで「GeneXusのPDFでバーコード出力」
とりあえずテキストはあるけどネットで検索。
テキストが適当すぎてわからんかったw
「GeneXus バーコード出力」
http://www.gxopen.com/forumsr/servlet/viewthread?ARTECH,25,172244
GeneXus のフォーラムがありました。
とりあえずフォントをいれれば出るぞっと・・・フォントを探そう。
バーコードにも種類があるようで
「一般的な商品で使われるものは、
日本がJANコード、ヨーロッパがEAN、北米がUPCである。
物流用途ではITFコード、CODE39、CODE128、NW-7などが使われている。
また郵便事業ではカスタマバーコードなどが使われる。」
Wikipedia 【バーコード – Wikipedia】より抜粋
フォントを探した感じ↓を見つけました。
http://www.technical.jp/barcode/font/
上記ではCODE39、CODE128、NW-7がダウンロードできます。
そして今回はNW-7でテストします。
※EAN13等を使いたい場合は↓
http://sourceforge.jp/projects/sfnet_openbarcodes/
http://grandzebu.net/informatique/codbar-en/codbar.htm
ただし出力したいデータを変換しないと出力できないみたいです。
・・・・・変換ロジックの解説はまた今度にしましょうw
というわけでフォントをインストールしてGeneXusで出力してみよう!
出ました!これでOK
ただしこのままだとシステムをサーバにアップするとバーコード出ません。
ためしに先日のUbuntu にアップしてみます。
ヌルポになったw 予想外!
ということでサーバにもフォントをインストールします。
インストールしたのでこれで問題ない
あれ・・・ヌルポだ・・・インストールしただけじゃダメなのかwww
おそらくPDFの設定ファイルが Windows のままだからでしょう!
PDFの設定ファイルとはGeneXusが自動生成で作成した
「PDFReport.ini」というファイルです。
一度でもPDFを出力するとシステムのディレクトリのどこかにいます。
Java + Tomcat の場合⇒「webapps/システム/WEB-INF/」
「PDFReport.ini」を修正します。
以下の部分を修正しました。
FontsLocation= /usr/share/fonts/truetype/
[Fonts Location (Sun)]
NW-7= /usr/share/fonts/truetype/NW-7.ttf
そして以下を追記
[Embeed Fonts]
NW-7= true
↑修正後の設定ファイルの中身。ターミナルで申し訳ない。
そしてTomcat再起動してPDF出力~
出ました!しかしこのままだとフォントファイルが存在しないPCで見た場合
バーコードが表示されません。
なのでPDFにバーコードフォントを埋め込みます。
ちなみに以下がバーコードフォント無しのスマホで
バーコードフォントが埋め込まれていないPDFを見た場合
「PDFReport.ini」の以下の部分を修正しました。
Embeed Fonts= true
もう一回出力。
これで出力されて
バーコードフォントが埋め込まれていることがわかります。
ためしにスマホでも見てみると・・・・ちゃんと出てます^^
これで最低限バーコードフォントが埋め込めました。
他にも設定ファイルにはいろいろ設定できますが今回は割愛
以上です。
ちなみにPDFの設定ファイルを編集した場合は
Tomcat等を再起動したほうがちゃんと読み込みが行われます。