FPDIで、既存のPDFを読み込む時に、圧縮が使われた文書はサポートしていないという警告が出る件の対策

'<b>FPDF error:</b> This document (/xxx/xxx/xxxx.pdf) probably uses a compression technique which is not supported by the free parser shipped with FPDI.'

FPDIで既存のPDFをテンプレートとして読み込んで、文字列を表示追加して出力する処理があり、テンプレートのPDFが圧縮されているとフリーのパーサでサポートされていないというようなエラーが発生します。

以前にこの現象自体が発生した時は、テンプレートPDFを、acrobat proで圧縮してない形式に変換して使用するようにしました。

しかし、今回は、動的に差し替えが可能なPDFをテンプレートPDFとして使用する必要があったため、調べていたところマルチプラットフォーム対応しているqpdfというPDF変換コマンドがあることがわかり、このコマンドを使って前処理を行なったところ、上記のエラーが回避できました。

$ qpdf --stream-data=uncompress --force-version=1.4 template.pdf uncompressed.pdf
  • –stream-data=uncompress で可能であれば圧縮を解く
  • –force-version=1.4 でバージョン指定(これも必要でした)

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.