|
|
|
Release Notes
This page details what's new in the latest release. Our commercial software
has generally been installed by us or our partners for customers and you need to contact us to request evaluations.
Release policies
We generally release every 2-3 months. There has been a longer-than-usual gap since 1.19 in January 2004 due to restructuring within ReportLab, moves to a completely new version control system, and a growing number of projects, but we aim to return to this schedule henceforth.
We believe in Agile Development and our code base is almost always in a releasable state; test suites are run every night, and daily builds made available. The numbered releases are largely a convenience, and commercial customers can obtain stable interim builds at other times to suit project requirements.
The 1.XX releases aim for backward compatibility.
We are working on a 'version 2.0' which will break compatibility - various little-used features will be removed, and character handling will be strictly Unicode-based. No precise date is set but this is likely to be 3 months hence - whenever you read this :-)
We do concurrent releases of our open source (reportlab) and commercial (rlextra) packages with the same numbers. Thus, "Release 1.20.0" refers to both, and they are designed to go together. The available installation packages are explained here.
Release 1.20 - 17th November 2004
What's new in 1.20
- The entire framework can now be run out of a Python 2.3 zip archive
(the equivalent of Java JAR deployment). All file-opening operations
such as reading DTDs, PDFs, fonts and other resources can be loaded
out of zip archives. This makes it possible to deploy document-generating apps as atomic units.
- An invariant mode has been added to generate PDF files
without any timestamp information. This means that the same input
should produce the same output, which in turn facilitates regression
testing.
- An RML GUI converter is available on the start menu within the Jumbo distribution. This allows drag-and-drop RML-to-PDF conversion
in a manner like Acrobat Distiller. This is a useful demonstrator for those
who don't like DOS prompts.
- The Diagra chart editor is also on the start menu within the Jumbo distribution; anyone using other distributions can start it by executing rlextra/graphics/guiedit/guiedit.pyc
- Many new RML features including
- Easier use of PageCatcher forms - you can now use <catchForms pdfFile="aaa.pdf" pfx="PF" pages="all"/>
as well as the older use of <catchForms storageFile="storage.data"/> and avoid the need to create the intermediate .data files.
- Frames have a new attribute overlapAttachedSpace (0 or 1). This will intelligently combine the spaceBefore and spaceAfter of adjacent elements and take the greater, if set. Thus, a paragraph with 6 points of space after and a heading with 24 points of space before will end up separated by 24 points of space rather than 30.
- tables have spaceBefore and spaceAfter attributes, so you don't have to insert spacers around them.
- lines in tables now allow multiples through the 'count' and 'space' properties of the lineStyle element. This will do a double line under the bottom row of a table:
<lineStyle kind="LINEBELOW" colorName="purple" start="0,-1" stop="-1,-1" count="2"/>
- Per-cell styling: you can now use attributes fontName, fontSize, fontColor, leading, leftPadding, rightPadding, topPadding, bottomPadding, background, align and vAlign directly on individual table cells.
- cycling through colours: you can specify alternating sequences of colours for table rows or columns (e.g. green-white-green-white). See rml2pdf/test_008_tables.[rml|pdf] for examples.
- Bulk Data: you can submit delimited data for use within tables, instead of having to write out every cell in tr/td elements. This is very useful when reading in data from a database connection or file, and is faster to parse, provided that you only want strings and not paragraphs in each cell. Attributes let you specify the row and field delimiters and whether to strip whitespace off lines or the whole block. Example:
<blockTable style="numeric">
<bulkData><![CDATA[
Product,Profit
Sprockets,26
Widgets,34
Thingummies,217
Bits & Bobs,23
Total,277
]]></bulkData>
</blockTable>
- An HTML-style 'horizontal rule' element has been added. This has the usual attributes of
line objects (lineCap, width, thickness, align, color, spaceBefore, spaceAfter
- Proportional frame sizes: You can specify frame positions as a percentage of page size.
This makes it MUCH easier to flip between A4 and Letter page sizes and generally to produce
reusable templates.
<template pageSize="A4" showBoundary="1">
<pageTemplate id="pt1" pageSize="LETTER">
<frame id="first" x1="5%" y1="55%" width="40%" height="40%"/>
<frame id="second" x1="50%" y1="50%" width="50%" height="50%"/>
<frame id="third" x1="0" y1="0" width="50%" height="50%"/>
<frame id="fourth" x1="50%" y1="0" width="50%" height="50%"/>
</pageTemplate>
</template>
- An indent tag allows you to set a relative indent on left,
right or both sides across a span of the story. This makes
nested lists and indented subsections easy.
- A "please turn over" feature (tag "pto") feature lets you specify content to be included at the end of a frame or a beginning when
an object is continued. This will typicallly be used with complex nested
tables which need special continuation headers and footers. See test_025_pto.rml.
- PageCatcher additions:
- Fixes for some obscure generation bugs where certain binary strings were incorrectly parsed
- a figure object has been added to make it easier to include
page miniatures in RML documents, with shrink-to-fit and a caption. See test_021_figures.rml. (Expect this to become a tag in future)
- EPRS additions: our framework for report serving is used by ReportLab and trained resellers to deploy specific document-generation applications. We do not document and support the API at this time to allow us freedom to change this. Nevertheless the code is contained within the rlextra package. There have been numerous additions and refinements in areas such as error handling, logging and zip file deployment.
Future Release Plans
It's likely we will produce a 1.21 in fairly short order, in order to solidify our new release processes.
The bulk of our efforts are now going into a Version 2.0, which will allow us to break old code in minor ways. The prime goal of this will be to change to using Unicode characters throughout internally, and thus be able to use strict UTF8 in input (or Latin-1, if specified). Version 2.0 will also allow us to retire various old tags, features and APIs which are no longer needed, and to produce a documented API. The 2.0 cycle will involve alpha and beta releases. We hope (but do not promise) to get this out in Q1 2005.
Further ahead, we have clear plans for a radical Version 3.0 which would provide even more flexibility and speed and a new layout engine.
|
|
|