Use z3c.rml to add a PDF view in Plone:

First you add the z3c.rml package to the eggs section in your buildout.cfg:

# Add additional eggs here  
# elementtree is required by Plone  
eggs =  

Next you write a new view class for the PDF view. A nifty way is to subclass the view class already in use for the (standard html) view

from import ViewPageTemplateFile  
from z3c.rml.rml2pdf import parseString  

class NiceViewPDF(NiceView):  
    def __call__(self):  
        self.request.response.setHeader('content-type', 'application/pdf')  
        rml_doc = ViewPageTemplateFile('templates/')(self)  
        return parseString(rml_doc.encode('utf-8')).read()  

The last thing you need is a '' template file.

<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE document SYSTEM "">  
<document filename="template.pdf"  

    <template pageSize="A4" author="" title="Title">  
        <pageTemplate id="main">  
           <frame id="first" x1="72" y1="70" width="451" height="600"/>  


        <h1 tal:content="python: context.Title()">Title</h1>  



(example from:

"RML Reference": reference.pdf?view=auto