Печать заголовка книги в заголовке PDF с помощью fop/docbook/xslt
Какую строку использовать в моем XSLT, чтобы FOP печатал заголовок книги в заголовке? Я не смог найти это нигде, и любая помощь приветствуется!
Редактировать:
Так,
<xsl:when test="$sequence = 'even' and $position = 'right'">
<xsl:apply-templates select="." mode="titleabbrev.markup"/>
</xsl:when>
напечатает сокращенное название раздела / главы. Я хочу сделать то же самое, но для названия книги.
4 ответа
Использовать этот:
<xsl:when test="$sequence = 'even' and $position = 'right'">
<xsl:value-of select="ancestor-or-self::d:book/d:bookinfo/d:title"></xsl:value-of>
</xsl:when>
Название в этом случае вложено в <bookinfo>
, d:
этикетка обязательна. Но для этого убедитесь, что вы импортировали пространство имен в начале таблицы стилей:
<?xml version='1.0'?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:d="http://docbook.org/ns/docbook"
exclude-result-prefixes="d"
version="1.0">
После этой строки вы можете импортировать docbook.xsl.
Пример начала книги с названием книги:
<?xml version="1.0"?>
<book xmlns="http://docbook.org/ns/docbook" version="5.0">
<bookinfo>
<title>THIS IS THE TITLE OF THE BOOK</title>
</bookinfo>
...
...
</book>
Немного поздно, но я наткнулся на ваш вопрос, когда искал способ сделать это.
После некоторых поисков я получил:
в <xsl:template name="header.content">
раздел:
<xsl:when test="$position = 'left'">
<xsl:value-of select="//d:book/d:title"/>,
<xsl:value-of select="//d:book/d:subtitle"/>
</xsl:when>
Когда заголовок не помещается в левой части заголовка, вы можете сделать левую часть более широкой (100% в этом примере), используя:
<xsl:param name="header.column.widths">1 0 0</xsl:param>
где-то в вашем конфиге xslt.
http://www.sagehill.net/docbookxsl/PrintHeaders.html может помочь. предоставить фрагмент, и, возможно, я могу помочь больше.
Заголовок может отображаться в <fo:region-before>
что определяет верхнюю область страницы.
Я вижу в вашем примере, что вы проверяете "даже". Я понимаю, что вам нужен только этот заголовок на четных страницах. Вы можете сделать это, определив разные мастера страниц (<fo:simple-page-master master-name="even">
) - Ищу <fo:page-sequence-master>
а также <fo:conditional-page-master-reference>
иметь нечетные / четные страницы. В этом мастере страницы вы определяете различные области страницы.