这很奇怪,我确信我做错了什么,但我不知道是什么。
我在src / main / resources / report / fonts上有几个OTF文件。这些文件是正确的并且工作正常,但是当我编译应用程序时,它们被修改(文件的大小增加2倍)并且它们不再有效。
我正在使用Apache FOP,我收到以下错误:
2014-05-27 11:34:30,145 [JavaFX Application Thread] ERROR org.apache.fop.fonts.truetype.TTFFile - Dirtab head not found.
2014-05-27 11:34:30,145 [JavaFX Application Thread] ERROR org.apache.fop.fonts.truetype.TTFFile - Dirtab maxp not found.
2014-05-27 11:34:30,145 [JavaFX Application Thread] ERROR org.apache.fop.fonts.truetype.TTFFile - Dirtab hhea not found.
2014-05-27 11:34:30,145 [JavaFX Application Thread] ERROR org.apache.fop.fonts.truetype.TTFFile - Dirtab hmtx not found
现在,如果我,手动更改原始文件的字体,一切都像魅力一样。
有什么问题?我在同一个文件夹上有其他文件,但没有修改。
更新
这是我加载它的方式,但我不认为加载是问题,因为如果我更改原始文件的文件,它就可以工作。
fopFactory.getFontManager().setFontBaseURL(getClass().getClassLoader().getResource("report/").toString().replace(":/", ":///"))
答案 0 :(得分:0)
原来这是一个maven问题。您必须选择要包含的文件的扩展名。我知道这一点,但我不记得我过去曾这样做过:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>**/*.otf</exclude>
<exclude>**/*.ttf</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>**/*.otf</include>
<include>**/*.ttf</include>
</includes>
</resource>
</resources>