wypisanie tytułu książki w nagłówku pdf z fop / docbook / xslt

2

Jakiego ciągu należy użyć w moim XSLT, aby FOP wydrukował tytuł książki w nagłówku? Nigdzie nie byłem w stanie tego znaleźć i każda pomoc jest mile widziana!

Edytuj :

Więc,

<xsl:when test="$sequence = 'even' and $position = 'right'">
        <xsl:apply-templates select="." mode="titleabbrev.markup"/> 
      </xsl:when>

wypisze skróconą nazwę sekcji / rozdziału. Chcę zrobić to samo, ale tytułem książki.

Mika
źródło
tylko dla wyjaśnienia: masz tekst w formacie docbook i teraz rozwijasz plik .xsl, aby przekształcić go za pomocą FOP na XYZ?
akira
tak. zaimportowałem domyślny docbook 5 xslt do mojego arkusza i mam już dość ustawień domyślnych. Widziałem ciągi do drukowania nazwy sekcji lub rozdziału, ale nic o nazwie książki lub tytule.
Mica
podaj ten fragment w swoim pytaniu, w którym „fop” nagłówek strony ...
akira

Odpowiedzi:

2

Użyj tego:

<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>

Tytuł w tym przypadku jest zagnieżdżony <bookinfo>. d:Wymagana jest etykieta. Aby to zrobić, upewnij się, że przestrzeń nazw została zaimportowana na początku arkusza stylów:

<?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">

Po tym wierszu możesz zaimportować plik docbook.xsl.

Przykładowy początek dokumentu z tytułem książki:

<?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>
Rajib
źródło
Wygląda na to, że powinno działać, ale od dawna przeszedłem do tego projektu. Dziękuję za odpowiedź.
Mica
1

Trochę późno, ale natknąłem się na twoje pytanie, kiedy szukałem sposobu na zrobienie tego.

Po kilku poszukiwaniach skończyłem z:

w <xsl:template name="header.content">dziale:

<xsl:when test="$position = 'left'">
   <xsl:value-of select="//d:book/d:title"/>, 
   <xsl:value-of select="//d:book/d:subtitle"/>
</xsl:when>

Jeśli tytuł nie mieści się w lewej części nagłówka, możesz poszerzyć lewą część (100% w tym przykładzie), używając:

<xsl:param name="header.column.widths">1 0 0</xsl:param>

gdzieś w tobie config xslt.

rve
źródło
0

Nagłówek może być wyświetlany w <fo:region-before>tym, co definiuje górny region strony.

Widzę w twoim przykładzie, że testujesz na „parzystość”. Uważam, że ten tytuł jest potrzebny tylko na parzystych stronach. Możesz to zrobić, definiując różne wzorce stron ( <fo:simple-page-master master-name="even">) - wyszukuj <fo:page-sequence-master>i <fo:conditional-page-master-reference>miej strony nieparzyste / parzyste. W tym wzorcu strony definiujesz różne regiony strony.

chrwahl
źródło