弊社の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オプションで最適化ができたようです。