- Nothing changed yet.
- 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.
- 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]
- Switch from
pyPdf
to the newer, maintainedPyPDF2
library.
- Report correct element during error reporting.
registerFontFamily
never worked until now, since the directive was not properly registered.
- Added
title
,subject
,author
, andcreator
attributes todocument
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.)
- Make the number of max rendering passes configurable by exposing the setting in the API.
- Added align attribute to
img
tag.
- Added a new console script "rml2pdf" that renders an RML file to PDF.
- Added
preserveAspectRatio
toimg
tag flowable. The attribute was already supported for theimage
tag.
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
andimageAndFlowables
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 fromDrawing
toImage
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
versuspagesize
attribute difference ontemplate
andpageTemplate
elements compared to RML2PDF. [Kyle MacFarlane]namedString
element now evaluates its contents so you can use things likepageNumber
inside of it. [Kyle MacFarlane]Implemented
evalString
using Python'seval()
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 thedrawString
andpara
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) ofinputFile1
. That meant that if you used anyincludePdfPages
ormergePage
directives you lost anyoutlineAdd
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
andbuildout.cfg
to work with the latest version ofzc.buildout
.Updated build to use latest version of lxml.
Implemented
saveState
andrestoreState
directives. (LP #666194)Implemented
storyPlace
directive. (LP #665941)Implemented
clip
attribute ofpath
directive. See RML example 041.Added
h4
,h5
, andh6
directives.Implemented
codesnippet
directive.Implemented
pageBreakBefore
,frameBreakBefore
,textTransform
, andendDots
attributes for paragraph styles.Added
maxLineLength
andnewLineChars
attributes to thepre
directive.Implemented
pageNumber
element for alldraw*String
elements.Implemented
NamedString
directive.Implemented
startIndex
andshowIndex
directive. Also hooked upindex
in paragraphs properly. You can now create real book indexes.Implemented
ol
,ul
, andli
directives, which allow highly flexible lists to be created. Also implemented a complimentarylistStyle
directive.Implemented the following doc-programming directives:
- docAssert
- docAssign
- docElse
- docIf
- docExec
- docPara
- docWhile
Added
encName
attribute toregisterCidFont
directive.Renamed
bookmark
tobookmarkPage
.Created a new canvas directive called
bookmark
.Added
img
directive, which is a simple image flowable.Implemented crop marks support fully.
Added
pageLayout
andpageMode
todocInit
directive.Implemented all logging related directives.
Implemented
color
directive inside theinitialize
directive.Renamed
pdfInclude
to documentedincludePdfPages
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 setTrue
will raise aValueError
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.
- 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.
- Using Python's
doctest
module instead of depreactedzope.testing.doctest
.
- 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.
- 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.
- Bug: Use python executable as a part of the subprocess command.
- Add support for RML's pageNumber element.
- Make sure that the output dir is included in the distribution.
- Upgraded to work with ReportLab 2.1 and lxml 1.3.6.
- Fix sub-process tests for a pure egg setup.
- Bug: When the specified page size (within the
pageInfo
element) was a word or set thereof, the processing would fail. Thanks to Chris Zelenak for reporting the bug and providing a patch.
Feature: Added a Chinese PDF sample file to
tests/expected
under the namesample-shipment-chinese.pdf
.Feature: Added another tag that is commonly needed in projects. The
<keepTogether>
tag will keep the child flowables in the same frame. When necessary, the frame break will be automatic. Patch by Yuan Hong.Feature: Added the "alignment" attribute to the
blockTable
directive. This attribute defines the horizontal alignment for a table that is not 100% in width of the containing flowable. Patch by Yuan Hong.Feature: When creating Chinese PDF documents, the normal TTF for Chinese printing is 'simsun'. However, when bold text is neeed, we switch to 'simhei'. To properly register this, we need the
reportlab.lib.fonts.addMapping
function. This is missing in the reportlab RML specification, so a new directive has been defined:<addMapping faceName="simsun" bold="1" italic="0" psName="simhei" />
Patch by Yuan Hong.
Feature: The
para
andparaStyle
directive now support the "wordWrap" attribute, which allows for selecting a different wrod wrapping algorithm. This is needed because some far-East Asian languages do not use white space to separate words. Patch by Yuan Hong.Bug: Handle Windows drive letters correctly. Report and fix by Yuan Hong.
- Bug: Fixed setup.py to include all dependencies.
- Bug: Added test to show that a blocktable style can be applied multiple times. A user reported that this is not working, but I could not replicate the problem.
- Update: Updated the expected renderings to ReportLab 2.1. There were some good layout fixes that broke the image comparison.
- Initial Release