前提・実現したいこと
PHPWord
のテンプレートから読み込む機能で、Wordファイルを生成しています。
そのWordファイルをPDFで保存すると、日本語が文字化けしてしまいます。
PDF化に使用しているライブラリはdompdf
です。
日本語が文字化けせずにPDFに保存する方法をご教示ください。
該当のソースコード
php
1// テンプレートファイルから生成 2$template = new \PhpOffice\PhpWord\TemplateProcessor('template.docx'); 3$template->setValue('hoge', 'ほげ'); 4$template->setValue('fuga', 'ふが'); 5$template->setValue('piyo', 'ぴよ'); 6$template->saveAs('output.docx'); 7 8// PDF生成の設定 9\PhpOffice\PhpWord\Settings::setPdfRendererPath('vendor/dompdf/dompdf'); 10\PhpOffice\PhpWord\Settings::setPdfRendererName(\PhpOffice\PhpWord\Settings::PDF_RENDERER_DOMPDF); 11 12// 上記で生成したWordファイルをPDF形式で保存 13$phpword = \PhpOffice\PhpWord\IOFactory::load('output.docx'); 14$xmlWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpword, 'PDF'); 15$xmlWriter->save('output.pdf');
試したこと
実際にはLaravel
のコントローラーで記述しています。
コマンドのパスや、パーミッションなどは問題ありません。
Wordファイルの内容に問題はなく、正常に出力されています。
補足情報(FW/ツールのバージョンなど)
- PHP 7.2.12
- Laravel 5.8.26
- phpoffice/phpword 0.15.0
- dompdf/dompdf v0.8.3
回答1件
あなたの回答
tips
プレビュー