でフォントarial.ttfのを見つけない:ApacheのFOP私が使用して1.0
- のApache FOP 1.0
- のJava
私はユニコードがU0100よりも高くなっている特殊文字を処理する必要があります。私が使用するターゲットフォントはArialです。 Arialがターゲットプラットフォーム(Linuxなど)に存在するとは思えないので、私は自分のjarファイルにArial.ttfを埋め込んだ。 私の実際の設定ファイルは、次のようになります。
<fop ...>
<!-- Base URL for resolving relative URLs -->
<base>./</base>
<!-- Font Base URL for resolving relative font URLs -->
<font-base>./</font-base>
<renderers>
<renderer mime="application/pdf">
<fonts>
<font kerning="yes" embed-url="arial.ttf" encoding-mode="auto">
<font-triplet name="Arial" style="normal" weight="normal"/>
<font-triplet name="ArialMT" style="normal" weight="normal"/>
</font>
<!--<directory>C:/Windows/Fonts</directory>-->
</fonts>
<auto-detect/>
</renderer>
...
</fop>
私はFOPに私の設定ファイルをロードし、エラーを取得し、それをこのように行う:
org.apache.fop.apps.FOPException: Failed to resolve font with embed-url 'arial.ttf'
唯一の方法は、私はそれをするまで仕事を得るために管理しました今度は、フォルダパスを設定ファイルにハードコードすることです:
<font kerning="yes" embed-url="C:/myapp/arial.ttf" encoding-mode="auto">
<font-triplet name="Arial" style="normal" weight="normal"/>
<font-triplet name="ArialMT" style="normal" weight="normal"/>
</font>
しかし、明らかにこれは解決策にはなりません!
「ディレクトリ」タグを使用すると、Windows上で動作します。そこにはArialがあるからです。しかし、上記のように、Linux、Macなどでも実行する必要があります。
「自動検出」タグは(Windowsではなく)動作しませんでした。 Arialがインストールされたプラットフォーム。
これを解決するための提案はありますか?
これが正解であれば、あなた自身の答えを受け入れることができます。 –