【问题标题】:Read Apache FOP config and fonts in OSGi blueprint container在 OSGi 蓝图容器中读取 Apache FOP 配置和字体
【发布时间】:2016-07-09 18:58:21
【问题描述】:
我有一个带有 Apache FOP 依赖项的 OSGi 蓝图容器。当我使用默认配置生成 PDF 时,俄语符号(#### 而不是文本)会出现问题。在非 OSGi 测试应用程序中,这个问题很容易解决:我在同一目录中使用自定义 fop.xconf 配置文件和两个 arial*.ttf 字体文件。 fop.xconf 中的自动检测也解决了这个问题。
但在 OSGi 蓝图容器中,我无法从捆绑资源中读取 conf 文件。谁能告诉我一个如何从蓝图容器中读取 xconf 和字体的例子?或者如何在不读取资源的情况下以编程方式配置字体。
【问题讨论】:
标签:
apache
fonts
apache-fop
【解决方案1】:
所以,我找到了解决方案。
我们不能将 File() 与“bundleresource://...”路径一起使用,但我们可以使用 URI():
URL url = getClass().getClassLoader().getResource(FOP_XCONF_FILE);
fopFactory = FopFactory.newInstance(url.toURI(), url.openStream());
在这种情况下,我们从捆绑资源中打开 conf 文件输入流并将其传递给特殊的 FopFactory.newInstance() 定义。带有元素的 Fop.xconf XML 就像一个魅力。