如何在PostScript中用印度语言TTF转CID-Keyed字体实现文字居中
基于CID-Keyed字体的PostScript文字居中实现
本文是《从TTF转换为Type 2 CID字体(Type 42基础字体)》的续篇。
问题描述
如何编写PostScript程序,让基于CID-Keyed字体字符集生成的文字在页面中居中?
说明: CID-Keyed字体是从适用于印度语言的TrueType字体转换而来的Type 0复合字体。未经转换,PostScript程序无法访问TrueType字体。
提前致谢。
演示PostScript程序
CID-keyed字体NotoSansTamil-Regular.t42由谷歌泰米尔语Noto字体转换而来,转换方法可参考《从TTF转换为Type 2 CID字体(Type 42基础字体)》一文。
文件存放路径
- Windows平台:将
NotoSansTamil-Regular.t42放在D:\cidfonts文件夹(或自定义方便路径) - Linux平台:将
NotoSansTamil-Regular.t42放在~/cidfonts文件夹
PostScript程序代码
在对应路径下创建center.ps文件,代码如下:
%!PS-Adobe-3.0 /CTXT {dup stringwidth pop 3 -1 roll 2 copy lt {sub neg 2 div 4 -1 roll add 3 -1 roll} {pop pop 3 1 roll} ifelse moveto show} bind def % Center text. usage: X Y Width <Hex String> CTX. Example-1: 36 300 500 <Hex String> CTXT and Example-2: 36 300 500 (String) CTXT /myNoTo {/NotoSansTamil-Regular findfont exch scalefont setfont} bind def % usage: 15 myNoTo 13 myNoTo % தமிழ் தங்களை வரவேற்கிறது! 0 500 594 <0155017201aa019801a500030163018801a5017f01b101aa018801c20003016901b101cb00aa> CTXT % Tamil Welcomes You! 0 450 594 <0019001d002a005e00030019004e00120030002200030024001f002f0024005b0012002a0020007a00aa> CTXT showpage
执行命令
使用Ghostscript运行程序:
- Windows平台:
gswin64c.exe "D:\cidfonts\NotoSansTamil-Regular.t42" "D:\cidfonts\center.ps" - Linux平台:
gs ~/cidfonts/NotoSansTamil-Regular.t42 ~/cidfonts/center.ps
执行后页面将显示两行居中文字:தமிழ் தங்களை வரவேற்கிறது!和Tamil Welcomes You!。
内容的提问来源于stack exchange,提问作者Marmayogi
相关产品推荐
相关产品推荐

