TCPDFにフォントを追加する方法

2020年3月3日

PHPの世界において、帳票印刷といえば、TCPDFというものはどこかで聞いたことがありますでしょう。TCPDFはPDF(帳票)を生成するための無料PHPライブラリです。オープンソースで数えきれないほどのWEBアプリケーションはTCPDFを使って、様々なサービスを提供しています。ところが、日本において、MS明朝などを使って、帳票を出力する場合が多いですが、TCPDFはMS明朝を事前にインストールしていないため、異なるフォントで出力してしまったケースがあるかと思います。
今回はMS明朝を例として、TCPDFにフォントを追加する方法を紹介したいと思います。

スポンサーリンク

前提条件

・Windows環境
・PHP環境
・TCPDF(6.2.26)ライブラリ用意済み

ステップ

TCPDFにフォントを追加する方法は、簡単で、下記の3つのステップで完成できると思います。また、TTFフォントファイルが既に手元にある場合、ステップ3から対応すればと思います。

1.フォントファイルを入手する
2.フォントファイルをTTF形式に変換する
3.TCPDFにフォントを追加する
 3.1 ファイル名を変更する
 3.2 コマンドラインでツールを実行する

1.フォントファイルを入手する

今回はMS明朝を使うことで、筆者の場合、MS明朝フォントファイルはWindows 10から入手しました。

コントロールパネルを開いて、フォント項目をクリックすると、フォント画面が表示されます。

TCPDFにフォントを追加する方法
TCPDFにフォントを追加する方法

フォント画面にて、MS明朝標準ファイルをコピー(ctrl+c)して、好きな場所に、貼り付け(ctrl+v)することで、必要なフォントファイルを入手しました。

TCPDFにフォントを追加する方法
TCPDFにフォントを追加する方法

2.フォントファイルをTTF形式に変換する

TCPDFはTTFフォントファイルをサポートしますので、Windows 10から入手したフォントファイルの形式がTTCであるため、変換ツールを使って、TTF形式に変換する必要があります。
下記のURLはTTCフォントファイルをアップロードするだけで、自動的にTTFフォントファイルに変換してくれるオンライン変換ツールを提供していますので、是非ご活用ください。

TCPDFにフォントを追加する方法

TCPDFにフォントを追加する方法
TCPDFにフォントを追加する方法

変換してくれたTFFフォントファイル(ここは、MS-Mincho-01.ttf)を好きな場所にダウンロードして、次のステップを進んでください。

3.TCPDFにフォントを追加する

ステップ1,2を準備できたら、いよいよ本題、TCPDFにフォントを追加する方法を紹介したいと思います。このステップは、更に2つのステップを分けて、説明します。

 3.1 ファイル名を変更する
 3.2 コマンドラインでツールを実行する

3.1 ファイル名を変更する

TCPDFは、TTFフォントファイル名をデフォルトとして、そのまま、フォント名を使うため、ステップ2でダウンロードしたTFFフォントファイル(MS-Mincho-01.ttf)名を「msmincho.ttf」に変更します。
※注意:次のステップに紹介するフォント追加ツールには、フォント名称指定オプションがありますが、思った通りでうまく変換できない場合があって、あえて、フォントファイル名を事前に変更する方法を紹介します。

TCPDFにフォントを追加する方法
TCPDFにフォントを追加する方法

 

3.2 コマンドラインでツールを実行する

TCPDFには、フォント追加ツールがあります。場所は、TCPDFライブラリフォルダの「tools\tcpdf_addfont.php」です。tcpdf_addfontを実行することで、指定したフォントファイルをTCPDFが識別できる形式ファイルに変換できます。

ここは、「msmincho.ttf」ファイルをtoolsフォルダの下に落として、toolsフォルダからコマンドを実行することとして説明します。

Windowsのコマンドプロンプトを起動(ウィンドウズキー+r ⇒ cmd)して、下記のコマンドを叩いたら、「 Process successfully completed!」という処理成功メッセージが表示されます。

TCPDFにフォントを追加する方法
TCPDFにフォントを追加する方法

上記のコマンドを実行成功すると、「fonts」フォルダの下に、msmincho.xxxという三つのファイルが生成されます。

TCPDFにフォントを追加する方法
TCPDFにフォントを追加する方法

ここまでは、TCPDFにフォントを追加する方法を紹介しました。プログラム上に、SetFontメソッドの第一パラメータに、「msmincho」を設定すれば、MS明朝を使えるはずと思います。

プログラムの例:

まとめ

いかがでしょうか。TCPDFにフォントを追加する方法は簡単ですよね。MS明朝だけではなく、ほかのフォントもこのTCPDFにフォントを追加する方法でインストールして、利用できると思います。また、もう一点注意してほしいのは、プリンター側がサポートしない限りに、いくらPDF帳票ツールをサポートしても、帳票が異なるフォントで印字された場合がありますので、ご注意ください。(その場合、各プリンターメーカーの技術サポートサイトにお問い合わせください。)
それでは、また!!

スポンサーリンク

PHP, tcpdfPHP, TCPDF

Posted by xiyuan