小テストの受験結果/統計/問題構造分析のPDFエクスポートで文字化け

小テストの受験結果/統計/問題構造分析のPDFエクスポートで文字化け

- Tatsuya Shirai の投稿
返信数: 1

鈴鹿高専の白井です.

 試験対策の小テスト問題を皆さん,特に今年度は沢山作成したと思います.
 そうなると作成したクイズの質が気になります.

 そこで問題構造分析のデータをエクスポートしたのですが…PDFでエクスポートしたところ,添付ファイルのように見事に文字化けしました.これは本校の設定の問題なのか? PDFファイルのプロパティーをチェックしますと,フォントにはFreeSerif,FreeSerifBoldが埋め込まれています.不思議なのは〇,×は化けていないのですよね.
 小テストの問題構造分析だけの問題なのか,それとも他の場面でも同様にPDFで日本語を使用すると文字化けするのでしょうか.

添付 mondaikouzoubunseki.jpg
Tatsuya Shirai への返信

Re: 小テストの受験結果/統計/問題構造分析のPDFエクスポートで文字化け

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

以下の手順で日本語フォントを表示できるようです。

環境:

  • Moodle 3.9.2 (Build: 20200914)
  • PHP 7.3.22
  • CentOS Linux release 7.8.2003 (Core)

手順:

  1. IPAフォント (例 IPAゴシック(Ver.003.03)) をダウンロードする。※1
  2. TCPDFをダウンロードする。※2
  3. 1.および2.でダウンロードしたファイルを展開する。
  4. TCPDF用IPAフォントファイルを作成する。※3
  5. 4.で生成したフォントファイル (ipag.*) をMoodle内tcpdfのフォントディレクトリ (fonts) にコピーする。※4
  6. Moodle設定ファイル (config.php) にTCPDF用デフォルトフォント情報を記述する。※5

[※1 IPAフォントのダウンロード]
https://ipafont.ipa.go.jp/old/ipafont/download.html

[※2 tecnickcom/TCPDF: Official clone of PHP library to generate PDF documents and barcodes]
https://github.com/tecnickcom/TCPDF

[※3 TCPDF用IPAフォントファイルを作成する]
# cd TCPDF-main/
# php ./tools/tcpdf_addfont.php  -t ipag -f 32 -i ../ipag00303/ipag.ttf
  >>> Converting fonts for TCPDF:
  *** Output dir set to /home/work/TCPDF-main/fonts/
  +++ OK   : /home/work/ipag00303/ipag.ttf added as ipag
  >>> Process successfully completed!

[※4 フォントファイル (ipag.*) をMoodle内tcpdfのフォント (fonts) ディレクトリにコピーする]
# cp ./fonts/ipag.* /var/www/html/moodle/lib/tcpdf/fonts/

[※5 Moodle設定ファイル (config.php) を修正する]
[ 修正前 ]
require_once(__DIR__ . '/lib/setup.php');

// There is no php closing tag in this file,
// it is intentional because it prevents trailing whitespace problems!

[ 修正後 ]
require_once(__DIR__ . '/lib/setup.php');

define('PDF_DEFAULT_FONT', 'ipag');

// There is no php closing tag in this file,
// it is intentional because it prevents trailing whitespace problems!

参考資料:
[TCPDFに日本語フォントを追加  技術ブログ - 株式会社プロネット]
https://www.p-nt.com/technicblog/archives/175