我是否正确,在使用 XSL-FO (Apache FOP) 生成 pdf 时无法使用 windows 7 c:\windows\fonts* 中的字体?
我刚刚安装了 OTF 格式的“helvetica neue”字体。
根据 https://xmlgraphics.apache.org/fop/trunk/fonts.html
“对系统字体的支持依赖于 Java AWT 子系统获取字体度量信息。通过操作系统注册,AWT 子系统知道系统上有哪些字体可用,以及每种字体的字体度量。
当使用支持系统字体的渲染器(见上表)并且您缺少字体时,您可以将它安装在您的操作系统中,并且它应该可用于这些渲染器。请注意,这不适用于仅支持自定义字体的输出格式,例如 PDF 或 PostScript。”
如果我的理解是正确的,就是说如果我的渲染是 PDF(意思是输出是 pdf??),那么我无法通过 AWT/OS 访问字体,因此,我将无法生成这样的文本PDF中的字体使用windows 7字体?
------------------------------更新,这仅适用于ttf字体,不适用于otf。不知道如何让 otf 字体工作。
-----------------------------------------更新:20150402:
使用 FOP 1.1:
我从以下网址下载了这个特殊的免费 helvetica neue 字体: http ://www.ephifonts.com/free-helvetica-font-helvetica-neue.html
我将 fop 配置为使用 fop.xconf,但处理 ttf 文件时出错,我不知道如何使用 fontforge 编辑字体 ttf 文件:
fop -c fop.xconf -xml xml.xml -xsl coversheet.xsl -pdf output.pdf
Apr 2, 2015 6:53:55 PM org.apache.fop.fonts.truetype.TTFFile readCMAP
SEVERE: Unsupported TrueType font: No Unicode or Symbol cmap table not present. Aborting
Apr 2, 2015 6:53:55 PM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Unable to load font file: file:/C:/windows/FONTS/HelveticaNeue.ttf. Reason: java.io.IOException: TrueType font is not supported: file:/C:/windows/FONTS/HelveticaNeue.ttf
Apr 2, 2015 6:53:55 PM org.apache.fop.fonts.truetype.TTFFile getTTCnames
INFO: This is a TrueType collection file with 4 fonts
谢谢