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

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

长篇故事: 我们使用FOP和BIRT在我们的Web应用程序中生成PDF。在库之间共享字体会很不错。不幸的是,我找不到使用BIRT 2.3.1

的方法

邪恶的根源是fontsConfig.xml 如果我按如下所示进行配置,则可以正常工作:

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

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

配置Config1:

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

配置Config2:

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

任何想法都将受到赞赏。

有帮助吗?

解决方案

对于某些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测试。

其他提示

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

您需要做的是将字体复制到Web应用程序中的某个位置。我在: C:\\ SRC \主\ web应用\报告

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

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

这将注册字体。

通过Spring MVC在Birt 4.3上测试

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top