QPDFを使って壊れたPDFファイルを調査&最適化する

  • 最新の投稿
    2026.05.15
    アバター画像
    根本
    QPDFを使って壊れたPDFファイルを調査&最適化する

    弊社のPDF分割アプリでPDFファイルを処理する際に
    「PDFファイルが壊れています」というエラーが出て処理できないケースがございます。

    原因を調べるツールとしてQPDFというフリーソフトがあります。
    下記のURLからソフトをダウンロードしてください。
    https://github.com/qpdf/qpdf/releases

    ダウンロードしたexeファイルをクリックするとインストーラーが起動します。

    ※ユーザーアカウント制御の画面は「はい」で進めます

    セットアップ画面中、下図の画面では”Add qpdf to the system PATH for current user”を選べば環境変数のPATHにこのqpdfを追加できると思ったのですが
    最後にエラーが出てうまくいきませんでした。

    なので下図のようにインストール先を”C:\qpdf”という簡単な場所に変えてインストールしました。
    (コマンドラインからqpdfを実行するのでパスを短くしたいのです)

    C:\qpdf\bin のフォルダが下図のようになっていればOKです。

    Windows PowerShellを開いて”C:\qpdf\bin\qpdf.exe –version”と入力して下記のように表示されれば正常です。

    それでは問題のあるPDFファイルのあるフォルダに移動して調査してみましょう。
    下記のように”cd {PDFファイルのあるフォルダ}”で移動してから、”C:\qpdf\bin\qpdf.exe –check error.pdf”のように実行します。

    実行すると…
    checking error.pdf
    PDF Version: 1.7
    File is not encrypted
    File is not linearized
    No syntax or stream encoding errors found; the file may still contain
    errors that qpdf cannot detect

    “No syntax or stream encoding errors found”ということなので文法的におかしくはない、とのこと。

    これは弊社の使うPDFライブラリの文法チェックが厳格すぎる、あるいはライブラリのバグで正しく読み込めていないということです。
    お客様には大変申し訳ないですがライブラリのバグは弊社には直せないです。。

    代替手段として以下のコマンドでQPDFを使ってPDFの最適化を試みます。
    C:\qpdf\bin\qpdf.exe --linearize error.pdf C:\qpdf\ok.pdf

    出力された”ok.pdf”をアプリに取り込んで実行してみますと、「PDFファイルが壊れています」というエラーが出ることなく正常に処理が完了しました。
    QPDFのlinearizeオプションで最適化ができたようです。

    アバター画像
    根本
    ウイングフォイルという海でする趣味にハマってます。風がある日はおおむね仕事を抜け出して南大阪の二色浜にいます。