eXist-db XSL-FO – расстановка переносов и настройки

Я запускаю eXist на безголовом виртуальном сервере Ubuntu. Интересно, что модуль XSL-FO был включен по умолчанию, возможно, потому, что он был установлен на сервере до установки eXist.

Я использую файл конфигурации, находящийся внутри коллекции приложения. Интересно то, что он использует (и только разрешает) системные пути, и невозможно использовать ресурсы из коллекции (например, я пытался загрузить шрифты и указать на них из конфигурации, но это не сработало — мне пришлось использовать его как это было, когда я использовал его без eXist.Все работает, кроме переносов.Без eXist, переносы тоже работают.

<fop version="1.0">
    <hyphenation-base>/home/honza/.fop/hyph</hyphenation-base>
    <hyphenation-pattern lang="cs" country="CZ">cs</hyphenation-pattern>
    <renderers>
        <renderer mime="application/pdf">
            <fonts>
                <font kerning="yes" embed-url="/home/honza/.fonts/libertine/LinLibertine_Rah.ttf" embedding-mode="subset">
                    <font-triplet name="LinLibertine" style="normal" weight="normal"/>
                </font>
                <font kerning="yes" embed-url="/home/honza/.fonts/libertine/LinLibertine_RIah.ttf" embedding-mode="subset">
                    <font-triplet name="LinLibertine" style="italic" weight="normal"/>
                </font>
                <font kerning="yes" embed-url="/home/honza/.fonts/libertine/LinLibertine_RBah.ttf" embedding-mode="subset">
                    <font-triplet name="LinLibertine" style="normal" weight="bold"/>
                </font>
                <font kerning="yes" embed-url="/home/honza/.fonts/libertine/LinLibertine_RBIah.ttf" embedding-mode="subset">
                    <font-triplet name="LinLibertine" style="italic" weight="bold"/>
                </font>
                <font kerning="yes" embed-url="/home/honza/.fonts/libertine/LinBiolinum_Rah.ttf" embedding-mode="subset">
                    <font-triplet name="LinBiolinum" style="normal" weight="normal"/>
                </font>
                <font kerning="yes" embed-url="/home/honza/.fonts/libertine/LinBiolinum_RIah.ttf" embedding-mode="subset">
                    <font-triplet name="LinBiolinum" style="italic" weight="normal"/>
                </font>
                <font kerning="yes" embed-url="/home/honza/.fonts/libertine/LinBiolinum_RBah.ttf" embedding-mode="subset">
                    <font-triplet name="LinBiolinum" style="normal" weight="bold"/>
                </font>
            </fonts>
        </renderer>
    </renderers>
</fop>

Я знаю, что hyphenation-base — это правильное место для начала, но не могу понять, нужно ли его устанавливать каким-то особым образом из-за eXist.


person Honza Hejzl    schedule 20.01.2016    source источник


Ответы (1)


Если вы вызываете FOP из eXist, вам нужно сохранить банку переносов (fop-hyph.jar) в $EXIST_HOME/extensions/modules/lib/ рядом с fop.jar. Тогда вам вообще не нужно свойство <hyphenation-base> в файле fop.conf — достаточно <hyphenation-pattern>.

person Joe Wicentowski    schedule 20.01.2016
comment
Большое спасибо! Решено! - person Honza Hejzl; 20.01.2016
comment
Все еще тестируя, проблема может быть (и я сообщу об этом в списке рассылки), если FOP вызывается из-за пределов всей установки eXist. Если да, то <hyphenation-base> все равно нужен. Без этого он не переносится :( - person Honza Hejzl; 28.01.2016