CMFReportTool "Copyright (C) 2002, net-labs Systemhaus GmbH":COPYRIGHT.html. CMFReportTool is an Extension to Zope/CMF and Plone. Similar to HTML-Skins one can use 'PML' to describe Dynamic Content as PDF-Document using the advanced layout-capabilities of reportlab's Platypus module. The MarkupLanguage is inspired by pythonpoint (example from reportlab) but is provides all features of the Platypus module. The Product supplies a tool: 'portal_report' and several skins as well as an Installation routine. The 'portal_report' Tool renders 'PML' Documents to pdf and converts StructuredText-Documents to 'PML'. the provided skins are mostly examples of views for CMF Standard Types. The Rendering-Process uses a script with traversal to determine the PDF-Templatename and the PDF-Documentname. The templatename is looked up in the context of 'portal_report', which is folderish and usually holds the portals templates. the documentname is looked up in the context of the object (here) and the 'portal_skins' Tool will provide the right objects. 'PML' Documents are (Alt)PageTemplates that are parsed/interpreted and result in a valid (hopefully valid - the parser is not perfect yet) 'PML' Document that is rendered using reportlab. the 'portal_report' Tool returns a buffer that needs to be return to the client (setting the header to 'application/pdf' is required - look at the example-skins) External Resources (Images) can be located in ZODB or Filesystem. A filename-Attribute knows two url-schemes: file://<path-to-image> and zodb://<path-to-image-object>. The Markup-Language ('PML' - PageMarkupLanguage) defines: - Templates: Templates define static elements, stylesheets as well as Frames. It works like Quark-XPress or FrameMaker. Predefined and linked Frames are filled with Flowables from the Document (think like slots in PageTemplates, but content is concated and nicely distributed across the frames. - Documents: Documents define dynamic Content, Images, Vectorgraphics as well as Metadata. This part is usually generated when the client requests a view as PDF and it is filled in (using PageTemplates) with the objects/lists values and rendered. - Styles: Paragraph- and Table-Styles can be preconfigured within the Template-Header. - Static-Elements: FixedImage,InfoString,Line,Rectangle,.. all these Static-Element-Types are usable within the Templates Pagedefinition to setup static content. - Frames: Frames hold Flowables (Dynamic-Elements). They are linked via Names to enable things like: different Startpage, left/right-page of books, etc. - Flowables: Dynamic-Elements are called Flowables. They are aranged within the predefined order in Frames. Available Types are: Paragraph, Preformatted, Table, Image, Line, Rectangle, ...