BIRT:pdf 发射器,从相对路径或 jar 文件加载/使用字体

Fox*_*BOA 5 eclipse pdf reporting birt report

我从早期就使用 BIRT,但仍然有关于 PDF 发射器的谜语。

小故事:我可以配置 fontsConfig.xml 以从相对路径或 jar 加载字体吗?

长话短说: 我们同时使用 FOP 和 BIRT 在我们的 Web 应用程序中生成 PDF。在库之间共享字体会很好。不幸的是,我找不到使用 BIRT 2.3.1 的方法

邪恶的根源是 fontsConfig.xml 如果我像下面这样配置它,它工作正常:

<font-paths>
<path path="fonts"/>
</font-paths>
Run Code Online (Sandbox Code Playgroud)

但是路径不允许我使用相对路径而不是类路径(或者我找不到如何配置它的合适方法)。config1 和 config2 都不起作用。

配置1:

<font-paths>
<path path="../fonts"/>
</font-paths>
Run Code Online (Sandbox Code Playgroud)

配置2:

<font-paths>
<path path="classpath:fonts"/>
</font-paths>
Run Code Online (Sandbox Code Playgroud)

任何想法将不胜感激。

hvb*_*hvb 3

对于某些 BIRT 版本,您可以使用 SystemProperty“birt.font.dirs”。这会覆盖 fontsConfig.xml。

嗯,这曾经有效,但显然它后来从 BIRT 源代码中删除了。

现在你可以调用类似的东西

EngineConfig engineConfig = new EngineConfig();
URL fontsConfigurationURL = new URL("file:///path/to/my/fontsConfig.xml");
engineConfig.setFontConfig(fontsConfigurationURL);

Platform.startup(engineConfig);
Run Code Online (Sandbox Code Playgroud)

这允许您向 BIRT 提供自定义版本的 fontsConfig.xml,而无需在 JAR 中进行探索。

使用 BIRT 4.3.0 进行测试。