dompdfで作成するPDFのサイズを小さくしてみる
前回dompdfを使ってHTMLからPDFを生成できるようになったのですが、
どうもPDFにフォントが全て含まれているようでファイルサイズがでかかった。
そこで設定を変更して利用しているフォントだけを含むようにしてみる。
■dompdf_config.custom.inc.php
//define("DOMPDF_ENABLE_FONTSUBSETTING", true); // ↓ define("DOMPDF_ENABLE_FONTSUBSETTING", true);
上記の設定変更で問題無いはずだけど以下のエラーが発生。
Fatal Error - Class 'Font' not found in /****/fuel/packages/pdf/lib/dompdf/lib/class.pdf.php on line 2352
// Load font $font_obj = Font::load($fbfile);
上記のFontクラスが読めていない模様。
そもそも前回パスを勝手に変更して設置しているのでその影響かもしれない。
とりあえず該当クラスでFontが読めるように数行追記
■packages/pdf/lib/dompdf/lib/class.pdf.php
require_once "php-font-lib/classes/Autoloader.php"; use FontLib\Font;
実行するとさらに以下のエラーが発生。
Fatal Error - Class 'Font_Binary_Stream' not found in /****/fuel/packages/pdf/lib/dompdf/lib/class.pdf.php on line 2367
php-font-lib/classesの下を見ても「Font_Binary_Stream」は無いので、
名前が似ている「Binary_Stream」を利用するように変更してみる。
■packages/pdf/lib/dompdf/lib/class.pdf.php
require_once "php-font-lib/classes/Autoloader.php"; use FontLib\Font; use FontLib\Binary_Stream;
■packages/pdf/lib/dompdf/lib/class.pdf.php @2367くらい
//$font_obj->open($tmp_name, Font_Binary_Stream::modeWrite); //↓ $font_obj->open($tmp_name, Binary_Stream::modeWrite);
実行すると動いた。
元々4.3MBあったPDFが39KBに激減した。
これでいいのかな・・・・?
■参考サイト
DOMPDFでPDFファイルサイズを小さくする
http://madroom-project.blogspot.jp/2012/12/dompdfpdf.html