Apache FOP更改默认缓存文件夹

时间:2016-01-25 20:09:45

标签: java apache apache-fop

我正在尝试更改Apache FOP(basicFOPConfig.xml)的配置文件,但我所做的更改似乎没有任何区别。我的最终目标是将缓存文件从C:\ Users \ username.fop \更改为C:\ ProgramData \ programname.fop。以下是我尝试使用的配置文件。

<fop version='1.0'>
    <cache-file>%programdata%\programname\</cache-file>
    <renderers>
        <renderer mime='application/pdf'>
            <fonts>
                <auto-detect/>
            </fonts>
        </renderer>
    </renderers>
</fop>

据我所知,当使用Javas ProcessBuilder运行程序时,它不会抛出任何错误/等。以下是一些可能很重要的配置。

commandWords = new String[] {
                executable.getAbsolutePath(),
                "-Xms256m",
                "-Xmx" + maxMemory,
                "-jar",
                "fop.jar",
                "-c",
                configFile.getAbsolutePath(),
                "-d",
                "-fo",
                null,
                "-pdf",
                outputFile.getAbsolutePath()
        };

我不确定我是否遗漏了设置或配置中的重要内容。似乎无论我改变它似乎忽略配置文件并使用默认值。我似乎也无法告诉我它为什么忽略配置文件。如果可能的话,我想避免使用-cache选项,但如果配置文件不起作用,可能必须使用它。

对此的任何想法都会有所帮助,我还会包含Apache配置页面的链接。

https://xmlgraphics.apache.org/fop/1.0/configuration.html

1 个答案:

答案 0 :(得分:0)

最终我找到了原因。尽管未在任何地方明确提及,但您必须切换use-cache标志以使其接受cache-file标记。这是一个适合我案例的例子。

<fop version='1.0'>
    <use-cache>true</use-cache>
    <cache-file>file:/Directory/fop-fonts.cache</cache-file>
</fop>