質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CodeIgniter

CodeIgniterは、PHP向けオープンソースのWebアプリケーションフレームワークです。CodeIgniterは覚える構文が少なく、自由度も高いため、PHPを理解していれば構築が簡単です。

Q&A

解決済

1回答

12729閲覧

TCPDF で日本語文字の出力に異常があり困っています。

hidepon

総合スコア206

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CodeIgniter

CodeIgniterは、PHP向けオープンソースのWebアプリケーションフレームワークです。CodeIgniterは覚える構文が少なく、自由度も高いため、PHPを理解していれば構築が簡単です。

0グッド

0クリップ

投稿2017/06/15 06:56

編集2017/06/15 09:05

TCPDFというライブラリを用いてPDFファイルを出力をしようとしています。
これまで特に問題なく使えていたのですが、
今回、特定の文字によって表示されないという状況が生じました。

$this->load->library('Pdf'); $pdf = new TCPDF("L", "mm", "A4", true, "UTF-8" ); $pdf->setPrintHeader(false); $pdf->setPrintFooter(false); $pdf->AddPage(); $pdf->SetFont('kozminproregular', '', 16);// 日本語フォント $html = '' . '<div style="text-align: center;">' . '<table border="1" cellpadding="0" cellspacing="0">' . '<tbody>' . '<tr>' . '<td colspan="12" style="text-align:right">業務計画</td>' . '<td colspan="8" style="text-align:left">部署名</td>' . '</tr>' . '<tr>' . '<td colspan="12" style="text-align:left">年月日</td>' . '<td colspan="2">開始</td>' . '<td colspan="2">&nbsp;</td>' . '<td colspan="2">終了</td>' . '<td colspan="2">&nbsp;</td>' . '</tr>' . '<tr>' . '<td colspan="3">業務名</td>' . '<td colspan="9">&nbsp;</td>' . '<td colspan="3">&nbsp;</td>' . '<td colspan="5">&nbsp;</td>' . '</tr>' . '<tr>' . '<td colspan="4">従業員名</td>' . '<td colspan="4">時間内</td>' . '<td colspan="2">その他</td>' . '<td colspan="2">追加事項</td>' . '<td colspan="2">支払い</td>' . '<td colspan="2">区分</td>' . '<td colspan="4">備考</td>' . '</tr>' . '</tbody></table>' . '</div>'; $pdf->writeHTML($html, true, false, true, false, ''); $pdf->Output('example_001.pdf', 'I');

の部分で「支払い」の「払」の文字と「区分」の「区」という部分が表示されません

このような状況が今までなく戸惑っています。
ご存知の方がいらっしゃたら教えてくださればと思います。
宜しくお願いいたします。

(追記)

「戸」という文字も表示されません。
同様の現象を解決されたかたがいらっしゃたたら教えて頂ければと思います。
宜しくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

日本語のフォントデータがないのではないでしょうか?

フォントが違うかもしれませんが
私はMeiryo UIのttfファイルを持ってきて対応しました。

php

1// ttfフォントをTCPDF用に変換 2$font = new TCPDF_FONTS(); 3$myFont = $font->addTTFfont('/tcpdf/fonts/meiryo-ui-regular.ttf'); // ttfフォントのあるディレクトリ 4 5// 中略 6 7// before 8$pdf->SetFont('kozminproregular', '', 16);// 日本語フォント 9// after 10$pdf->SetFont($myFont, '', 16);// 日本語フォント

投稿2017/06/15 09:29

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hidepon

2017/06/15 09:46

ご返答有難うございます。上記のコードを適応させていただきましたが、フォントの定義ファイルが無いようで警告が出ました。定義ファイルってどこかで提供されているのでしょうか?
退会済みユーザー

退会済みユーザー

2017/06/15 09:56

windows なら「コントロール パネル\デスクトップのカスタマイズ\フォント」にフォントデータがあるのでそこからもってきました。ttcファイルでしたけどttf変換して使いましたね。
hidepon

2017/06/15 10:01

なるほどです。そのファイルを指定のフォルダにコピーするだけでよいのでしょうか?
hidepon

2017/06/15 10:17

http://www.fontconverter.org/ というサイトで変換したファイルを所定の場所にアップロードしましたが、「フォントの定義ファイルをインクルードできません」と表示されます・・・orz
hidepon

2017/06/15 10:24

codeigniter でフォント定義ファイルを利用する方法がわからなくて困っています。たぶん指定の方法が特殊なのでしょうか??
yuki84web

2017/06/15 12:49

ローカルでの使用ならともかく、ネット上で一般公開するアプリケーションの場合、フォントのライセンスについては考慮してください
hidepon

2017/06/15 22:48

ご回答ありがとうございます。tcpdf_fonts.phpのファイルは存在しています。codeigniter での設定の方法が良くないのかもしれません。libraryのフォルダに全てのファイルをいれています。そこからのパスの通し方が良く分かっていません。
hidepon

2017/06/15 23:09

デフォルトではkozminproregular となっています。対象となる名称のファイルはkozminproregular.phpとなっているのですが、このようなPHPファイルを作成するのでしょうか? .htaccess でドキュメントルートのディレクトリから参照するようにしてfonts ディレクトリを作成 $myFont = $font->addTTFfont('/fonts/ipag.ttf'); と試しにやってみましたが、うまくいきません。 文字化け(表示されない)がこのフォントの問題なのでしょうか?よくわからないです・・・本当に有難うございます。
退会済みユーザー

退会済みユーザー

2017/06/16 01:29

絶対パスで試してみましたか? kozminproregular で試したとき文字化けした記憶があったのでTCPDF_FONTSで外部フォントを持ってきた経験がありますので
hidepon

2017/06/16 04:05

ご回答有難うございます。一度、他のフォントで試したところ、文字が表示されるようになりました。 解決かな?とおもったのですが。そのフォントでは目的の用途では違和感を感じる体裁で少なくともゴシックかな?と思っています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問