前提・実現したいこと
mPDFというツールでPHPでHTMLをPDF化したいと考えています。
ブラウザ表示とダウンロードは問題なくできたのですが、
文字列に保存して表示すると文字化けしてしまいます。(以下添付)
※文字化けというか、hogehogeみたいな文言入れるだけでもこうなってしまうのですが…。
Googleなどで調べてみたのですが、使われている方が少ないので参考例がなく
もし経験ある方で、解決策をご存知でしたらアドバイスいただければ助かります。
該当のソースコード
PHP
1<?php 2 3//フォームからhtml文字列を取得 4$text = $_POST['text']; 5 6$pdf_html = <<<__EOT 7 8<html> 9<head> 10<meta charset="utf-8"> 11<link type="text/css" rel="stylesheet" href="hogehoge"> 12</head> 13<body> 14{$test} 15</div> 16</body> 17</html> 18 19__EOT; 20 21// mPDFライブラリ呼び出し 22require_once("mpdf.php"); 23 24//出力設定 25$mpdf=new mPDF('ja+aCJK', 'A4', 12, '', 30, 30, 36, 20, 0, 0, 'P'); 26 27//line-height設定 28$mpdf->useFixedNormalLineHeight = false; 29$mpdf->useFixedTextBaseline = false; 30$mpdf->adjustFontDescLineheight = 1.5; 31 32// 文字化け防止 33$mpdf->ignore_invalid_utf8 = true; 34 35// PDFタイトル設定 36$mpdf->setTitle("test.pdf"); 37 38// PDFファイルにHTMLをセット 39$html = mb_convert_encoding($pdf_html,"UTF-8","auto"); 40$mpdf->WriteHTML($pdf_html); 41 42// PDFファイルとして出力 43// $mpdf->Output("test.pdf", "I"); 44 45// PDFファイルとしてダウンロード 46// $mpdf->Output("test.pdf", "D"); 47 48// 文字列にして出力 49$pdf_file = $mpdf->Output( "", "S"); 50echo $pdf_file; 51 52?>
試したこと
http://piyopiyocs.blog115.fc2.com/blog-entry-791.html
こちら参考にして「$mpdf->ignore_invalid_utf8 = true;」を追記したり
出力前に「mb_convert_encoding」でエンコードしてみたものの、上手くいかずです。
文字列にする時点で何かしなければいけないことあって、それが足りないのでしょうか。
回答3件
あなたの回答
tips
プレビュー