Apache FOP 更改默认缓存文件夹
Apache FOP change default cache-file folder
我正在尝试更改 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 的程序时,它不会抛出任何 errors/etc。以下是一些可能很重要的配置。
commandWords = new String[] {
executable.getAbsolutePath(),
"-Xms256m",
"-Xmx" + maxMemory,
"-jar",
"fop.jar",
"-c",
configFile.getAbsolutePath(),
"-d",
"-fo",
null,
"-pdf",
outputFile.getAbsolutePath()
};
我不确定我是否遗漏了设置或配置中的重要内容。似乎无论我更改什么,它似乎都会忽略配置文件并使用默认值。我似乎也无法让它告诉我为什么忽略配置文件。如果可能的话,我想避免使用 -cache 选项,但如果配置文件不起作用,我可能不得不使用它。
对此的任何想法都会有所帮助,我还将在 Apache 的配置页面中包含一个 link。
终于找到原因了。尽管没有在任何地方明确提及,但您必须切换 use-cache 标志以使其接受 cache-file 标签。这是一个适用于我的案例的示例。
<fop version='1.0'>
<use-cache>true</use-cache>
<cache-file>file:/Directory/fop-fonts.cache</cache-file>
</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 的程序时,它不会抛出任何 errors/etc。以下是一些可能很重要的配置。
commandWords = new String[] {
executable.getAbsolutePath(),
"-Xms256m",
"-Xmx" + maxMemory,
"-jar",
"fop.jar",
"-c",
configFile.getAbsolutePath(),
"-d",
"-fo",
null,
"-pdf",
outputFile.getAbsolutePath()
};
我不确定我是否遗漏了设置或配置中的重要内容。似乎无论我更改什么,它似乎都会忽略配置文件并使用默认值。我似乎也无法让它告诉我为什么忽略配置文件。如果可能的话,我想避免使用 -cache 选项,但如果配置文件不起作用,我可能不得不使用它。
对此的任何想法都会有所帮助,我还将在 Apache 的配置页面中包含一个 link。
终于找到原因了。尽管没有在任何地方明确提及,但您必须切换 use-cache 标志以使其接受 cache-file 标签。这是一个适用于我的案例的示例。
<fop version='1.0'>
<use-cache>true</use-cache>
<cache-file>file:/Directory/fop-fonts.cache</cache-file>
</fop>