みるくとはちみつの予定調和: MacOSX用のQRコード作成ソフト「草原のシマウマ(Zebra)」のサービスを作ってみる

2011-04-06

MacOSX用のQRコード作成ソフト「草原のシマウマ(Zebra)」のサービスを作ってみる

※2012/01/24 コメント欄で指摘されるまで、解説したサービスだとQRコード作成後「草原のシマウマ」が前面に来ないことに気がつかなかった。ので、QRコード作成後最前面に来るように修正。


 どうもお久しぶりぶりです。 なんか3月は全く更新しなかったみたいでダメですね。 更新ネタが無かったとかなんとかより、花粉症のおかげで体力をガリガリ削られて睡眠時間が大幅に伸びて何も出来ませんでした。 あと地震とtwitter。

 さてさて、いつものように表題の件についてです。

 MacOSX用のQRコード作成ソフト「草原のシマウマ(Zebra)」はテキストデータからQRコードを作成してくれるのですが、お世辞にも使い勝手が良いとは言い切れないものでありまして、常用するか悩んでいた所、添付されてるREADMEファイルに『サービスに対応している他のアプリケーションで選択した文字列をQRコードに変換する場合はMacOS XのアプリケーションメニューのサービスからQRCode/Clippingを実行してください。』と記載があるのでそっちの方がラクチンだなーって思ってたら、サービスのメニューにそんなものは無いし、どうやったらいいのかわからなかったので、自分で作ってみる事にしました。

 なんとMacOSX 10.6からAutomatorでサービス用のワークフローが簡単に作れちゃうんです。(ってことでMacOSX 10.6専用話)

 えーっと、貼り付けた画像通りにAutomatorで作っていただければいいのですが…。だめ? 多少解説する??

 まず、Automatorを起動して新規ワークフローはサービス(歯車アイコン)を選択します。
 ワークフロー内の一番上に画像の一番上にあるような「"サービス"は、次の選択項目〜」云々の項目が自動で作成されます。プルダウンメニューから「テキスト」と「すべてのアプリケーション」を選択します。
 これはサービスに対応しているアプリケーション全てからテキストをサービスに受け渡しますという事になります。

 次に、ライブラリから変数を選択して「v」アイコンがある「テキスト」を設置します。ここでサービスで受け渡されたテキストデータを一度変数にして、次のAppleScriptで使用出来るようにします。
 変数を選択すると、ワークフロー下部に変数名が出てくるので変数名などを変更できます。ここでは「QRcoedtext」に変更しました。


 ワークフローの最後にライブラリから「AppleScriptを実行」を設置します。
 「AppleScriptを実行」を設置すると

on run {input, parameters}

     (* Your script goes here *)

     return input
end run

 と、自動で入力されるので、READMEファイルからサンプルスクリプト

tell application "Zebra"
     DoQRCodeEncode text with "草原のシマウマ"
end tell

 を、コピーして貼り付けます。
 貼り付けると次のようになります。

on run {input, parameters}

     tell application "Zebra"
          DoQRCodeEncode text with "草原のシマウマ"
     end tell
     return input
end run

 このスクリプト内の「DoQRCodeEncode text with "草原のシマウマ"」の部分でアプリケーションにテキストを渡しています。サンプルスクリプト内の"草原のシマウマ"が渡されるテキスト部分になるのでこの部分を変数に置き換えてます。
 QRコード作成後に「草原のシマウマ」が最前面にくるように"activate"を1行追加。これで終了です。




on run {input, parameters}

     tell application "Zebra"
          DoQRCodeEncode text with (item 1 of input)
          activate
     end tell

end run



 書き換えたものが上記になるのですが、前に指定したQRcoedtext変数は変数内容をinputって配列内に格納されてスクリプトに渡される(って概念でいいんだよね?)ので、渡されるテキスト変数は「item 1 of input」を指定しています。
 ようするに「QRcoedtext」とか関係ありません。
 あと「return input」ってのを削除したのは戻り値で関係ないから。戻り値とは、処理が終わったらその処理の結果を受け渡す数値だと思っていただければだいたい間違ってないと思います。

 まぁ、あまり意味がない解説ですが、わからなかったら画像通りに作っていただければ、なんとなく動いちゃいます。

 でき上がったワークフロー(サービス)は
  /(ユーザー名)/ライブラリ/Services
 内に入れてあげればサービスに追加されます。


※サービスを作ったおかげで、「草原のシマウマ(Zebra)」がお手軽に使えるようになったのはいいのだが、文字数制限がきつくてねー。せめて全角200文字ぐらい読み込んでくれるとうれしいんだけど…。作者さん、ココみてたら対応願いますよー。

※iPhoneでQRコードによるテキスト読み込みは「pomeraQR」がものすごく良く出来てます。ポメラ買ってないけど、フリーでおいしく使わせてもらってます。

※ポメラで思い出したのだが、先日初めてポメラを店頭で打鍵してみた。だめだ、キーストロークとかまったく自分に合わない。

5 件のコメント:

やもり さんのコメント...

草原のシマウマを使っていただいてありがとうございます。QRコードのバージョン20までに対応したバージョンをリリースしていますので、よかったらお試しください。

takesa さんのコメント...

やもりさん、はじめまして。作者の方に補足されてしまいましたか…。いろいろ勝手言ってすいません。

バージョン20対応版、試してみます。

saru さんのコメント...

はじめまして、サービス参考にさせて頂きました
非常に便利です(^^
ありがとうございます。
もしよろしかったらですが、
QRコード変換後、Zebraウインドウが一番手前に来るように出来ないでしょうか?
Zebraウインドウが後ろに隠れていたら、毎回毎回手前に持ってこないとQRコード読み込めません...(^^;
宜しくお願い致します。

takesa さんのコメント...

saruさんどうも。
QRコード変換後「草原のシマウマ」が最前面に来るようにAppleScriptをつけたしました。
ブログの内容を修正しましたので、そちらを参考にしてください。

saru さんのコメント...

ありがとうございます(^^
早速試して見ました!
ばっちりOKです 嬉しいです(^^