当前位置: 首页 > 知识库问答 >
问题:

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

陈奇希
2023-03-14

我有一个带有ApacheFop依赖项的OSGi blueprint容器。当我使用默认配置生成PDF时,俄文符号(而不是文本)会出现问题。在非OSGi测试应用程序中,这个问题很容易解决:我使用定制fop。xconf配置文件和两个arial*。ttf字体文件位于同一目录中。在fop中自动检测。xconf也解决了这个问题。

但在OSGi blueprint容器中,我无法从捆绑资源中读取conf文件。有人能给我举个例子,如何从blueprint容器中读取xconf和字体吗?或者如何在没有资源读取的情况下以编程方式配置字体。

共有1个答案

况庆
2023-03-14

所以,我找到了解决方案。我们不能使用文件()和“捆绑资源://...”路径,但是我们可以使用URI():

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

在本例中,我们从bundle资源中打开conf文件输入流,并将其传递给特殊的FopFactory。newInstance()定义。Fop。带有元素的xconf XML工作起来很有魅力。

 类似资料:
  • 我想指定属性文件的位置,OSGi蓝图属性占位符应从中读取属性值: 更新:Configuration felix.configadmin felix.fileinstall适用于我。 我安装了: org.apache.felix.configadmin-1.8.0.jar org . Apache . Felix . file install-3 . 1 . 4 . jar org.eclipse.

  • 我是OSGI蓝图的新手,面临着一个奇怪的问题。 我有两个独立的数据库:oracle和h2(用于测试)db 蓝图容器看起来像这样: 显然,上面的服务绑定到了oracleDataSource。datasource.type属性从配置文件中填充,其值为Oracle . JDBC . pool . Oracle data source 现在,我的用例是,假设如果我想稍后编辑配置文件并将datasource

  • 我的代码目录中有一个名为.env的文件.env有不同的配置 在我的代码目录中,我有一个名为脚本的文件夹 在脚本中,我有一个名为“control.py”的脚本,需要从.env读取配置 我如何才能做到这一点? 结构如下 。env有所有的配置文件,control.py需要读取这些配置文件。

  • 我有以下fop.conf,在Windows下工作正常: 但是因为应用程序还需要在没有提供Arial的操作系统上运行,所以我决定在Java应用程序的< code > src/main/resources/fonts/Arial . TTF 中添加一个字体。 所以我试着这样引用字体: 但它不使用字体。 调试时,我看到fopFactoryBuilder有一个名为< code>baseUri的字段,是否可

  • 在独立AEM安装中,felix OSGi容器是否存在于jetty servlet容器中?或者Jetty服务器是作为捆绑包安装在Felix OSGi容器中的? AEM启动时,哪一个将首先启动? 对于基于战争的安装,这将如何改变? 根据这个答案,两者都是可能的。但我想知道AEM采用哪种方法。

  • 根据代码发布的位置,blobcontainer应该进行相应的更改。我的意思是我希望在配置文件中配置“ImportContainer”。我可以这么做吗?