Получение нежелательной второй титульной страницы при обработке docbook в PDF через fop

Я создаю стандартный формат книги в докбуке xml, а затем форматирую его в PDF через fop.

Однако, когда я создаю окончательный PDF-файл, я получаю вторую сломанную титульную страницу, на которой снова есть заголовок и встроенное изображение. На этой странице заголовок выровнен по всей странице (так странно распределен), а изображение смещено от центра.

После названия также есть дополнительное двоеточие, которого нет в названии книги.

Если я удаляю титульный лист с помощью параметров XSL, титульный лист удаляется, но неработающий титульный лист все равно остается в PDF.

Я вижу дополнительную строку, которая генерирует вторую страницу в файле .fo, но не могу понять, как она туда попадает через xsltproc. Мое первое предположение состоит в том, что он автоматически создает титульный лист, а затем снова интерпретирует заголовок, прежде чем он пройдет через другие главы.

У меня не возникает этой проблемы с титульным листом, если я экспортирую через oXygen, что еще больше сбивает с толку.

Вот код книги:

<!DOCTYPE book [
<!ENTITY chap1 SYSTEM "01_n.xml">
<!ENTITY chap2 SYSTEM "02_n.xml">
<!ENTITY chap3 SYSTEM "03_n.xml">
<!ENTITY chap4 SYSTEM "04_n.xml">
<!ENTITY chap5 SYSTEM "05_n.xml">
<!ENTITY chap6 SYSTEM "06_n.xml">
<!ENTITY chap7 SYSTEM "07_n.xml">
<!ENTITY chap8 SYSTEM "08_n.xml">
<!ENTITY chap9 SYSTEM "09_n.xml">
<!ENTITY chap10 SYSTEM "10_n.xml">
<!ENTITY chap11 SYSTEM "11_n.xml">
<!ENTITY chap12 SYSTEM "12_n.xml">
<!ENTITY chap13 SYSTEM "13_n.xml">
<!ENTITY chap14 SYSTEM "14_n.xml">
<!ENTITY chap15 SYSTEM "15_n.xml">
<!ENTITY chap16 SYSTEM "16_n.xml">
<!ENTITY chap17 SYSTEM "17_n.xml">
<!ENTITY chap18 SYSTEM "18_n.xml">
]>

<book xmlns="http://docbook.org/ns/docbook" version="5.0">
    <info>
        <title>Manual</title>
         <subtitle>
            <inlinemediaobject>
                <imageobject>
                    <imagedata fileref="logo.png" format="image_format" scalefit="1" width="100%" contentdepth="100%" />
                </imageobject>
            </inlinemediaobject>
        </subtitle>
    </info>

    &chap1;
    &chap2;
    &chap3;
    &chap4;
    &chap5;
    &chap6;
    &chap7;
    &chap8;
    &chap9;
    &chap10;
    &chap11;
    &chap12;
    &chap13;
    &chap14;
    &chap15;
    &chap16;
    &chap17;
    &chap18;
</book>

И pdf-часть make-файла:

pdf:   
    xsltproc  \
    --output  myfile.fo  \
    --stringparam  paper.type  A4  \
    /docbook/format.xsl \
    book.xml

    fop  -fo  myfile.fo  -pdf  myfile.pdf

    open myfile.pdf

В используемом мной файлеformal.xsl нет ничего особенного, и я получаю тот же результат, если использую стандартный файл docbook xsl.

Спасибо за любую помощь! Я уже получил много полезных советов по форматированию docbook, выполнив поиск по существующим вопросам.


person bottomless_teapot    schedule 23.02.2012    source источник
comment
Титульный лист фактически состоит из двух страниц: лицевой и оборотной. Какие параметры XSL вы используете для его удаления?   -  person mzjn    schedule 27.02.2012
comment
Если я использую следующее, он удаляет правильный титульный лист и оставляет неправильный: <xsl:template name="book.titlepage.recto"/> Если я использую следующее, он удаляет только разрыв страницы между титульным листом и неправильным: <xsl:template name="book.titlepage.before.verso"/>   -  person bottomless_teapot    schedule 19.03.2012


Ответы (1)


mzjn дал подсказку:

Я использовал: <xsl:template name="book.titlepage.before.verso"/>

Когда я должен был использовать: <xsl:template name="book.titlepage.verso"/>

Последний код удаляет вторую шаткую страницу, тогда как первый удаляет только разрыв страницы.

person bottomless_teapot    schedule 19.03.2012
comment
Вам понадобятся оба, если вы хотите полностью удалить шаткую страницу. - person Dormouse; 12.08.2015