FileMakerでQRコード作成やQRコード読み取りをするいくつかの方法
FileMaker でQRコードを作成したり、読み取りをしたりといった機能を作る機会があったので、そのときに試した方法をいくつかご紹介してみたいと思います。
QRコード生成について
テキストフィールドに入力された文字列から QR コードを表示させます。
FileMaker には商用ソフトで QR コード作成プラグインもあったりしますが、今回はお金のかからない方式で考えてみました。
なお、開発環境は下記の通りです。
- Mac OSX
- FileMaker Pro 12
1. Google Chart API を使う方法
Google Chart API を利用する方法です。既存の公開 API を利用するだけなので、一番手っ取り早い方法かと思います。
レイアウトにテキストフィールドとWebビューアを配置して、下記のようなURLを指定します。
[text]
"http://chart.apis.google.com/chart?cht=qr&chs=200×200&chl=" & テーブル名::フィールド名
[/text]
これで、テキストフィールドを変更するたびに、Web ビューアに QR コードが表示されます。
当たり前ではありますが、Google Chart API を使うにはインターネットに接続された環境であることが前提となります。
この方式は HTTP リクエストを実行するだけなので、例えば QR コードを返す Web アプリを作ってしまえば、閉じられたネットワーク環境でも同様のことはできます。
PHP であれば、この辺りのライブラリを利用して QR コードが結構簡単に作れてしまいます。
2. libqrencode を使う方法
オープンソースの QR コード生成ライブラリ libqrencode を使う方法です。
まず、 qrencode という実行コマンドをインストールしておきます。
[shell]
# wget http://fukuchi.org/works/qrencode/qrencode-3.4.2.tar.gz
# ./configure
# make
# make install
[/shell]
FileMaker では、下記のように AppleScript から qrencode を実行するスクリプトを指定して、QR コード画像ファイルを生成します。
[text]
"do shell script \"cd " & $apppath & ";/usr/local/bin/qrencode -o output.png " & テーブル名::フィールド名 & "\""
[/text]
あとは、「ピクチャを挿入する」スクリプトで画像ファイルをオブジェクトフィールドに表示させます。
ちなみに、 Windows 環境であれば、同サイトから qrencode-win32 というライブラリをインストールすると qrcode.exe という実行ファイルができるので、それを実行する形で同様な仕組みができます。
2014/8/27追記
Windows 環境での qrencode-win32 の使い方について、お問い合わせを頂きましたので追記しておきます。
※ qrencode-win32 はこちらからダウンロードして「C:\Program Files\QRCodeGui\qrcode.exe」にインストール済みとします。
スクリプトの「Event を送信」でオプションの計算式に、以下のような文字列を指定します。
[text]
"\"C:\Program Files\QRCodeGui\qrcode.exe\" -o \"C:\path\to\output.png\" "
& テーブル名::フィールド名
[/text]
あとは、上のスクリプトを実行すれば C:\path\to\output.png に画像ファイルが作成されます。
QRコード読み取りについて
FileMaker Go から QR コードリーダーアプリを起動して、 QR コードを読み取る処理を試してみました。
ネットで評判の良かった幾つかのアプリを試してみたうち QRdeCODE、pic2shop で確認が取れたやり方となります。
開発環境は下記の通りです。
- Mac OSX
- FileMaker Pro 12
- ( QR コード読み取り時)FileMaker Go 12
1. QRdeCODE を使う方法
QR コードの開発元であるデンソーから提供されている QR コードリーダーアプリです。読み取り能力は高いし、高速だし、¥170円で十分元が取れるアプリだと思います。
まずFileMaker で、任意のスクリプトを作成し、次のような URL を開く処理を指定します。
[text]
"QRdeCODE://fmp://$/" & Get ( ファイル名 ) & "?script=scan_qrdecode¶m="
[/text]
- 「QRdeCODE」は QRdeCODE の URL スキーム名です
- 「fmp」は FileMaker Go 12 の URL スキーム名です
- 「scan_qrdecode」は コールバックスクリプト名を指定します
このスクリプトを実行すると、QRdeCODE アプリが起動します。
また、scan_qrdecode という名前でスクリプトを作成します。 scan_qrdecode の中で「Get ( スクリプト引数 )」を指定すれば、 QRdeCODE の読み取り結果を取得することができます。
2. pic2shop を使う方法
ネット上でも FileMaker との連携実績をよく見かけるアプリです。こちらは無料アプリです。読み取る位置にバーが表示されるのが、なかなか使いやすいリーダーです。
QRdeCODE と同様に次のような URL を開くスクリプトを作成します。このスクリプトを実行すると pic2shop が起動します。
[text]
"pic2shop://scan?callback=fmp%3A//%24/" & Get ( ファイル名 ) & "%3Fscript%3Dscan_pic2shop%26param%3DQR"
[/text]
あとは、 scan_pic2shop という名前のスクリプトを作成し、「Get ( スクリプト引数 )」で QRdeCODE の読み取り結果を取得できるのは一緒です。
サンプルアプリ
上記の処理が動作するサンプルアプリは、githubに公開してますのでご自由にお試しください。
他にも色々方法があると思いますが、皆さんのオススメの方法などありましたらぜひ教えてください!
photo credit: Fabrice de Nola via photopin cc