2016-01-25 102 views
1

我正在嘗試更改Apache FOP(basicFOPConfig.xml)的配置文件,但我所做的更改似乎沒有任何區別。我的最終目標是將緩存文件從C:\ Users \ username.fop \更改爲C:\ ProgramData \ programname.fop。下面是我嘗試使用的配置文件。Apache 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運行程序時,它不會拋出任何錯誤/ etc。以下是一些可能很重要的配置。

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

回答

0

最後我終於找到了原因。雖然在任何地方都沒有明確提到,但您必須切換use-cache標誌才能使其接受cache-file標籤。這是一個適用於我的案例的例子。

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