在OSGi蓝图容器中读取Apache FOP配置和字体

时间:2016-07-09 18:58:21

标签: apache fonts apache-fop

我有一个与Apache FOP相关的OSGi蓝图容器。当我使用默认配置生成PDF时,俄语符号存在问题(####而不是文本)。在非OSGi测试应用程序中,这个问题很容易解决:我在同一目录中使用自定义fop.xconf配置文件和两个arial * .ttf字体文件。 fop.xconf中的自动检测也解决了这个问题。

但是在OSGi蓝图容器中我无法从捆绑资源中读取conf文件。谁能告诉我一个如何从蓝图容器中读取xconf和字体的例子?或者如何在没有资源读取的情况下以编程方式配置字体。

1 个答案:

答案 0 :(得分:1)

所以,我找到了解决方案。 我们不能将File()与“bundleresource:// ...”路径一起使用,但我们可以使用URI():

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

在这种情况下,我们打开来自bundle资源的conf-file输入流,并将其传递给特殊的FopFactory.newInstance()定义。带元素的Fop.xconf XML就像魅力一样。