2016-07-09 4 views
1

私はApache FOP依存性を持つOSGiブループリントコンテナを持っています。デフォルトの設定でPDFを生成すると、ロシア記号(####ではなくテキスト)に問題があります。 OSGiテストアプリケーションではありませんが、この問題には簡単な修正があります。私はカスタムfop.xconf設定ファイルと同じディレクトリに2つのarial * .ttfフォントファイルを使用します。 fop.xconfの自動検出でもこの問題が修正されています。OSGiブループリントコンテナのApache FOP設定とフォントを読む

しかし、OSGiブループリントコンテナでは、バンドルリソースからconfファイルを読み取ることができません。誰でも私に青写真のコンテナからxconfとフォントを読む方法の例を教えてもらえますか?または、リソースを読み込まずにプログラムでフォントを構成する方法はありますか。

答えて

1

私は解決策を見つけました。 私たちは、「bundleresource:// ...」でファイルを()を使用することはできませんパスが、我々は、URI()を使用することができます:私たちは、バンドルのリソースおよびパスからのconfファイルの入力ストリームを開き、この場合

 URL url = getClass().getClassLoader().getResource(FOP_XCONF_FILE); 
     fopFactory = FopFactory.newInstance(url.toURI(), url.openStream()); 

を特殊なFopFactory.newInstance()の定義に変換します。 Fop.xconf XMLは要素が魅力的に機能します。

関連する問題