Seiteninformationen generieren

CSS bietet zurzeit nicht die Möglichkeit, die Seiteninformationen (Dateiname, Datum, Uhrzeit) automatisch im Rendering-Prozess zu generieren. Daher sind diese Informationen automatisiert aktuell nur über

in das PDF zu integrieren.

Andernfalls müssen die entsprechenden Angaben im CSS manuell notiert werden.

Beispiel 34. XSLT+CSS-Beispiel für die Generierung von Seiteninformationen

Datei 00-seiteninfos.xsl im ConfigSetting im Unterorder print-css/xslt/

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:xs="http://www.w3.org/2001/XMLSchema"
	exclude-result-prefixes="xs"
	version="2.0">
	
	<!-- Copy-Template -->
	<xsl:template match="node() | @*">
		<xsl:copy>
			<xsl:apply-templates select="node() | @*"/>
		</xsl:copy>
	</xsl:template>
	
	<!-- Attribute für die PDF-Weiterverarbeitung -->
	<xsl:template match="projekt">
		<xsl:copy>
			<xsl:copy-of select="@*"/>
			
			<!-- Angabe von Informationen für Druck-PDF (Seiteninformationen) -->
			<!-- Seiteninformation: Datum -->
			<xsl:attribute name="printcss-rendering-datum" select="current-date()"/>
			<!-- Seiteninformation: Uhrzeit -->
			<xsl:attribute name="printcss-rendering-uhrzeit" select="current-time()"/>
			<!-- Seiteninformation: Dateiname -->
			<xsl:attribute name="printcss-rendering-dateiname" select="//ausgabe[@id=$param_ausgabe]/kennung[@typ='isbn']"/>
			
			<xsl:apply-templates/>
		</xsl:copy>
	</xsl:template>
	
</xsl:stylesheet>

Ergänzung im CSS-Stylesheet stylesheet.{less|css} im ConfigSetting im Unterorder print-css/

@page {
	...
	/* Seiteninformationen */
	counter-increment: seitenzaehler;
	@bottom-left-corner {
		...
		content: attr(printcss-rendering-dateiname) '_' counter(seitenzaehler);
		...
	}
	@bottom-right-corner {
		...
		content: attr(printcss-rendering-datum) '_' attr(printcss-rendering-uhrzeit);
		...
	}
	...
}

Hinweis: Zur Sicherung einer durchgehenden Seitenzählung (notwendig, falls im Werk eine Zurücksetzung des globalen Seitenzählers "page-counter" erfolgt) wird ein separater Counter für die Seitenzählung benötigt (z.B. seitenzaehler, siehe CSS-Beispiel), der sich pro Seite um den Wert 1 erhöht.