我有配置文件来加载Apache FOP的自定义字体。我正在努力在服务器上配置embed-url,以便字体url按服务器域更改。
我已尝试将embed-url属性值设为:
非工作嵌入式网址
使用embed-url:
不知怎的,我似乎无法在这里找到合适的语法。我在AEM 6.0中使用FOP。
<?xml version="1.0"?>
<fop version="1.0">
<renderers>
<renderer mime="application/pdf">
<fonts>
<font kerning="yes"
embed-url="context:/etc/designs/projectName/clientlibs/pdffonts/Batang.ttf" -- this doesn't
embedding-mode="subset">
<font-triplet name="SimSun" style="normal" weight="normal" />
</font>
<font kerning="yes"
embed-url="file:/etc/designs/projectName/clientlibs/pdffonts/Batang.ttf" -- this doesn't
embedding-mode="subset">
<font-triplet name="Batang" style="normal" weight="normal" />
</font>
<font kerning="yes"
embed-url="http://localhost:4503/etc/designs/projectName/clientlibs/pdffonts/Batang.ttf" -- this works
embedding-mode="subset">
<font-triplet name="Batang" style="normal" weight="normal" />
</font>
</fonts>
</renderer>
</renderers>
</fop>
答案 0 :(得分:4)
&#34;起点&#34;对于相对路径:
font-base
元素(作为文档根元素的直接子元素),则其值用于解析相对字体路径base
元素的值代替<base>.</base>
,这意味着必须将相对路径解释为相对于配置文件的位置请注意,font-base
和base
的值也可以相对,在这种情况下,它们指的是配置文件路径。
<?xml version="1.0"?>
<fop version="1.0">
<base>.</base>
<font-base>/Users/lfurini/Library/Fonts</font-base>
<!-- other possible examples:
<font-base>.</font-base>
<font-base>../fonts</font-base>
-->
<!-- ... -->
</fop>
相对路径语法:
context:
或file:
embed-url
以/
开头,则它是绝对路径,否则它是指向&#34;起点&#34;的相对者。 如果需要,相对路径可以包含../
以备份到文件夹层次结构中
<!-- directly in the base folder -->
<font kerning="yes" embed-url="font1.ttf">
<font-triplet name="font1" style="normal" weight="normal"/>
</font>
<!-- in a "sister" folder -->
<font kerning="yes" embed-url="../otherFonts/font2.ttf">
<font-triplet name="font2" style="normal" weight="normal"/>
</font>
<!-- in a sub-folder -->
<font kerning="yes" embed-url="specialFonts/font3.ttf">
<font-triplet name="font3" style="normal" weight="normal"/>
</font>
<!-- absolute path -->
<font kerning="yes" embed-url="/Users/lfurini/Library/Fonts/font4.ttf" embedding-mode="subset">
<font-triplet name="font4" style="normal" weight="normal"/>
</font>
(用FOP 1.1,2.0和2.1测试)
(披露:我是FOP开发人员,但现在不是很活跃)
答案 1 :(得分:1)
我通过从代码向应用程序添加完整路径解决了它。并从配置文件中添加了以后的patr。
fopFactory.setBaseURL(this.getServletContext()。getInitParameter(“ my_path”));
在配置
embed-url =“ fonts / newfont.ttf”
答案 2 :(得分:0)
对于FOP-2.1,在https://issues.apache.org/jira/browse/FOP-2627有一个“允许字体文件/目录的相对路径”的补丁。