如何讓 moodle 的 Certificate mod正確顯示中文


其實我的正職跟網頁一點關係都沒有(爆)

moodle Certificate Module 是一個讓 moodle 可以做出結業證書的 module,不過以原本的狀況而言,沒辦法很正確的生出中文的 pdf,這時候就需要動一些手腳。

你可以從 type/unicode_landscape/certificate.php 知道他用的 tcpdf 是 moodle 本身的

include '../../lib/tcpdf/tcpdfprotection.php';
require_once('../../lib/tcpdf/config/lang/eng.php');
include '../../lib/tcpdf/tcpdf.php';

然後我發現新版的 tcpdf 裡面有 CID-0 的支援,就索性照著 TCPDF Fonts 把一些字型丟進去跑跑看,像是文泉驛正黑體王漢宗自由字型

後來想想,似乎沒有不用這麼麻煩。直接用 arialunicid0 這個 tcpdf 有的設定就好,把他的設定改成我要的中文

$enc='UniCNS-UTF16-H';
$cidinfo=array('Registry'=>'Adobe','Ordering'=>'CNS1','Supplement'=>0);
include(dirname(__FILE__).'/uni2cid_ac15.php');

再把 certificate 的字型稍微換一下就好,把原本的 FreeSerif 跟 FreeMono 換成 arialunicid0,再注意一下,新的 tcpdf 已經沒有 TCPDF_Protection 這個 class,直接 new TCPDF 就好。

這樣做出來的 pdf 也比直接嵌入wang ttf 的來的小,大概 22K 附近,效果也還不錯。在這邊備忘一下,要不然之後大概又忘記怎麼做了 XD


Leave a Reply

Your email address will not be published. Required fields are marked *