我想使用自定义字体(Vito-Regular.otf)来生成java程序中生成的pdf文档 - 使用Apache FOP 2.1。
网上发现的大多数样本都是指FOP 1.0和.ttf字体。所以这对我有帮助。
我的FOP用户配置:
<?xml version="1.0"?>
<fop version="1.0">
<renderers>
<renderer mime="application/pdf">
<fonts>
<font embed-url="file:C://Windows//Fonts//Vito-Regular.otf" kerning="yes" >
<font-triplet name="Vito" style="normal" weight="normal" />
</font>
</fonts>
</renderer>
</renderers>
&#13;
在模板中使用:
<fo:block-container font-size="9pt" font-family="Vito">
&#13;
将导致使用默认字体(任何)但不使用(对于我预期的)Vito字体:
WARNUNG: Font "Vito,normal,400" not found. Substituting with "any,normal,400".
所以这是我对这个问题的主要问题:
对这些问题的任何帮助表示赞赏。
答案 0 :(得分:0)
我的fop.xml就像这样
<select ng-model="$storage.selectedlanguage.language">
<option ng-repeat="lang in languages" value="{{lang.language}}">
{{lang.text}}
</option>
</select>
和我的<renderers>
<renderer mime="application/pdf">
<fonts>
<font embed-url="MSMINCHO.TTF" kerning="yes" sub-font="MS Mincho">
<font-triplet name="MS Mincho" style="normal" weight="normal"/>
<font-triplet name="MS Mincho" style="normal" weight="bold"/>
</font>
</fonts>
</renderer>
文件与我的TTF
文件位于同一目录中。
因此,您可能错过了xml
标记,或者文件位置和/或文件类型存在问题。
答案 1 :(得分:0)
它在Windows下接缝了URI问题(在OSX上没有问题)。我已经通过一些解决方法解决了这个问题。
我的Java代码是标准
String filename = "xfop.xml";
FopFactory fopFactory = FopFactory.newInstance(new File (filename));
第一
<font-base>\\<computername>\C$\Windows\Fonts</font-base>
第二,请注意,本地主机不起作用,
<font-base>\\127.0.0.1\Windows\fonts</font-base>
第三,我复制所需的字体(这是我的生产解决方案)
<font-base>\\<server>\<share>\fonts</font-base>