2015-04-23 3 views
0

Я использую XSLT для преобразования XML в XSL-FO, а затем создаю PDF из него (используя Apache FOP). К сожалению, я HTML кодируются буквы в XML, как:HTML-кодированные буквы в XSL-FO

<TAG>wp&#322;yw</TAG> 

Как я могу иметь Ł вместо &#322; в моем выходе PDF?

+0

Возможно, это может вам помочь: http://stackoverflow.com/questions/17956218/xsl-fo-foreign-characters-polish-unicode-in-apache-fop-v-1-1 – potame

+0

Кажется, что он работает правильно , Каким шрифтом вы хотите пользоваться (Arial, Helvetica, ...)? Вы проверяете, что он установлен на вашем компьютере? – potame

+0

@potame Я пробовал как Arial, так и Times. Они оба установлены. – alex

ответ

0

Кажется, что конфигурация FOP установлена ​​неправильно. Измените или скопируйте файл fop.xconf, который вы найдете в папке conf в каталоге установки FOP.

В этом файле найдите тег <renderer mime="application/pdf">. Внутри дочернего тега <fonts> добавьте <auto-detect/>. Вы должны получает <renderer> конфигурацию, как это (я удалил все комментировал текст):

<renderer mime="application/pdf"> 
    <filterList> 
    <!-- provides compression using zlib flate (default is on) --> 
    <value>flate</value> 

    <!-- encodes binary data into printable ascii characters (default off) 
     This provides about a 4:5 expansion of data size --> 
    <!-- <value>ascii-85</value> --> 

    <!-- encodes binary data with hex representation (default off) 
     This filter is not recommended as it doubles the data size --> 
    <!-- <value>ascii-hex</value> --> 
    </filterList> 

    <fonts> 
    <!-- ... lots of commented stuff in here ... --> 

    <auto-detect/> 

    </fonts> 
</renderer> 

Затем следует вызвать команду ФОП с -c опции, например,

fop -c path/to/file/fop.xconf myfile.fo myfileout.pdf 

И он должен работать должным образом (при условии, что лицо шрифта может правильно отобразить конкретный символ).

Смежные вопросы