November 14, 2012

FuelPHPのfuel-pdfパッケージをセットアップしてHTMLをPDFにコンバートして出力

とりあえずMAC(Mountain Lion)で。(OS毎に変化するのはload_font.phpの実行部分のみと思います。)

--
追記:
Windowsでもbashで全く同様にload_font.phpを実行して、フォントのインストールが出来ました。
--

fuel-pdfを fuel/packages/pdf として配置する。
https://github.com/fuel-packages/fuel-pdf

pdf/lib/dompdfを
https://github.com/dompdf/dompdf
で差し替える。

https://github.com/PhenX/php-font-lib
を pdf/lib/dompdf/lib/php-font-lib として配置する。

pdf/lib/dompdf/load_font.phpを実行してフォントをインストールする。
php load_font.php osaka /Library/Fonts/Osaka.ttf
* Windows 7のフォントは C:\Windows\Fonts にあります。

以下、使い方のサンプル。
Package::load('pdf');
$pdf = Pdf::factory('dompdf')->init();

$html ='<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>xxx</title>
<style>
body { font-family: "Osaka;" }
</style>
</head>
<body>
マルチバイトテスト
</body>
</html>';

$pdf->load_html($html);
$pdf->render();
$pdf->stream("xxx.pdf");
metaのcharsetの指定方法に注意。(HTML5の形式はNGみたい。)

--
追記:
上記のサンプルはDOMPDFを使用していますが、TCPDFというライブラリも使用できます。
TCPDFもHTMLからのPDFコンバートが可能と思いますが、どちらのライブラリを使用するにせよ、
多くの人が期待するかもしれない(?)twitter bootstrapとの組み合わせは、
(2012/11/14時点では)無理です。(CSS3に非対応な為。)

追記2: (2013/05/01)
以下、関連記事です。
DOMPDFでPDFファイルサイズを小さくする
http://madroom-project.blogspot.jp/2012/12/dompdfpdf.html

No comments:

Post a Comment