BIRT 3.7 运行时。 PDF 字体和 jdbc 驱动程序的自定义不再可能了吗?
我正在尝试将 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 驱动程序存根。
几年前,我问了一个有关从 BIRT 运行时添加 PDF 字体的问题。仍然没有答案 BIRT:pdf发射器,从相对路径或 jar 文件加载/使用字体
更新:
- 关于 pdf 字体,发现 3.7.1 中未解决的开放错误 - https://bugs.eclipse.org/bugs/show_bug.cgi?id=347431< /a>
- 根据 http://wiki.eclipse.org/Birt_3.7_Migration_Guide#JDBC_Drivers,jdbc 驱动程序必须位于类路径中
I'm trying to upgrade BIRT to the latest runtime 3.7.
Looks like that it's impossible to customize PDF fonts! In previous versions it were done in org.eclipse.birt.report.engine.fonts*/fontsConfig*.xml
files.
In 3.7 fontsConfig*.xml
files are embedded in BIRT runtime jar file(in my case it's org.eclipse.birt.runtime_3.7.1.v20110913-1734.jar
). The jar file is signed, think it's necessary for OSGI. So if you change anything in jar, JRE throw checksum error on loading the file. If you remove the signing info, OSGI will not load it (NPE).
Any ideas how could I customize my pdf fonts without rebuilding BIRT runtime?
By the way, I suspect that the same issue presents for jdbc drivers. Above mentioned jar file contains drivers
folder. Suspect that it's a stub for jdbc drivers from plugin org.eclipse.birt.report.data.oda.jdbc*
.
Several years ago I asked a question regarding adding PDF fonts from BIRT runtime. It's still unanswered BIRT: pdf emitter, load/use fonts from relative path or from jar files
UPDATE:
- regarding pdf fonts, found open bug unresolved in 3.7.1 - https://bugs.eclipse.org/bugs/show_bug.cgi?id=347431
- According to http://wiki.eclipse.org/Birt_3.7_Migration_Guide#JDBC_Drivers, jdbc drivres must be in classpath
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这不是最干净的方法,但可以在 jar 文件中编辑它们。您可以通过删除 META-INF/ECLIPSEF.SF 并删除 META-INF/MANIFEST.MF 中主要部分之后的所有内容(文件名和摘要...或者,仅删除配置文件的部分)来删除签名。不需要对 jar 进行签名(我想这取决于安全管理器的设置,但在默认设置下它运行良好)。
It's not the cleanest way to go, but it's possible to edit them inside the jar file. You can remove the signature by deleting META-INF/ECLIPSEF.SF and removing everything from META-INF/MANIFEST.MF that goes after it's main section (filenames and digests...alternatively, remove just sections of the config files). It's not required to have the jar signed (I suppose it depends on security manager's settings, but under default settings it runs fine).