2016-01-25 6 views
1

Я пытаюсь внести изменения в файл конфигурации для Apache FOP (basicFOPConfig.xml), но изменения, которые я делаю, по-видимому, не имеют никакого значения. Моя конечная цель - изменить файл кэша с C: \ Users \ username.fop \ на C: \ ProgramData \ programname.fop. Ниже приведен файл конфигурации, который я пытаюсь использовать.Apache FOP change default cache-file folder

<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

ответ

0

В конце концов я нашел причину. Хотя это явно не упоминается нигде, вам нужно переключить флаг кэша использования, чтобы он принял тег кеш-файла. Вот пример, который работал для моего дела.

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