edo1z blog

プログラミングなどに関するブログです

Zend_Pdfで作成されるPDFのファイルサイズを小さくする

Zend_Pdfで日本語が含まれるPDFを作成するとファイルサイズが5MB近くになる場合があります。日本語のフォントが全部PDFに含まれるからだそうです。

参考:http://framework.zend.com/manual/1.12/ja/zend.pdf.drawing.html

日本語フォントをセットする際に、Zend_Pdf_Font::EMBED_DONT_EMBEDというパラメタを設定することで、PDFにフォントが埋め込まれなくなります。

$font = Zend_Pdf_Font::fontWithPath(APPLICATION_PATH . '/../vendor/font/ipaexg.ttf', Zend_Pdf_Font::EMBED_DONT_EMBED);

4.4MBだったものが、Zend_Pdf_Font::EMBED_DONT_EMBEDを設定することで、300KB程度になりました。

追記:2016/5/15 これだと、フォントが端末にないと表示されませんでした。代替フォントを使ってくれるのかと思いましたが、自分の環境だとうまく表示されませんでした。なので、結局mbfpdfを使いました。