Dokumentation mit DocBook

Dokumentation mit DocBook

Posts 1-2 of 2
  • Klaus Ebner
    Klaus Ebner    Premium Member   Group moderator
    The company name is only visible to registered members.
    Änderungsmarkierungen in PDF
    Die Standard DocBook Distribution liefert Möglichkeiten, Änderungen im XML Dokument bei der Erstellung von (X)HTML anzuzeigen. Dabei wird das Attribut "revisionflag" benutzt, welches belegt werden kann mit
    - changed
    - deleted
    - added
    Leider exisitieren standardmäßig keine Style-Sheets für die Darstellung von geänderten Inhalten in PDF Dokumenten.

    Folgendes Style-Sheet erlaubt die Darstellung eines senkrechten Striches am rechten Seitenrand, wenn das revisionflag gesetzt wird. In dieser Version wird zwischen den Flags nicht unterschieden. Insbesondere ist damit die Darstellung von gelöschten Inhalten nicht möglich. Aber es ist ein Anfang... Verbesserungen werden gerne gesehen :-)

    <?xml version="1.0" encoding="US-ASCII"?>
    <!--This file was created automatically by html2xhtml-->
    <!--from the HTML stylesheets. Do not edit this file.-->
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:fo="http://www.w3.org/1999/XSL/Format"
    version="1.0">

    <!-- Das ist das Style-Sheet der DPAG für die Erstellung von FO Dateien. In anderen Umgebungen muss es
    durch ein entsprechendes ersetzt werden (z.B. docbook.xsl). Die Angabe dpag:// wird durch ein catalog-File aufgelöst -->
    <xsl:import href="dpag://fo/DPAG_wide.xsl"/>

    <xsl:param name="show.revisionflag" select="'1'"/>

    <xsl:template match="*[@revisionflag]">
    <xsl:choose>
    <xsl:when test="local-name(.) = 'para' or local-name(.) = 'simpara' or local-name(.) = 'formalpara' or local-name(.) = 'section' or local-name(.) = 'sect1' or local-name(.) = 'sect2' or local-name(.) = 'sect3' or local-name(.) = 'sect4' or local-name(.) = 'sect5' or local-name(.) = 'chapter' or local-name(.) = 'preface' or local-name(.) = 'itemizedlist' or local-name(.) = 'varlistentry' or local-name(.) = 'glossary' or local-name(.) = 'bibliography' or local-name(.) = 'index' or local-name(.) = 'appendix'">
    <fo:block border-end-color="black"
    border-end-style="solid"
    border-end-width="0.5pt"
    padding-end="3pt">
    <xsl:apply-imports/>
    </fo:block>
    </xsl:when>
    <xsl:when test="local-name(.) = 'phrase' or local-name(.) = 'ulink' or local-name(.) = 'link' or local-name(.) = 'filename' or local-name(.) = 'literal' or local-name(.) = 'member' or local-name(.) = 'glossterm' or local-name(.) = 'sgmltag' or local-name(.) = 'quote' or local-name(.) = 'emphasis' or local-name(.) = 'command' or local-name(.) = 'xref'">
    <fo:block border-end-color="black"
    border-end-style="solid"
    border-end-width="0.5pt"
    padding-end="3pt">
    <xsl:apply-imports/>
    </fo:block>
    </xsl:when>
    <xsl:when test="local-name(.) = 'listitem' or local-name(.) = 'entry' or local-name(.) = 'title'">
    <!-- nop; these are handled directly in the stylesheet -->
    <xsl:apply-imports/>
    </xsl:when>
    <xsl:otherwise>
    <xsl:message>
    <xsl:text>Revisionflag on unexpected element: </xsl:text>
    <xsl:value-of select="local-name(.)"/>
    <xsl:text> (Assuming block)</xsl:text>
    </xsl:message>
    <xsl:apply-imports/>
    </xsl:otherwise>
    </xsl:choose>
    </xsl:template>

    </xsl:stylesheet>

    Die Anwendung ist recht einfach: Bei dem Umwandeln von DocBook-XML zu FO-XML wird dieses als Stylesheet statt docbook.xsl aufgerufen.
  • Gunter Matella
    Gunter Matella    Premium Member
    The company name is only visible to registered members.
    Re: Änderungsmarkierungen in PDF
    Hallo Herr Ebner,

    als Neuling in der DocBook-Anwendung bin ich mit Interesse auf Ihren Beitrag gestossen. Ich verwende aktuell das du1-Packet zum Erzeugen der PDFs.
    Ich habe Ihr Stylesheet wie beschrieben eingebunden, sehe aber im PDF kein Effekt. Könnten Sie mir ein kurzes Anwendungsbeispiel (XML) des 'revisionflag' Property geben?

    Mit freundlichen Grüßen,

    Gunter Matella