【FuelPHP】FuelPHPでdompdfを使うまでの道のり
前回まではoilコマンドで「fuel/packages/pdf」に
fuel-pdfをインストールして使っていたけど、
フォントのインストールしたり、設定ファイルを色々と
変更するなどしていると管理が面倒になったので、
fuel-pdfをやめて、dompdf自体を「fuel/app/vendor」
にいれて管理するように変更した。
前回のインストールの様子
【FuelPHP】FuelPHPでfuel-pdfを使うまでの道のり
dompdf自体をgitで設置することで前回までに起きていた
クラスが見つからない問題などが一切でなかったので、
こっちのやり方のほうが安心できる。
同梱されてる「tcpdf」使って無いしこれで問題ない。
とりえあず設定方法のメモ。
■fuel/app/vendor以下にdompdfをいれるので移動。
$ pwd /home/linux-user/public_html/tmp/appname/fuel/app/vendor
■dompdfをcloneする
$ git clone https://github.com/dompdf/dompdf.git Initialized empty Git repository in /home/linux-user/public_html/tmp/appname/fuel/app/vendor/dompdf/.git/ remote: Counting objects: 5634, done. remote: Total 5634 (delta 0), reused 0 (delta 0), pack-reused 5634 Receiving objects: 100% (5634/5634), 13.47 MiB | 3.40 MiB/s, done. Resolving deltas: 100% (3967/3967), done.
■できたフォルダに移動して・・・
$ cd dompdf/
■サブモジュールのinitとupdateで空になってた「php-font-lib」が入ります。
$ git submodule init Submodule 'lib/php-font-lib' (https://github.com/PhenX/php-font-lib.git) registered for path 'lib/php-font-lib' $ git submodule update Initialized empty Git repository in /home/linux-user/public_html/tmp/appname/fuel/app/vendor/dompdf/lib/php-font-lib/.git/ remote: Counting objects: 885, done. remote: Total 885 (delta 0), reused 0 (delta 0), pack-reused 885 Receiving objects: 100% (885/885), 9.25 MiB | 1.82 MiB/s, done. Resolving deltas: 100% (493/493), done. Submodule path 'lib/php-font-lib': checked out 'c30c7fc00a6b0d863e9bb4c5d5dd015298b2dc82'
■マルチバイト対応のためにIPAフォントを準備
(前回のインストール時に/home/linux-user/.fonts/にダウンロード済み)
$ php load_font.php ipagothic /home/linux-user/.fonts/IPAfont00303/ipagp.ttf Unable to find bold face file. Unable to find italic face file. Unable to find bold_italic face file. Copying /home/linux-user/.fonts/IPAfont00303/ipagp.ttf to /home/linux-user/public_html/tmp/appname/fuel/app/vendor/dompdf/lib/fonts/ipagp.ttf... Generating Adobe Font Metrics for /home/linux-user/public_html/tmp/appname/fuel/app/vendor/dompdf/lib/fonts/ipagp...
■テスト用のコントローラを作成して実行
public function action_pdftest() { require_once( APPPATH .'vendor/dompdf/dompdf_config.inc.php'); $pdf = new \DOMPDF(); $html ='<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>xxx</title> <style> body { font-family: "ipagothic;" } </style> </head> <body> マルチバイト </body> </html>'; $pdf->load_html($html); $pdf->render(); $pdf->stream("sample.pdf", array("Attachment" => 0)); }
dompdf/dompdf
https://github.com/dompdf/dompdf
Usage dompdf
https://github.com/dompdf/dompdf/wiki/Usage