環境
- CakePHP 3.8
- friendsofcake/cakepdf 3.5.2
- DomPDF
やりたいこと
CakePHP3 で構築しているサイトで、cakepdf を使って PDF 生成をしています。
が、ダウンロードした PDF サイズがなんか 4.3 MB と大きいので、小さくしたかった。
方法
使ってる PDF エンジン は DomPdfEngine です。
こちらのサイト↓を参考に、DomPDF の中を見てたらそれっぽい設定値があったので、それらしきオプションを設定。結果、35 KB まで減りました。
config/bootstrap.php
$this->addPlugin('CakePdf', array('bootstrap' => true));
Configure::write('CakePdf', [
'engine' => [
'className' => 'CakePdf.DomPdf',
'options' => [
'isRemoteEnabled' => true,
'isFontSubsettingEnabled' => true, //←これを追加
],
],
]);
XXMB にしたい!という要望だとちょっとこの方法では出来ないのですけど、単にサイズ小さくしたいだけなら問題なさそう。
PDF のダウンロードにかかる時間が若干伸びましたが(サブセット化してるのでしょうがない?)、記事にあったようなエラーは特に出なかったので、まあいいかな、ということで。