印刷物の制作段階でQRコードが正しいものかチェックするのを効率よくできないかと考えております。
現在は紙に出力したものをスマホを手に持ってQRコード読み取りアプリを使い、手動で確認しています。
手間はかかりますが、こんな方法を考えてみました。
まず
http://zbar.sourceforge.net/download.html
から ZBar 0.10 Windows installer をダウンロードしてインストールします。
次に
http://www.ghostscript.com/download/gsdnld.html
から Ghostscript 9.14 for Windows をダウンロードしてインストールします。
環境変数 PATH の最後に C:\Program Files\gs\gs9.14\bin;C:\Program Files\gs\gs9.14\lib; を追加します(デフォルトの設定でインストールした場合)。
つまり、現在の値が
C:\Windows\system32;C:\Windows;
だった場合は
C:\Windows\system32;C:\Windows;C:\Program Files\gs\gs9.14\bin;C:\Program Files\gs\gs9.14\lib;
にします。
やり方がわからない場合は
http://next.matrix.jp/config-path-win7.html
http://algorhythnn.jp/blg/2014/03/12/windows7-setting-path/
http://imagingsolution.net/program/windows8/how-to-set-environment-variables/
あたりを参考に。
エクスプローラで C:\Program Files\gs\gs9.14\bin に移動し(デフォルト設定の場合)、gswin32c.exe または gswin64c.exe のいずれか存在する方を gs.exe にリネームします(コピーしてからリネームでも良い)。
適当なフォルダを新規作成し、そこへ ZBar をインストールしたフォルダにある zbarimg.exe と拡張子がdllのファイル、そして処理したいPDFファイルをコピーします。
メモ帳を起動し、以下の内容を貼り付けて同じフォルダに QR.bat と言う名前で保存します。
@echo off set TARGETPDF=%* if "%TARGETPDF%"=="" set TARGETPDF=*.pdf rem if exist QRDATA.txt del QRDATA.txt for %%F in (%TARGETPDF%) do echo %%F & zbarimg --raw -q "%%F">>QRDATA.txt pause
先ほど作ったフォルダ内にあるすべてのPDFファイルを処理する場合には QR.bat をダブルクリックして起動します。
特定のPDFファイルのみ処理したい場合は、スタートメニューにある「コマンドプロンプト」を起動し、先ほど作成したフォルダに移動します。
たとえば c:\qrcode というフォルダを作ったのであれば、
pushd c:\qrcode
と打ち込んでエンターを押します。
あとは、QR に続けて対象のPDFファイルの名前を入力すればOKです。
test.pdf というファイル名であれば、
QR test.pdf
と打ち込んでエンターです。
QR test.pdf sample.pdf
の様に複数のPDFファイルを指定できますし、
QR c:\data\*.pdf
と言うこともできます。
すると、QRDATA.txt と言うファイルが作成されるので、その中に認識されたデータが貯まっていきます。追記していってるので、自分で消さない限り古いデータも残ったままです。
QRreader beta
こちらを参考にしてみてはいかがでしょうか。
http://ameblo.jp/kosado/entry-11222488140.html
すみません、これはウェブページでないと上手くいかないようですね。PDFで同じようなことができるものがあればいいのですが。
PDFをwebサーバに上げるなどしてブラウザで表示させればできる気がするのですが、、、。
以前、同僚がやっていたような気がするもので。
違っていたらごめんなさい。
http://jp.fujitsu.com/group/fct/services/revorect2/
イメージファイルからQRコードを抽出します。
PDFを作成する元ファイルかもしくはPDFを仮想プリンタでイメージファイルに出力して使えば良いでしょう。
http://www.kernelcomputer.co.jp/rs3bar_apeos.htm
スペックが過剰かもしれませんがPDFファイルから直接QRコードを読み取って処理することができます。
手間はかかりますが、こんな方法を考えてみました。
まず
http://zbar.sourceforge.net/download.html
から ZBar 0.10 Windows installer をダウンロードしてインストールします。
次に
http://www.ghostscript.com/download/gsdnld.html
から Ghostscript 9.14 for Windows をダウンロードしてインストールします。
環境変数 PATH の最後に C:\Program Files\gs\gs9.14\bin;C:\Program Files\gs\gs9.14\lib; を追加します(デフォルトの設定でインストールした場合)。
つまり、現在の値が
C:\Windows\system32;C:\Windows;
だった場合は
C:\Windows\system32;C:\Windows;C:\Program Files\gs\gs9.14\bin;C:\Program Files\gs\gs9.14\lib;
にします。
やり方がわからない場合は
http://next.matrix.jp/config-path-win7.html
http://algorhythnn.jp/blg/2014/03/12/windows7-setting-path/
http://imagingsolution.net/program/windows8/how-to-set-environment-variables/
あたりを参考に。
エクスプローラで C:\Program Files\gs\gs9.14\bin に移動し(デフォルト設定の場合)、gswin32c.exe または gswin64c.exe のいずれか存在する方を gs.exe にリネームします(コピーしてからリネームでも良い)。
適当なフォルダを新規作成し、そこへ ZBar をインストールしたフォルダにある zbarimg.exe と拡張子がdllのファイル、そして処理したいPDFファイルをコピーします。
メモ帳を起動し、以下の内容を貼り付けて同じフォルダに QR.bat と言う名前で保存します。
@echo off set TARGETPDF=%* if "%TARGETPDF%"=="" set TARGETPDF=*.pdf rem if exist QRDATA.txt del QRDATA.txt for %%F in (%TARGETPDF%) do echo %%F & zbarimg --raw -q "%%F">>QRDATA.txt pause
先ほど作ったフォルダ内にあるすべてのPDFファイルを処理する場合には QR.bat をダブルクリックして起動します。
特定のPDFファイルのみ処理したい場合は、スタートメニューにある「コマンドプロンプト」を起動し、先ほど作成したフォルダに移動します。
たとえば c:\qrcode というフォルダを作ったのであれば、
pushd c:\qrcode
と打ち込んでエンターを押します。
あとは、QR に続けて対象のPDFファイルの名前を入力すればOKです。
test.pdf というファイル名であれば、
QR test.pdf
と打ち込んでエンターです。
QR test.pdf sample.pdf
の様に複数のPDFファイルを指定できますし、
QR c:\data\*.pdf
と言うこともできます。
すると、QRDATA.txt と言うファイルが作成されるので、その中に認識されたデータが貯まっていきます。追記していってるので、自分で消さない限り古いデータも残ったままです。
すみません勘違いしてました。パラメータが変わってたんですね。
ではこんなんでどうでしょう?
@echo off if exist images\nul rd/s/q images rem if exist QRDATA.txt del QRDATA.txt md images for %%F in (*.pdf) do ( del/q .\images\*.* set /P ZBAR="%%F:"<nul gs -q -dQUIET -r300 -dSAFER -dPARANOIDSAFE -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=0 "-sDEVICE=jpeg" "-sOutputFile=.\images\image%%d.jpg" "-f%%F">nul 2>&1 if ERRORLEVEL 1 (echo PDFからの変換に失敗しました) else ( for %%J in (.\images\*.jpg) do ( zbarimg --raw -q "%%J">>QRDATA.txt ) echo OK ) ) rd/s/q images
これで目的のことができました! 非常に丁寧に説明いただきまして勉強になりました。ありがとうございます!
ImageMagick と ZBARを使えば、PDFファイルからQRコードを読み込んでテキスト(URLを含む)に変換することができます。
PHPを使ったスクリプトが下記サイトで紹介されています。
http://www.aguuu.com/archives/2009/12/zbar-bar-code-reader/
いくつか考えてみました。
1.QRコードは大きさがかなり小さくても読み取りが可能なので、QRコードをスクリーンショットで集めて一枚の紙に印刷して次々チェックしてみてはいかがでしょうか。
2.PDFからQRコードのページをJPEGにする。JPEGをWEB上でQRデコード出来るサービス(例;http://zxing.org/w/decode.jspx)に送信する。
3.QRコードは液晶画面に表示しててもスマホで認識が可能なので、印刷せずに、画面いっぱいにQRコードは並べて表示して複数台のスマホで次々読み取ってみる。
印刷物(ポスター)などは、QRコード掲載位置が不定なので、コンピュータの自動処理をするのは面倒かもしれない。
QRコード毎回チェックは面倒だと思うので、いくつもの表示パターンを試しに作ってみて、読み取りに失敗しやすいパターンを試してみて、印刷前にQRを見て失敗しやすいパターンかどうかを、すぐに判断できるノウハウを蓄積してみてはどうでしょうか。
すみません勘違いしてました。パラメータが変わってたんですね。
2014/05/27 01:00:07ではこんなんでどうでしょう?
これで目的のことができました! 非常に丁寧に説明いただきまして勉強になりました。ありがとうございます!
2014/05/27 01:18:23