PHPでHTMLからPDF生成
mPDFを利用したPDFの生成
mPDFのダウンロード
mPDFから
最新(mPDF v5.7 Full installation)のZipファイル(MPDF57.zip)と
必要に応じて、mPDF v5.7.x Upgrade のZipファイルをダウンロード後、zipを展開。
アップグレードの差分は本体に上書き。
config.php
useAdobeCJKをtrueに変更
$this->useAdobeCJK = true;
PHP
// ライブラリ読み込み
require_once('MPDF57/mpdf.php');
// ページ読み込み
$contents = file_get_contents('http://example.com');
// 日本語化 ja+aCJK
// フォーマット A4は縦、A4-Lは横
// 左マージン 15、右マージン 15、上マージン 16、下マージン 16、ヘッダマージン 9、フッタマージン 9
$mpdf = new mPDF('ja+aCJK', 'A4-L', 0, '', 15, 15, 16, 16, 9, 9);
$mpdf->WriteHTML($contents);
// PDF表示
$mpdf->Output();
// PDF保存
// $mpdf->Output('create.pdf', 'F');
exit;
mPDF()、useAdobeCJKを参考。
通常のサイトをそのまま読み込みPDF化するとCSSが当たっていない状態になるため、外部CSSはhead内に記述する必要がある。 なお、head内に記述しても、PositionやCSS3全般などの一部のCSSが効かない。
フォントの設定
Fonts in mPDF 5.xを参考にフォントの定義を設定。
ttfonts下に使用するフォントファイル(msgothic.ttc)を設置。
config_fonts.php
fontdataにmsgothic.ttcの定義を追加
$this->fontdata = array(
'msgothic' => array(
'R' => 'msgothic.ttc'
'TTCfontID' => array(
'R' => 1
)
),
(略)
config_cp.php
CASE "ja"をsjis,sjisB,sjisI,sjisBからmsgothicへ変更
CASE "ja":
if ($adobeCJK) {
$unifonts = 'msgothic';
}
(略)