PDFファイル内のQRコードをPCで読み取り!簡単ステップバイステップガイド

読み取る理由と基本的な考え方
PDFに埋め込まれたQRコードは、スマホだけではなくPCでも簡単にデコードできます。

  • まず「QRコードが画像としてPDF内に埋まっている」ことを想定し、
  • それを「画像ファイルに変換する」か「直接PDFを読み取る」かの二つの流れで進めます。
    本ガイドでは、Windows・macOS・Linux全環境で使える無料かつ使いやすいツールをピックアップし、ステップバイステップで解説します。

1. 事前準備 ― 必要なアプリ・ツールは何?

OS 推奨ツール 無料・有料 備考
Windows QR Code Desktop Reader (ZBar‑DLL) 無料 直接PDFを開いて読み取れる
macOS ZXing Decoder Online (ブラウザ) 無料 画像をドラッグ&ドロップで読み取る
Linux zbarimg (コマンドライン) 無料 apt install libzbar0 でインストール
共通 PDF画像抽出用: pdf2image (Python), Adobe Acrobat Reader (有料/無料版) 無料/有料 QRコード一部分だけを抜き出す
共通 オンラインリーダー: qr-code-reader.com 無料 ファイルアップロードですぐ解析

ポイント

  • PDFのページが多い場合は「バッチ処理」を行えるツールを優先してください。
  • 画像の解像度が低いと読めないので、抽出時に「300‑dpi 以上」推奨。

2. PDFからQRコード画像を抜き出す方法

2‑1. Adobe Acrobat Reader を使う(Windows/macOS)

  1. PDFを開く
  2. ツール > 画像を選択 を選び、QRコード部分をドラッグで囲む
  3. 右クリック → 画像をコピー
  4. 別の画像編集ソフトで 貼り付け → PNG 等で保存

注意

  • 画像をコピーすると、ページ全体の解像度で取得されるため、縮小サイズになることがあります。
  • 画像編集ソフトは「GIMP」や「Paint.NET」など無料で手軽に利用できます。

2‑2. pdf2image(Python)で一括変換

pip install pdf2image pillow
from pdf2image import convert_from_path

pages = convert_from_path("sample.pdf", dpi=300)
for i, page in enumerate(pages):
    page.save(f"page_{i+1}.png", "PNG")
  • これで PDF の各ページが画像として保存されます。
  • 画像内に複数 QR コードがある場合は OpenCV で二次的に領域を検出して切り出すことも可能です。

メリット

  • GUI を持たず自動化やスクリプト化が容易
  • 大量のファイルでも高速に変換

2‑3. pdftoppm(Linux)で高速変換

sudo apt-get install poppler-utils
pdftoppm -jpeg -rx 300 -ry 300 sample.pdf output
  • output-1.jpg, output-2.jpg, … のように出力されます。
  • JPEG で保存するとファイルサイズが小さく済む点は魅力。

3. 抜き出した画像をQRコードリーダーでデコード

3‑1. Windows:QR Code Desktop Reader

  1. 公式サイトから ZBar をダウンロード
  2. zbarimg.exe を右クリック → ファイルを開く で画像を選択
  3. コマンドプロンプトにデコード結果が表示
zbarimg.exe "qr_image.png"

推奨解像度:300dpi 以上。低解像度でエラーになる場合は「解像度を上げて再試行」。

3‑2. macOS/ブラウザ:ZXing Decoder Online

  1. https://zxing.org/w/decode.jspx を開く
  2. 「Browse」→ 画像ファイルアップロード
  3. 解析結果はページ下部に即座に表示

補足

  • 上記サイトはブラウザのみで完結し、ソフトインストール不要。
  • ただし大きな画像(>5MB)はアップロードに時間がかかる場合があります。

3‑3. Linux:zbarimg(コマンドライン)

zbarimg -q "qr_image.png"   # -q は quiet: 結果だけ表示
  • 出力は QR-Code: <URL>.
  • sudo apt-get install libzbar0 でインストール可能。

3‑4. Python スクリプトで一括デコード

from pyzbar.pyzbar import decode
from PIL import Image

for i in range(1, 5):
    img = Image.open(f"page_{i}.png")
    decoded = decode(img)
    for d in decoded:
        print(f"QR on page {i}: {d.data.decode('utf-8')}")

用途

  • 大量 PDF を扱う業務で、QR を自動で抜き出しデータベースへ格納したい場合に便利。

4. よくあるトラブルと対策

兆候 原因 解決策
空白文字(デコード失敗) 画像の解像度が低い、QR が部分的に切り取られている 画像を 300‑dpi 以上で再生成、QR の全体を確認
読み取れない QR が破損している、または大きさが 0.5 cm 以下 画像品質を確認し、可能なら別のコピーを抽出
長い文字列が途切れる 出力キャッシュが壊れている スクリプトを改行で分割表示、または -q オプションで全体を取得
色彩が逆転 PDF が「白地に黒コード」ではなく「黒地に白コード」 画像を反転(Photoshop 等で簡易 invert
  • 重要:PDF 生成時に「圧縮して」いると QR コードがモノクロ化されることがあります。
    • 逆に解像度を上げすぎると JPEG アーカイブ化でノイズが出るので注意。

5. 業務に役立つ拡張アイデア

  1. QR‑to‑QR:PDF から抽出した QR コードを再度コード化し、別の形で保存。
    • 例えば、データベースへの埋め込み用に qrcode ライブラリで新規生成。
  2. 複数 QR の並列処理concurrent.futures でマルチスレッド処理。
  3. OCR との統合:QR コードに添えられた画像説明(メッセージ)を OCR で抽出し、データフロー全体を統括。
  4. API 連携:Google Vision API や Azure QR Reader を使えば、大量データのクラウド化容易。

業務効率化:実際に PDF が 1 つあたり 10 個以上の QR コードを持つケースでは、スクリプトベースで自動バッチを作ると時間を大幅短縮できます。


6. まとめ ― もう一度チェックリストを走れ

  • PDF → 画像変換:300‑dpi 以上を確保
  • 画像保存:png/jpg で保存、ファイル名は分かりやすく
  • QR リーダー:専用アプリ(ZBar、ZXing)やオンラインツールでデコード
  • 結果の確認:URL、テキスト、データ構造を必ずチェック
  • トラブルシューティング:画像品質が重要

これで「PDF ファイル内の QR コードを PC で読み取る」作業が 初級者から上級者まで実践可能なフロントラインになります。
何度でも手順を踏めば、PDF の裏に潜んだ QR コードがPCで簡単に読み取れるようになるでしょう。

コメント