0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

mPDFで日本語が文字化けする問題を解決する方法【IPAフォントで対応】

Posted at

解決したい事項

PHPのPDF出力ライブラリ「mPDF」を使ってPDFを生成した際に、「日本語が□になる」といった文字化けの問題に直面しました!

この記事では、'mode' => 'ja' を設定していても文字化けしてしまう原因と、IPAフォントを使って日本語を正しく表示する方法を紹介します。


❓ なぜ文字化けが起きるのか?

mPDFは多言語対応のPDFライブラリですが、日本語のフォントを内蔵していないことが多いため、明示的にフォントを指定しないと日本語が文字化けします。
補足ですが、今回は「□」に文字化けしてしまいましたが、「直」「角」などの表示が日本語の表示と異なる文字で出力されることもあるみたいです。


📄 文字化けした例

以下は、mPDFで日本語を表示しようとしたが、フォント設定がされておらず文字化けしてしまった例です。


✅ 解決策:IPAフォントを導入して設定する

文字化けを解消するには、日本語対応のフォントを読み込むようにmPDFを設定する必要があります。

1. IPAから日本語のフォントをダウンロード

IPA公式サイトから 日本語のフォントファイルのipaexg.ttf をダウンロードできます。

2. プロジェクトにフォントを配置

例:以下のような構成で配置します。
※プロジェクトに合わせたパスにしてください。

your_project/
└── resources/
    └── font-mpdf/
        └── ipaexg.ttf

3. mPDFの設定を変更

以下のように、mPDFにフォントの場所とデータを明示的に指定します。
※プロジェクトに合わせたパスにしてください。

$mpdf = new \Mpdf\Mpdf([
    'mode'         => 'ja',
    'fontDir'      => [YOUR_APP_ROOT . '/resources/font-mpdf'],
    'fontdata'     => [
        'ipa'  => ['R' => 'ipaexg.ttf'],
    ],
    'default_font' => 'ipa',
]);

🎉 解決後の出力結果

フォント設定を追加することで、日本語が正しく表示されるようになりました!

📝 結言

もし、同じ状況が発生した際の解決にこの記事が役立てば幸いです!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?