下载 TCPDF

之前我们提及 Joomla! 1.5.7 提供的 TCPDF v2.5.000 并没有选项不嵌入完整的字体档案。幸运的是新版的 TCPDF 有这个选项。因此我们的计划基本上是将 Joomla! 内的 TCPDF 用最新版来取代。

请前往官方 TCPDF 网站来下载最新版本。将它解压缩到你的电脑硬碟里。你会看到一个目录名称为 tcpdf 被建立,里面含有 TCPDF 的程式码。

建造字体脚本程式

虽然我们不要 TCPDF 把整个字体档案放入 PDF 内,我们仍然必须让它包含一些字体的资讯。你需要执行在 TCPDF 软体包里的两件工具以产生一个含有字体重要资料的 PHP 脚本程式。

为 了要使中文 PDF 能被 Adobe Acrobat 正常显示且不用实际嵌入字体档案,所用的字体必须已经是 Acrobat 安装一部份。如果你检查 Acrobat 安装目录下的 Resource\CIDFont 档案夹,你会发现几个给亚洲语言使用的字体。对于正体中文 Adobe Acrobat 提供了 AdobeMingStd-Light.otf,那是我们要使用的字体。(我们假设你自身使用的机器是一部视窗电脑,因为其中一个你必须使用的指令是 DOS 的程式。)

现在请进入含有 TCPDF 程式码之 tcpdf 档案夹内的 fonts\utils。将字型档 AdobeMingStd-Light.otf 复制到这个档案夹,并将它改名为 adobemingstd-light.otf。开启一个 DOS 指令视窗,执行下面的指令以产生字体资料档案。

D:\tcpdf\fonts\utils> ttf2ufm -a -F adobemingstd-light.otf

这指令会花一点时间来执行。等它完成后,你应该会在同样的目录下看到多出三个档案,它们的延伸档名会分别是 .afm、.t1a 与 .ufm。

接下来你必须执行一个 PHP 脚本程式 makefont.php。(你需要有 PHP 安装在你的视窗机器上,或者你也可以将那三个刚建造的档案复制到你的伺服器上,然后在伺服器上执行下面的指令。)

D:\tcpdf\fonts\utils> php -q makefont.php adobemingstd-light.otf adobemingstd-light.ufm false

这 会制作出一个有 .z 延伸档名的压缩档及一个 PHP 脚本程式叫做 adobemingstd-light.php,这是 TCPDF 产生 PDF 时需要用到的档案。但在这个 PHP 脚本程式能被使用之前,还需经过一些修改。请用你惯用的文字编辑器开启 adobemingstd-light.php,做以下的改变:

  • 改变字体型式成为:$type='cidfont0';
  • 增加这行以设定预设的字型宽度:$dw=1000;
  • 移除 $enc、$file 和 $ctg 变数的定义
  • 于档案的最后加入下面这段文字:
    // Chinese Traditional
    $enc='UniCNS-UTF16-H';
    $cidinfo=array('Registry'=>'Adobe', 'Ordering'=>'CNS1','Supplement'=>0);
    include(dirname(__FILE__).'/uni2cid_ac15.php');

要知道如何针对其他亚洲语言做修改,请参考TCPDF 官方网站上的文件

FaLang translation system by Faboba