Das [PDF Renderkit] ist eine unabhängige Erweiterung für [JSF], mit dem nahezu beliebige Web-Seiten als PDF gerendert werden können. Das [PDF Renderkit] basiert dabei auf [Flying Saucer PDF|https://code.google.com/p/flying-saucer/] und integriert diesen vollständig in den [JSF] Lifecycle.
!!!Maven
Das Artifact kann in der pom.xml eingebunden werden mit:
{{{
<dependency>
<groupId>com.intersult</groupId>
<artifactId>pdf-renderkit</artifactId>
<version>1.0</version>
</dependency>
}}}
!!!Anwendung
Die einfachste Möglichkeit eine XHTML-Seite mit dem [PDF Renderkit] auszugeben, ist einer JSF-URL das Renderkit hinzuzufügen:
{{{
http://localhost/test/faces/text.xhtml?javax.faces.RenderKitId=PDF
}}}
Möchte man einen derartigen Link erzeugen, kann man die Unterstützung von [JSF] verwenden. Hier zum Beispiel ein generischer PDF-Button (Request-URI):
{{{
<h:outputLink id="print" value="#{request.requestURI}">
<f:param name="javax.faces.RenderKitId" value="PDF"/>
<h:outputText value="PDF"/>
</h:outputLink>
}}}
!!!Stylesheets und Images
Da die PDF-Erzeugung die Stylesheets der Seite braucht, ist der Zugriff darauf sicherzustellen. Normaler Weise werden Stylesheets über den Request-URL gezogen, also relativ zur angefragten Seite. Aus Gründen wie Verschlüsselung, Session-Id, Sicherheit, Load-Balancer oder Reverse-Proxy kann es erforderlich sein, eine andere URL zu verwenden.
Dazu kann der GET-Parameter "print.pdf.baseURL" angegeben werden:
{{{
<h:outputLink id="print" value="#{request.requestURI}">
<f:param name="javax.faces.RenderKitId" value="PDF"/>
<f:param name="print.pdf.baseURL" value="http://localhost/test/"/>
<h:outputText value="PDF"/>
</h:outputLink>
}}}