国际语言环境指南

如何添加打印机驻留的字体

下列过程中的实例阐释了如何将新的 PCF、TrueType 或 Type1 打印机驻留的字体添加到配置文件中。

完成此过程替换当前配置的字体。在前两步骤中,用于显示范围 0x00000021 - 0x0000007f 中字符的 PCF 字体由 TrueType 字体替代。

  1. 在添加新字体前,请查看配置文件中与当前配置字体相对应的各种组件。

    FontNameAlias iso88591R  PCF  /usr/openwin/lib/X11/fonts/75dpi/courR18PCF.Z
    FontNameAlias iso88591B  PCF  /usr/openwin/lib/X11/fonts/75dpi/courB18PCF.Z
    .
    .
    .
    FontGroup       iso88591         PCF       iso88591R iso88591B
    .
    .
    .
    MapCode2Font    0x00000020      0x0000007f      iso88591
    .
    .
    .
    CnvCode2Font iso88591R _xuiso88591 /usr/lib/lp/locale/$LANG/mp/xuiso88591.so
    CnvCode2Font iso88591B _xuiso88591 /usr/lib/lp/locale/$LANG/mp/xuiso88591.so

    例如,可以将 /usr/openwin/lib/locale/ja/X11/fonts/TT/HG-MinchoL.ttf 字体映射到 en_US.UTF-8 语言环境。由于 HG-MinchoL.ttf 是 Unicode TrueType 字体文件,因而可以使用 .so 模块映射函数直接返回传入的 ucs-2 代码点。

    unsigned short _ttfjis0201(unsigned short ucs2) {
                     return(ucs2);
             }
    1. 将此映射保存为 ttfjis0201.c 文件。

    2. 创建共享对象文件。

      cc -G -Kpic -o ttfjis0201.so ttfjis0201.c
  2. 要映射 PCF 文件(如 /usr/openwin/lib/locale/ja/X11/fonts/75dpi/gotmrk20.pcf.Z),请检查下列与 /usr/openwin/lib/locale/ja/X11/fonts/75dpi/fonts.dir 文件中的 XLFD 对应的编码。

    -sun-gothic-medium-r-normal--22-200-75-75-c-100-jisx0201.1976-0
    1. 对于 jisx0201 编码,请准备一个从 ucs-2 映射到 jisx0201 的共享对象。获得用于创建 .so 模块的映射表。对于 Unicode 语言环境,查找映射到 ftp.unicode.org/pub/MAPPINGS/ 目录中 Unicode 的字符集。

    2. 使用以下映射编写一个 xu2jis0201.c 文件:

      unsigned short _xu2jis0201(unsigned short ucs2) {
                               if(ucs2 >= 0x20 && ucs2 <= 0x7d )
                                       return (ucs2);
                               if(ucs2==0x203e)
                                       return (0x7e);
                               if(ucs2 >= 0xff61 && ucs2 <= 0xff9f)
                                       return (ucs2 - 0xff60 + 0xa0);
                              return(0);
                       }
    3. 在创建映射文件时,请将所有 usc-2 包括到 jisx0201 的各种事例中。

      cc  -G -o xu2jis0201.so xu2jis0201.c