text: z3c.rml 2.5
  2.5.0 (2013-12-10)
  - Reimplamented includePdfPages directive to use the new PyPDF2 merger component that supports simple appending of pages. Also optimized page creation and minimized file loading. All of this resulted in a 95% speedup.
  2.4.1 (2013-12-10)
  - Fixed a bug when rendering a table with the same style twice. Unfortuantely, Reportlab modifies a style during usage, so that a copy mustbe created for each use. [Marcin Nowak]
  2.4.0 (2013-12-05)
  - Switch from pyPdf to the newer, maintained PyPDF2 library.
  2.3.1 (2013-12-03)
  - Report correct element during error reporting.
  - registerFontFamily never worked until now, since the directive was not properly registered.
  2.3.0 (2013-09-03)
  - Added title, subject, author, and creator attributes to document element. Those are set as PDF annotations, which are now commonly used to hint viewers window titles, etc. (Those fields are not available in RML2PDF.)
  2.2.1 (2013-08-06)
  - Make the number of max rendering passes configurable by exposing the setting in the API.
  - Added align attribute to img tag.
  2.2.0 (2013-07-08)
  - Added a new console script “rml2pdf” that renders an RML file to PDF.
  - Added preserveAspectRatio to img tag flowable. The attribute was already supported for the image tag.
  2.1.0 (2013-03-07)
  Implemented all PDF viewer preferences. [Kyle MacFarlane]
  - HideToolbar
  - HideMenubar
  - HideWindowUI
  - FitWindow
  - CenterWindow
  - DisplayDocTitle
  - NonFullScreenPageMode
  - Direction
  - ViewArea
  - ViewClip
  - PrintArea
  - PrintClip
  - PrintScaling
  They are all available via the docinit tag.
  Added SVG support to the image and imageAndFlowables tags. [Kyle MacFarlane]
  Approach: Convert the drawing to a PIL Image instance and pass that around just like a regular image. The big problem is that in the conversion from Drawing to Image stroke width can often get messed up and become too thick. I think this is maybe down to how scaling is done but you can avoid it by editing the SVGs you want to insert. You also lose any transparency and get a white background. Basically you no longer really have a vector graphic but instead a 300 DPI bitmap that is automatically scaled to the correct size with little quality loss.
  Added ability to look for font files in packages using the standard “[package.path]/dir/filename” notation. [Kyle MacFarlane]
  Documented the pageSize versus pagesize attribute difference on template and pageTemplate elements compared to RML2PDF. [Kyle MacFarlane]
  namedString element now evaluates its contents so you can use things like pageNumber inside of it. [Kyle MacFarlane]
  Implemented evalString using Python’s eval() with builtins disabled. [Kyle MacFarlane]
  getName element now checks if it has a default attribute. This is used as a width measurement for a first pass or as the actual value if the reference isn’t resolved after the second pass. [Kyle MacFarlane]
  getName element now supports forward references. This means you can now do things like “Page X of Y”. This only works in the drawString and para elements. [Kyle MacFarlane]
  General performance improvements. [Kyle MacFarlane]
  Improved performance by not applying a copy of the default style to every table cell and also by not even trying to initialise the attributes if lxml says they don’t exist. [Kyle MacFarlane]
  MergePostProcessor class did not copy document info and table of contents (aka Outlines) of inputFile1. That meant that if you used any includePdfPages or mergePage directives you lost any outlineAdd directive effect. [Alex Garel]
  Fixed any failing tests, including the ones failing on Windows. [Kyle MacFarlane]
  Fixed the table borders not printing or even appearing in some viewers. [Kyle MacFarlane]
  Updated bootstrap.py and buildout.cfg to work with the latest version of zc.buildout.
  Updated build to use latest version of lxml.
  2.0.0 (2012-12-21)
  Implemented saveState and restoreState directives. (LP #666194)
  Implemented storyPlace directive. (LP #665941)
  Implemented clip attribute of path directive. See RML example 041.
  Added h4, h5, and h6 directives.
  Implemented codesnippet directive.
  Implemented pageBreakBefore, frameBreakBefore, textTransform, and endDots attributes for paragraph styles.
  Added maxLineLength and newLineChars attributes to the pre directive.
  Implemented pageNumber element for all draw*String elements.
  Implemented NamedString directive.
  Implemented startIndex and showIndex directive. Also hooked up index in paragraphs properly. You can now create real book indexes.
  Implemented ol, ul, and li directives, which allow highly flexible lists to be created. Also implemented a complimentary listStyle directive.
  Implemented the following doc-programming directives:
  - docAssert
  - docAssign
  - docElse
  - docIf
  - docExec
  - docPara
  - docWhile
  Added encName attribute to registerCidFont directive.
  Renamed bookmark to bookmarkPage.
  Created a new canvas directive called bookmark.
  Added img directive, which is a simple image flowable.
  Implemented crop marks support fully.
  Added pageLayout and pageMode to docInit directive.
  Implemented all logging related directives.
  Implemented color directive inside the initialize directive.
  Renamed pdfInclude to documented includePdfPages and added pages attribute, so that you can only include specific pages.
  Don’t show “doc” namespace in reference snippets.
  Create a list of RML2PDF and z3c.rml differences.
  Implemented the ABORT_ON_INVALID_DIRECTIVE flag, that when set True will raise a ValueError error on the first occurence of a bad tag.
  Implemented setFontSize directive for page drawings.
  Implemented plugInGraphic which allows inserting graphics rendered in Python.
  Added href and destination to table cells and rectangles.
  Bug: Due to a logic error, bad directives were never properly detected and logged about.
  Bug: Overwriting the default paragraph styles did not work properly.
  Bug: Specifying a color in any tag inside the paragraph would fail, if the color was a referenced name.
  Bug: Moved premature getName evaluation into runtime to properly handle synamic content now. This is now properly done for any paragraph and draw string variant.
  Bug: Fixed DTD generator to properly ignore Text Nodes as attributes. Also text nodes were not properly documented as element PCDATA.
  1.1.0 (2012-12-18)
  - Upgrade to ReportLab 2.6. This required some font changes and several generated PDFs did not match, since some default fonts changed to sans-serif.
  - Added pdfInclude directive from Alex Garel. (LP #969399).
  - Switched to Pillow (from PIL).
  - Switched RML highlighting in RML Reference from SilverCity to Pygments.
  - Bug: Addressed a bug in ReportLab 2.6 that disallowed 3-D pie charts from rendering.
  - Bug: Properly reset pdfform before rendering a document.
  - Bug: Reset fonts properly before a rendering.
  1.0.0 (2012-04-02)
  - Using Python’s doctest module instead of depreacted zope.testing.doctest.
  0.9.1 (2010-07-22)
  - I found a more complete paragraph border patch from Yuan Hong. Now the DTD is updated, the border supports a border radius and the tag-para.rml sample has been updated.
  0.9.0 (2010-07-22)
  - Upgraded to ReportLab 2.4. This required some font changes and several generated PDFs did not match, since some default fonts changed.
  - Upgraded to latest lxml. This only required a trivial change. Patch by Felix Schwarz.
  - Implemented linePlot3D directive. Patch by Faisal Puthuparackat.
  - Added paragraph border support. Patch by Yuan Hong.
  - Bug: Fixed version number in reference.pt. Patch by Felix Schwarz.
  - Bug: Write PDF documents in binary mode. Patch by Felix Schwarz. ‘simsun’. However, when bold text is neeed, we switch to ‘sim
  - Downloads (All Versions):
  - 115 downloads in the last day
  - 477 downloads in the last week
  - 516 downloads in the last month
  - Author: Stephan Richter and the Zope Community
  - Keywords: zope3 rml reportlab pdf pagetemplate
  - License: ZPL 2.1
  - Categories
  - Development Status :: 5 - Production/Stable
  - Intended Audience :: Developers
  - License :: OSI Approved :: Zope Public License
  - Natural Language :: English
  - Operating System :: OS Independent
  - Programming Language :: Python
  - Programming Language :: Python :: 2
  - Programming Language :: Python :: 2.6
  - Programming Language :: Python :: 2.7
  - Programming Language :: Python :: Implementation :: CPython
  -, gary, roymath, tlotze, agroszer, menesis, davisagli, justas
  - DOAP record: z3c.rml-2.5.0.xml