我是否正确使用XSL-FO(Apache FOP)生成pdf时,无法使用windows 7 c:\ windows \ fonts *中的字体?
我刚刚安装了" helvetica neue" OTF格式的字体。
根据 https://xmlgraphics.apache.org/fop/trunk/fonts.html
"对系统字体的支持依赖于Java AWT子系统来获取字体度量信息。通过操作系统注册,AWT子系统知道系统上可用的字体,以及每个字体的字体度量。
使用支持系统字体的渲染器(参见上表)并且您错过了字体时,您可以将其安装在您的操作系统中,并且它应该可用于这些渲染器。请注意,对于仅支持自定义字体的输出格式(例如PDF或PostScript),情况并非如此。"
如果我的理解是正确的,那就说如果我的渲染是PDF(意思是输出是pdf ??),那么我就无法通过AWT / OS访问字体,因此,我赢了# 39;能够使用Windows 7字体生成PDF格式的文字吗?
------------------------------更新,这仅适用于ttf字体,而不适用于otf。 不知道如何让otf字体工作。
----------------------------- update: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
由于
答案 0 :(得分:0)
(初步披露:我是FOP开发人员)
我是否认为无法使用Windows 7中的字体 c:\ windows \ fonts *当使用XSL-FO(Apache FOP)生成pdf?
时
要配置字体需要才能被FOP识别和使用,但配置可以真的简单:您可以告诉FOP查看所有字体特定目录中的文件(甚至是递归的),或者只是在“通常”的位置查找字体。
此配置片段取自您问题中链接的相同font configuration page:
<renderers>
<renderer mime="application/pdf">
<fonts>
<!-- register all the fonts found in a directory -->
<directory>C:\MyFonts1</directory>
<!-- register all the fonts found in a directory and all of its sub directories (use with care) -->
<directory recursive="true">C:\MyFonts2</directory>
<!-- automatically detect operating system installed fonts -->
<auto-detect/>
</fonts>
</renderer>
</renderers>
您可以在this answer中找到有关字体配置的其他详细信息。
更新,这仅适用于ttf字体,而不适用于otf。不知道我怎么能得到 otf字体工作。
版本2.0已添加OpenType字体支持。