除了PDFlib自带字体外,用户还可以使用安装在系统上的字体及其他用户字体。PDFlib称安装在Windows和Mac操作系统中的(存在于或被拷入相应系统字体目录的)TrueType, OpenType 和PostScript字体为宿主字体(Host Font)。PDFlib可直接引用字体名进行调用,但必须与文件名完全相同(严区分大小写)。例如,调用安装在Windows系统中的字体:C:\WINDOWS\Fonts\SimHei.ttf
int Font_CS = 0; Font_CS = PDF_load_font(p, "SimHei", 0, "unicode", "");需要注意的是,字体名可能与字体文件名不同,甚至相同的字体在不同语言的操作系统下字体名称会有所不同。在 Windows 环境下查看字体名,可双击该字体文件,窗口打开后的第一行字除结尾的 TrueType, OpenType 外为字体名。例如,调用安装在 Windows 系统中的字体: C:\WINDOWS\Fonts\SimHei.ttf ,双击该文件后,窗口的第一行为“黑体 TrueType” 。则该文件的字体名为“黑体”。在 PDFlib 中若要调用多字节的文件名,须以 BOM UTF8 的形式。 “黑体”的 BOM UTF8 的形式为“ \xEF\xBB\xBF\xE9\xBB\x91\xE4\xBD\x93 ”。
因此对于中文黑体, 在中文WINDOWS下,则我们使用
PDF_load_font(p, "\xEF\xBB\xBF\xE9\xBB\x91\xE4\xBD\x93", 0, "unicode", "");在英文WINDOWS下则应使用
PDF_load_font(p, "SimHei", 0, "unicode", "");除安装在Windows系统中的字体之外,PDFlib还可以调用其他用户字体。但在调用之时,需要给出路径名。如我想用C:\Program Files\Adobe\Acrobat 7.0\Resource\CIDFont\AdobeSongStd-Light.otf 这个字体:
Font_CS= PDF_load_font(p,"C:\\Program Files\\Adobe\\Acrobat 7.0\\Resource\\CIDFont\\ AdobeSongStd-Light",0, "unicode", "");但这里有个例外,那就是.ttc(TrueType Collection)字体。.ttc是集合字体文件,每个文件中含有多种字体。所以用户不能用文件名调用字体,而是要用真正的字体名。比方说,我们知道C:\WINDOWS\Fonts\MSGOTHIC.TTC 包含三种字体依次名为MS Gothic,MS PGothic,和MS UI Gothic。我们可以用以它们相应的字体名调用:
int Font_E = 0; Font_E= PDF_load_font(p, "MS Gothic", 0, "winansi", ""); /* Use MS Gothic */ PDF_setfont(p, Font_E, 20); PDF_show_xy(p, "MS Gothic font:" , 50, 800); Font_E= PDF_load_font(p, "MS PGothic", 0, "winansi", ""); /* Use MS PGothic */ …… Font_E= PDF_load_font(p, "MS UI Gothic", 0, "winansi", ""); /* Use MS UI Gothic */
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-21423-2.html
烊烊