バーコード生成

文字を入力するとバーコードを生成します。といっても単にバーコードフォントを表示しているだけ(^^)なので、技術的にはこれといって何の変哲もなし。このサンプルでのバーコードはCODE39なので、入力文字はそれに対応した英数字記号のみ有効です。

私はバーコードそのものは詳しくないので、そこは追求しないようにお願いします(^^;)。

CODE39で使える文字(合計43個)
数字0~910個
アルファベットA~Z26個
※小文字で入力しても大文字に変換されます
記号- . 空白 $ / + % 7個
※スタート/ストップビットコードはどちらも * で、バーコードの前後に * が1個ずつ自動付加されます
例) 12345 は *12345*
※表示スペースの関係で入力は9文字まで

バーコードフォントCODE39.ttfは株式会社テクニカルが無償提供しているものを利用しています。

この内容を表示するためには Adobe Flash Plugin が必要です。

<?xml version="1.0" encoding="UTF-8"?>
<canvas proxied="false" width="440" height="200" bgcolor="0xffffff">
  <font name="barcode" src="CODE39.ttf"/>
  <method name="print" args="v">
    var p = new PrintJob();
    if(p.start()){
      p.addPage(v.getMCRef(),{xMin:0,xMax:550,yMin:0,yMax:800});
      p.send();
    }
    delete p;
  </method>
  <class name="dispBarcode" yoffset="-10">
    <attribute name="ed" type="string"/>
    <attribute name="print" type="boolean" value="false"/>
    <text x="7" font="barcode" fontsize="30">
      <handler name="oninit">
        this.disp();
        if(classroot.print)this.setAttribute('fontsize',18);
      </handler>
      <handler name="onkeyup" reference="global[classroot.ed]">
        this.disp();
      </handler>
      <method name="disp">
        var e = global[classroot.ed].getText();
        if(e==""){
          this.clearText(); 
          parent.txt.clearText(); 
        }else{
          this.setText("* " + e + " *"); 
          parent.txt.setText(this.text);
        }
      </method>
    </text>
    <text name="txt" x="20" y="26" fontsize="15" fgcolor="0x555555">
      <handler name="oninit">
        if(classroot.print){
          this.setAttribute('fontsize',8);
          this.setAttribute('y',18);
        }
      </handler>
    </text>
  </class>
  <view bgcolor="0x999999" width="${canvas.width}" height="${canvas.height}">
    <hbox align="center" valign="middle" spacing="15">
      <!-- 入力エリア -->
      <vbox spacing="10">
        <text fgcolor="0xffffff" fontsize="15"><b>▼コード入力</b></text>
        <edittext id="ed1" maxlength="9" pattern="[0-9A-Z-. $/+%]*" >SAMPLE123</edittext>
        <edittext id="ed2" maxlength="9" pattern="[0-9A-Z-. $/+%]*" />
        <edittext id="ed3" maxlength="9" pattern="[0-9A-Z-. $/+%]*" />
        <view>
          <button onclick="canvas.print(printarea)">印刷</button>
          <button align="right" onclick="help.show.doStart()">ヘルプ</button>
        </view>
      </vbox>
      <!-- 表示エリア -->
      <vbox yoffset="-5" width="290" height="170" bgcolor="0xffffff" spacing="7" clip="true">
        <dispBarcode ed="ed1"/>
        <dispBarcode ed="ed2"/>
        <dispBarcode ed="ed3"/>
      </vbox>
    </hbox>
  </view>
  <!-- ヘルプ -->
  <window id="help" title="ヘルプ" y="-210" width="310" height="200" closeable="true" >
    <animator name="show" attribute="x" to="125" duration="1" start="false" onstop="parent.show2.doStart()"/>
    <animator name="show2" attribute="y" from="-210" to="2" duration="900" start="false"/>
    <method name="close">
       this.animate('y',-210,500,false);
    </method>
    <vbox>
      <text><font color="#0000ff"><b>CODE39で使える文字</b></font>(合計<b>43</b>個)</text>
      <vbox x="10">
        <text>・数字(<font color="#ff0000"><b>0~9</b></font>):<b>10</b></text>
        <text>・アルファベット(<font color="#ff0000"><b>A~Z</b></font>):<b>26</b></text>
        <text x="10" fontsize="11" fgcolor="0x555555">※小文字で入力しても大文字に変換されます</text>
        <text>・記号(<font color="#ff0000"><b>- . 空白 $ / + %</b></font> ):<b>7</b></text>
      </vbox>
      <text>※スタート/ストップビットコードはどちらも * で、</text>
      <text x="11">バーコードの前後に * が1個ずつ自動付加されます</text>
      <text x="20" fgcolor="0x555555"><b>例) 12345 は *12345*</b></text>
      <text>※表示スペースの関係で入力は9文字まで</text>
    </vbox>
  </window>
  <!-- 印刷エリア -->
  <view id="printarea" y="-1000" width="550" height="800" bgcolor="0xffffff" clip="true">
    <vbox x="20" y="50" spacing="7" >
      <text fontsize="30">【 バーコードテスト印刷 】</text>
      <view height="20"/>
      <dispBarcode ed="ed1" print="true" />
      <dispBarcode ed="ed2" print="true" />
      <dispBarcode ed="ed3" print="true" />
      <view height="20"/>
      <text>バーコードリーダーでたぶん読み取れます。</text>
      <text>でもやったことないのでわかりません。</text>
      <text>読み取れなかったらゴメンナサイ m(_ _)m</text>
      <view height="20"/>
      <text fgcolor="0x666666">バーコードフォントCODE39.ttfは株式会社テクニカルが</text>
      <text fgcolor="0x666666">無償提供しているものを利用しています。</text>
      <text fgcolor="0x666666">http://www.technical.jp/handbook/chapter-font1.html#font</text>
    </vbox>
  </view>
</canvas>
barcode.txt · 最終更新: 2009/10/18 03:36 (外部編集)
Copyright © 2008~ずっと ason(minamotonoason@gmail.com)

chuumap 中小企業ツイッターマップ 製造、加工、卸などB2B主体の個人事業者、中小企業のツイッターを、グーグルマップの住所の位置に正確に表示。
tentwi 店舗でツイート 飲食店、販売店など、一般消費者向けの店舗を構えるお店ツイッターを、グーグルマップの住所の位置に正確に表示。
廃句ったー あなたのツイッターの最近のツイートから廃句もとい俳句を生成。
みかけったー 超人気!あなたのツイッターの最近のツイートからみかけの年齢と性別を診断。
キキキーったー 最近のツイートからキーの使用回数をしらべます。
SLOTTER(すろったー) あなたのツイッターのタイムラインのアイコンでスロット。FLASHゲーム。
MultiLangTweet 一度に48ヶ国語に翻訳してツイート。
英訳ったー 英訳または日本語訳してツイート。
バンドメンバー募集サイト シンプルなバンドメンバー募集サイト。
CMS総合デモサイト 有名オープンソースCMS、EC、SNS、Wikiを一度に全部体験できる総合デモサイト
ビズロック BizRock(ビズロック)~音楽ライブでプレゼン!情熱型ビジネス交流会