PDF内にある複数のQRコードに埋め込まれたリンクを一括でURLのリストにする方法はないでしょうか?

印刷物の制作段階でQRコードが正しいものかチェックするのを効率よくできないかと考えております。
現在は紙に出力したものをスマホを手に持ってQRコード読み取りアプリを使い、手動で確認しています。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2014/05/21 21:32:06
  • 終了:2014/05/27 01:20:41

ベストアンサー

id:siachan No.3

siachan回答回数80ベストアンサー獲得回数142014/05/22 21:39:12

ポイント500pt

手間はかかりますが、こんな方法を考えてみました。

まず
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 と言うファイルが作成されるので、その中に認識されたデータが貯まっていきます。追記していってるので、自分で消さない限り古いデータも残ったままです。

他10件のコメントを見る
id:siachan

すみません勘違いしてました。パラメータが変わってたんですね。
ではこんなんでどうでしょう?

@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
2014/05/27 01:00:07
id:YN710325

これで目的のことができました! 非常に丁寧に説明いただきまして勉強になりました。ありがとうございます!

2014/05/27 01:18:23

その他の回答(4件)

id:kanonk No.1

kanonk回答回数327ベストアンサー獲得回数162014/05/21 22:52:06

QRreader beta
こちらを参考にしてみてはいかがでしょうか。
http://ameblo.jp/kosado/entry-11222488140.html

id:YN710325

すみません、これはウェブページでないと上手くいかないようですね。PDFで同じようなことができるものがあればいいのですが。

2014/05/21 23:13:34
id:kanonk

PDFをwebサーバに上げるなどしてブラウザで表示させればできる気がするのですが、、、。
以前、同僚がやっていたような気がするもので。
違っていたらごめんなさい。

2014/05/21 23:37:01
id:gizmo5 No.2

gizmo5回答回数484ベストアンサー獲得回数1382014/05/22 09:02:29

REVORECT APL QRリーダー

http://jp.fujitsu.com/group/fct/services/revorect2/
イメージファイルからQRコードを抽出します。
PDFを作成する元ファイルかもしくはPDFを仮想プリンタでイメージファイルに出力して使えば良いでしょう。


RS3BAR for ApeosWare Flow Service

http://www.kernelcomputer.co.jp/rs3bar_apeos.htm
スペックが過剰かもしれませんがPDFファイルから直接QRコードを読み取って処理することができます。

id:siachan No.3

siachan回答回数80ベストアンサー獲得回数142014/05/22 21:39:12ここでベストアンサー

ポイント500pt

手間はかかりますが、こんな方法を考えてみました。

まず
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 と言うファイルが作成されるので、その中に認識されたデータが貯まっていきます。追記していってるので、自分で消さない限り古いデータも残ったままです。

他10件のコメントを見る
id:siachan

すみません勘違いしてました。パラメータが変わってたんですね。
ではこんなんでどうでしょう?

@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
2014/05/27 01:00:07
id:YN710325

これで目的のことができました! 非常に丁寧に説明いただきまして勉強になりました。ありがとうございます!

2014/05/27 01:18:23
id:snow0214 No.4

snow0214回答回数470ベストアンサー獲得回数1162014/05/23 21:49:05

ImageMagick と ZBARを使えば、PDFファイルからQRコードを読み込んでテキスト(URLを含む)に変換することができます。

PHPを使ったスクリプトが下記サイトで紹介されています。
http://www.aguuu.com/archives/2009/12/zbar-bar-code-reader/

id:takuya_1st No.5

takuya回答回数30ベストアンサー獲得回数12014/05/24 01:44:59

いくつか考えてみました。

1.QRコードは大きさがかなり小さくても読み取りが可能なので、QRコードをスクリーンショットで集めて一枚の紙に印刷して次々チェックしてみてはいかがでしょうか。

2.PDFからQRコードのページをJPEGにする。JPEGをWEB上でQRデコード出来るサービス(例;http://zxing.org/w/decode.jspx)に送信する。
3.QRコードは液晶画面に表示しててもスマホで認識が可能なので、印刷せずに、画面いっぱいにQRコードは並べて表示して複数台のスマホで次々読み取ってみる。

印刷物(ポスター)などは、QRコード掲載位置が不定なので、コンピュータの自動処理をするのは面倒かもしれない。

QRコード毎回チェックは面倒だと思うので、いくつもの表示パターンを試しに作ってみて、読み取りに失敗しやすいパターンを試してみて、印刷前にQRを見て失敗しやすいパターンかどうかを、すぐに判断できるノウハウを蓄積してみてはどうでしょうか。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません