我正在使用Fop-2.1从XML和XSL-FO生成PDF文件,花费了很多时间来配置fop配置文件(我正在使用西里尔字体),根据https://xmlgraphics.apache.org/fop/2.1/configuration.html进行配置。我在命令行中测试了它,它可以正常工作:
当我尝试使用服务模块资源文件夹中的配置文件获取FopFactory实例时,我遇到了困难,项目树如下:
我首先尝试了以下操作:
现在我需要在Java Web应用程序中实现相同的功能。 应用程序是多模块Maven项目。fop -c conf.xml -xml xml -xsl xsl -pdf pdf
当我尝试使用服务模块资源文件夹中的配置文件获取FopFactory实例时,我遇到了困难,项目树如下:
如何创建具有我的配置文件的FopFactory实例?service-module
src/main/resources
conf/config.xml
web-module
我首先尝试了以下操作:
FopFactory fopFactory = fopFactory = FopFactory.newInstance(
new File("/full/path/../resources/conf/config.xml"));
在这个项目中,我们使用EJB容器,当然
企业Bean不得使用java.io包尝试访问文件系统中的文件和目录。
那么我正在尝试这个
DefaultConfigurationBuilder cfgBuilder = new DefaultConfigurationBuilder();
Configuration cfg = null;
try {
cfg = cfgBuilder.build(getClass().getClassLoader().getResourceAsStream("conf/config.xml"));
} catch (Exception e) {
e.printStackTrace();
}
FopFactoryBuilder factoryBuilder = new FopFactoryBuilder(URI.create("/")).setConfiguration(cfg);
FopFactory fopFactory = factoryBuilder.build();
位于服务模块的PDF生成应用程序。我需要在baseURI中设置什么?
fopFactoryBuilder = new FopFactoryBuilder(baseURI).setConfiguration(cfg);