java - BIRT 3.7 运行时。不能再自定义 PDF 字体和 jdbc 驱动程序了吗?

标签 java pdf jdbc birt

我正在尝试将 BIRT 升级到最新的运行时 3.7。 看来自定义PDF字体是不可能的!在以前的版本中,它是在 org.eclipse.birt.report.engine.fonts*/fontsConfig*.xml 文件中完成的。

在 3.7 中,fontsConfig*.xml 文件嵌入到 BIRT 运行时 jar 文件中(在我的例子中是 org.eclipse.birt.runtime_3.7.1.v20110913-1734.jar). jar 文件已签名,认为它是 OSGI 所必需的。因此,如果您更改 jar 中的任何内容,JRE 会在加载文件时抛出校验和错误。如果您删除签名信息,OSGI 将不会加载它 (NPE)。

有什么想法可以在不重建 BIRT 运行时的情况下自定义我的 pdf 字体吗?

顺便说一句,我怀疑 jdbc 驱动程序也存在同样的问题。上面提到的 jar 文件包含 drivers 文件夹。怀疑它是来自插件 org.eclipse.birt.report.data.oda.jdbc* 的 jdbc 驱动程序的 stub 。

几年前,我问了一个关于从 BIRT 运行时添加 PDF 字体的问题。仍然没有答案BIRT: pdf emitter, load/use fonts from relative path or from jar files

更新:

  1. 关于 pdf 字体,发现 3.7.1 中 Unresolved 开放错误 - https://bugs.eclipse.org/bugs/show_bug.cgi?id=347431
  2. 根据 http://wiki.eclipse.org/Birt_3.7_Migration_Guide#JDBC_Drivers , jdbc 驱动程序必须在类路径中

最佳答案

这不是最简洁的方法,但可以在 jar 文件中编辑它们。您可以通过删除 META-INF/ECLIPSEF.SF 并从 META-INF/MANIFEST.MF 中删除主要部分之后的所有内容(文件名和摘要...或者,仅删除配置文件的部分)来删除签名。不需要对 jar 进行签名(我想这取决于安全管理器的设置,但在默认设置下它运行良好)。

关于java - BIRT 3.7 运行时。不能再自定义 PDF 字体和 jdbc 驱动程序了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7619727/

相关文章:

java - 适用于 Windows 7 的 Intellij IDE

java - 在 Spring Boot 中从生成 PDF 内容类型内容的外部 Rest API 中提取响应字节的正确方法是什么?

tomcat - Itext 5.5 将 RTL 语言(阿拉伯语)的 HTML 转换为 PDF 不适用于 tomcat

java - @Transactional 的动态事务隔离级别

java - 如果使用 keytool-maven-plugin 已经存在证书,如何跳过 importCertificate 目标?

java - 操作系统终端和 IntelliJ 终端之间的差异

java - JDBCPreparedStatement.setString() 无法与 SQLite 一起正常工作?

java - sql命令未正确结束(我的错误在哪里)

java - Observable 不是异步的

visual-studio - 如何设置 Visual Studio 自动发布 pdf 文件