Tomeba のすべての投稿

PDF帳票印刷サーバ

PDF帳票印刷サーバのWindows Server 2003からWindows Server 2008 R2 / 2012 R2に移行検討の中で、PDFツール SumatraPDFを見つけた。

帳票印刷サーバに、安定性、サポート体制、潤沢な開発システム費用があればウイングアークのSVF一択なのですが、それほどの規模もぜんぜんなく、簡単なPDFファイルを指定のプリンターに印刷するシステムを構築したい場合、以前 アクロバットリーダー AcroRd32.exeを呼び出して印刷していました。

“C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe” /h /s /t “C:\app\pdfserver\spool\1_TEST_Canon LBP9200C.pdf” “Canon LBP9200C”

これで印刷は十分できるのですが、いかせんGUIツールですので、サービスプログラムから起動したプロセスから更にAcroRd32.exeをCreate呼び出しても印刷できませんでした。
(GUIツールでもサービスから動作するものもあります。)
ですので、スタートアップに登録して、ログイン状態でないと使えませんでした。

今回、Sumatra PDFというPDF表示、印刷ツールを見つけました。
ソースコード付ですのでカスタマイズも可能です。(すばらしい。)ライセンスは、 GNU General Public License version 3.0 (GPLv3)です。

http://sourceforge.net/projects/sumatrapdf.mirror/
https://code.google.com/p/sumatrapdf/downloads/list

サービスプログラムから起動したプロセスからSumatraPDF.exeをCreate呼び出して試して見たところ、問題なく指定のプリンターに印刷できました。

“C:\apps\SumatraPDF.exe” -exit-on-print -print-to “Canon LBP9200C” “C:\apps\pdfserver\spool\1_TEST_Canon LBP9200C.pdf”

※-exit-on-print -print-toでダイアログ表示無しでサイレントで実行できます。
※デフォルトプリンターへ出力したい場合は、-print-to-default

次回の案件より、簡単なPDF帳票印刷サーバが必要な時はSumatraPDFでシステム構築提案したいと思います。

以上、メモ。

iBeacon CentOS 7で受信

iBeaconは、iOS7で追加された近距離無線を利用した通信機能です。
Estimote社がBeaconセンサーを開発し、iPhone 5sに搭載されています。
認識範囲はNFCよりも広範囲で50m程度あり、ビーコン発信側は、
UUID:128ビット文字列(RFC4122で規)
Major値:16ビット整数
Minor値:16ビット整数
です。
受信端末側は、電場強度の情報を使って、数m単位で距離を認識でき、メジャーコードやマイナーコードから任意に定義づけられた情報からそれぞれの応答・動作をします。

今後、いろんなシーンで使われていくと思われます。
「国内iBeaconサービス、続々登場!」
http://smartphone.r25.jp/news/114338
10/31リリース!「京都の市バスはiBeaconで次のバスの到着時間」
http://www.aplix.co.jp/?p=11330
当社は京都:烏丸通りに面した場所にありますので、もしかしてデータを受信できるかも?(これについてはまた別の機会に)

さて、今回は手持ちの機器でiBeaconの送信、受信を体験してみたいと思います。
まず、iBeaconは、Bluetooth Low Energy 対応の機器がないとダメです。
デバイスはBluetooth 4.0であればAndroidでも使えます、ただしAndroid端末の場合はOSが4.3以降でないとだめです。
また、Androidは今のところiBeaconの送信はライブラリーがないのでできません。受信だけとなります。

手落ちのNexus 7は2012モデルでBluetooth 3.0ですので、残念ながら受信できません。(2013モデルだとOKです。)
Screenshot_2014-11-01-22-44-51

最終的に以下の組み合わせで送受信できました。
I)iPhone同士(iPhone5sとiPhone5c) ::当然ですが。
Estimote (free) をインストール
https://itunes.apple.com/us/app/estimote-virtual-beacon/id686915066

iPhone5sをビーコン発信
iPhone5cでレーダ受信  (受信できたら小さな端末アイコンが表示されます。)
20141101_223239

受信した端末のアイコンをタップするとUUID,major,minorが分かります。
20141101_223300

II)iPhone5s ビーコン発信 / CentOS 7で受信
(CentOS 7はVmwareで動かしています。ホストPCはWindows8.1 DELL Inspiron 15 7000でBluetoothは4.0です)

CentOS 7で動かす為に必要なモジュールをインストールします。
1)BlueZ パッケージ(bleaconをインストールに必要)
#yum install bluez-libs-devel

2)#yum install npm*
#npm -v
1.3.6

3)#yum install node*
#node -v
v0.10.30

4)#npm install bleacon
エラーがなければOK

https://www.npmjs.org/package/bleacon

5)#hciconfig

hci0: Type: BR/EDR Bus: USB
BD Address: 80:86:F2:D3:00:F8 ACL MTU: 1021:5 SCO MTU: 96:5
DOWN
RX bytes:568 acl:0 sco:0 events:29 errors:0
TX bytes:390 acl:0 sco:0 commands:29 errors:0

DOWNの場合UPさせる。

  #hciconfig hci0 up

hci0: Type: BR/EDR Bus: USB
BD Address: 80:86:F2:D3:00:F8 ACL MTU: 1021:5 SCO MTU: 96:5
UP RUNNING
RX bytes:1115 acl:0 sco:0 events:56 errors:0
TX bytes:774 acl:0 sco:0 commands:56 errors:0

7)iBeacon受信プログラム

recv.js

//—————————————-
var Bleacon = require(‘bleacon’);
Bleacon.startScanning();
Bleacon.on(‘discover’, function(bleacon) {
console.dir(bleacon);
});
//—————————————-

#node recv.js で受信待ち。

8)iPhone5s Estimote ツールでビーコン発信
9)CentOS7受信結果

{ uuid: ‘xxxxxxxxxxxxxxxxxxxxx43fe94921d8’,
major: 11305,
minor: 17710,
measuredPower: -57,
rssi: -47,
accuracy: 0.5200019057155468,
proximity: ‘near’ }
{ uuid: ‘xxxxxxxxxxxxxxxxxxxxx43fe94921d8’,
major: 11305,
minor: 17710,
measuredPower: -57,
rssi: -44,
accuracy: 0.4273723450154846,
proximity: ‘immediate’ }

距離情報
近接度(proximity) [接近(Immediate),近い(Near),遠い(Far),不明(Unknown)] 精度(accuracy)

で受信できることが分かりました。
CentOS7で送信を試しましたがこちらはうまく動作しませんでしいた。
デバイスが悪いのか、モジュールが悪いのか不明です。

以前、NFCで非接触ICカードを使いログインアプリを組んだことがありますが、AndroidでBluetooth 4.0端末が入手できたら何かアプリを作成したいと思います。
iPhone iOS7から標準搭載されたiBeaconですが、O2Oは「Online to Offline」の要となっていくかと思います。