我正在尝试将 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
更新:
- 关于 pdf 字体,发现 3.7.1 中 Unresolved 开放错误 - https://bugs.eclipse.org/bugs/show_bug.cgi?id=347431
- 根据 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/