如何将Fop配置文件加载到FopFactory

8
我正在使用Fop-2.1从XML和XSL-FO生成PDF文件,花费了很多时间来配置fop配置文件(我正在使用西里尔字体),根据https://xmlgraphics.apache.org/fop/2.1/configuration.html进行配置。我在命令行中测试了它,它可以正常工作:

fop -c conf.xml -xml xml -xsl xsl -pdf pdf

现在我需要在Java Web应用程序中实现相同的功能。 应用程序是多模块Maven项目。
当我尝试使用服务模块资源文件夹中的配置文件获取FopFactory实例时,我遇到了困难,项目树如下:

service-module

src/main/resources

conf/config.xml

web-module

如何创建具有我的配置文件的FopFactory实例?
我首先尝试了以下操作:
 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);

1
你有没有找到正确的方法来做这件事? - Piyin
1
不得不使用之前的FOP 1.**版本。 - guesswho
1个回答

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接