我从早期就开始使用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>
任何想法都将受到赞赏。
答案 0 :(得分:2)
对于某些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测试。
答案 1 :(得分:1)
有一种方法可以在Birt中使用相对路径上的字体。
您需要做的是将字体复制到Web应用程序中的某个位置。我在: C:\\ SRC \主\ web应用\报告
现在在应用程序中,使用以下命令从上述位置注册字体。
FontFactory.registerDirectory( scContext.getRealPath("/Reports") );
这将注册字体。
通过Spring MVC在Birt 4.3上测试