5

我从早期就使用 BIRT,但仍然对 PDF 发射器有疑问。

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

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

万恶之源是 fontsConfig.xml 如果我如下所示配置它,它可以正常工作:

<font-paths>
<path path="fonts"/>
</font-paths>

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

配置1:

<font-paths>
<path path="../fonts"/>
</font-paths>

配置2:

<font-paths>
<path path="classpath:fonts"/>
</font-paths>

任何想法将不胜感激。

4

2 回答 2

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);

这允许您为 BIRT 提供自定义版本的 fontsConfig.xml,而无需在 JAR 中四处寻找。

使用 BIRT 4.3.0 测试。

于 2014-02-11T14:47:04.547 回答
1

有一种方法可以在 Birt 中使用相对路径上的字体。

您需要做的是将字体复制到 Web 应用程序中的某个位置。我的在:C:\\src\main\webapp\Reports

现在在应用程序中,使用以下命令从上述位置注册字体。

FontFactory.registerDirectory( scContext.getRealPath("/Reports") );

这将注册字体。

通过 Spring MVC 在 Birt 4.3 上测试

于 2014-03-06T14:20:56.327 回答