Sie sind hier:   » ZMS home » Dokumentation » Details » How-To » Drucken » Kapiteldruck

Kapiteldruck

Autor: F. Hoffmann, 24.07.2003

Hinweis: dieses Dokument ist obsolet und beschreibt einen Ansatz, der vor der Einführung von ZMS-Filtern relevant gewesen ist.

Neben der normalen Druckversion von Einzelseiten mit der üblichen Funktion:
<a href="index_print_ger.html" target="_blank"><dtml-var "getLangStr('ATTR_PRINTVERSION',lang)"></a>
ist es möglich, längere Druckwerke zu erzeugen. Über eine Abfrage nach 'attr_dc_type'='Chapter' wird im bodyContent_Copyright-Template eine optionale Kapiteldruck-Option eingeblendet. Der Kapiteldruck erzeugt durch rekursive Assemblierung einen Contentstrom, der als PDF-Datei ausgegeben wird. Dafür kommt über einen vergleichbaren Aufruf <a href="index_print.pdf?lang=<dtml-var lang>" target="_blank"><dtml-var "getLangStr('PRINTCHAPTER',lang)"></a> folgende DTML-Methode zum Einsatz:

<!-- BO index_print.pdf -->
<dtml-call "REQUEST.set('l',[])">
<dtml-call "l.append('<html>\n')">
<dtml-call "l.append('<body>\n')">
<dtml-call "REQUEST.set('obs',[getSelf()])">
<dtml-call "obs.extend(getTreeNodes(REQUEST))">
<dtml-let level="obs[0].getLevel()">
<dtml-in obs>
 <dtml-if "isPage()">
  <dtml-call "l.append('<h%i>'%(getLevel()-level+1)+ 
   getTitle(REQUEST)+'</h%i>'%(getLevel()-level+1)+'\n')">
 <dtml-elif "isPageElement()">
  <dtml-call "l.append(getBodyContent(REQUEST)+'\n')">
 </dtml-if>
</dtml-in>
</dtml-let>
<dtml-call "l.append('</body>\n')">
<dtml-call "l.append('</html>\n')">
<dtml-call "RESPONSE.setHeader('Content-Type',
 'application/pdf')">
<dtml-return "html2pdf(''.join(l))">
<!-- EO index_print.pdf -->