最近の更新

2011-07-05
2011-04-24
2011-04-23

Menu

Wikiガイド

QRコード生成機能

mod_chxjにQRコードを生成させることも可能です。

QRコード出力ハンドラの登録

QRコード出力機能を使用するには、QRコードハンドラを登録します。 httpd.confに以下の記述を追加します。

  AddHandler chxj-qrcode .qrc
なお、ハンドラを登録しないでも、出力フィルターを経由させることで、QRコードを出力させることも可能です。(※QRコードの動的出力を参照)

QRコードソースファイルの設置

ハンドラを登録したら、その登録した拡張子を持つファイルを用意します。

例:a.qrc

  <?xml version=1.0 ?>
  
  <qrcode>
    <version>13</version>
    <level>H</level>
    <mode>8bit</mode>
    <size>1</size>
    <data>テストデータです</data>
  </qrcode>
.qrcファイルは、qrcode要素、version要素、level要素、mode要素、size要素、data要素から成り立ちます。
  1. versionタグ versionタグは出力するQRコードの生成に利用するバージョンを指定します。 使用できるバージョンは、1〜40までの40種類です。
  2. levelタグ levelタグは出力するQRコードの生成に利用する誤り検出レベルを指定します。  使用できるレベルは、L、Q、M、Hの4つです。
  3. modeタグ modeタグは出力するQRコードの生成に利用するモードを指定します。 使用できるモードは、NUM(数字モード)ALPHA(英数字モード)8BIT(8ビットバイトモード)KANJI(漢字モード)です。
  4. sizeタグ sizeタグは1モジュールを何ピクセルであらわすかを指定します。 0を指定した場合は、4を指定した場合と同じ動作をします。  使用できるサイズは、0〜20までです。
  5. dataタグ dataタグは、QRコードに出力するデータを指定します。改行した場合は、改行文字もQRコード内に符号化されます。

QRコードの動的出力機能

プログラム等を使用し、動的にQRコードを出力したい場合は、上記の.qrcファイルの内容をそのままOutputFilterに通してあげればOKです。 つまり、ChxjConvertRuleディレクティブで"EngineOn"と指定したURIが指すディレクトリに設置すれば良いということです。 mod_chxj内部で、Content-Typeがtext/xmlの場合、QRCode用のファイルであるかどうかを一度読み込んで判断するので、Content-Typeには、 text/xmlを設定してください。

例: phpでQRコードを動的に出力する例

    <?php
      $version = $_POST["version"];
      $level   = $_POST["level"];
      $mode    = $_POST["mode"];
      $size    = $_POST["size"];
      $data    = $_POST["data"];

      header("Content-Type: text/xml; charset=Shift_JIS");

      echo "<qrcode>\n";
      echo "<version>".$version."</version>\n";
      echo "<level>".$level."</level>\n";
      echo "<mode>".$mode."</mode>\n";
      echo "<size>".$size."</size>\n";
      echo "<data>".$data."</data>\n";
      echo "</qrcode>\n";
    ?>
そして、上記のコードを、mod_chxj変換エンジンが処理するはずであるところに設置すれば完了です。