OTF,TTF字体cmap表

时间:2011-03-15 14:47:54

标签: php gd true-type-fonts opentype

我设法从OTF文件中获取cmap,如下所示:

object(SimpleXMLElement)#4 (3) {
  ["tableVersion"]=>
  object(SimpleXMLElement)#5 (1) {
    ["@attributes"]=>
    array(1) {
      ["version"]=>
      string(1) "0"
    }
  }
  ["cmap_format_4"]=>
  array(2) {
    [0]=>
    object(SimpleXMLElement)#6 (3) {
      ["@attributes"]=>
      array(3) {
        ["platformID"]=>
        string(1) "0"
        ["platEncID"]=>
        string(1) "3"
        ["language"]=>
        string(1) "0"
      }
      ["map"]=>
      array(222) {
        [0]=>
        object(SimpleXMLElement)#9 (1) {
          ["@attributes"]=>
          array(2) {
            ["code"]=>
            string(4) "0x20"
            ["name"]=>
            string(5) "space"
          }
        }
        [1]=>
        object(SimpleXMLElement)#11 (1) {
          ["@attributes"]=>
          array(2) {
            ["code"]=>
            string(4) "0x21"
            ["name"]=>
            string(6) "exclam"
          }

现在,我需要使用PHP GD或任何其他方式生成角色地图。不过,PHP GD更受青睐。如何将格式为0x21的字母转换为看起来像字母的字母?

2 个答案:

答案 0 :(得分:0)

最简单的方法是使用字体定义将字符绘制到图像上。

查看imagettftext()的定义 - 尝试从字形轮廓中自行执行渲染是不可取的。

答案 1 :(得分:0)

OTF字体的CFF表包含整个字形图像/程序。您可以将它们绘制为几何对象。它不可能通过php api绘制字形的整个集合,因为php api使用ENCODING参数来调用字形,而不是字形的INDEX或NAME。