RELEASE 3.4:
* More pagesizes from https://en.wikipedia.org/wiki/Paper_size (contributed by https://bitbucket.org/alainchiasson/)
* add in fillMode (fill-rule) variable to the graphics state for drawings
* add support for automatic bullet rotation in ListFlowables.
* fix acroform annotation bug in radios (reported by Olivia Zhang)
* fix split paragraph rendering bug (reported by Olivia Zhang & Echo Bell)
* Allow Image to have a drawing as argument
* support for Path autoclose & fillMode; version --> 3.3.29
* add support for different fill policies in renderXX drawPath; version-->3.3.28
* allow for UTF_16_LE BOM, fix for bug contributed by Michael Poindexter mpoindexter@housecanary.com
* improved support for images in renderPM/renderSVG bug report from Claude Paroz
* add AcroForm support to canvas; version --> 3.3.22
* avoid cr lf line endings
* attempt to ensure zipImported has some files or returns None
* added additonal test to barcode/test.py
* add an invisible font test thanks https://bitbucket.org/kb/ Konstantin Baierer
* add mailto href test
* improve UPCA barcode contribution by Kyle McFarlane https://bitbucket.org/kylemacfarlane/
* attempt to fix __loader__ issues in pyinstaller suggested by dbrnz @ bitbucket
* fix NormalDate comprisons in python3.x
* fix ypad use in ParagraphAndImage contrib annamarianfr@bitbucket, version-->3.3.16
* try to prevent multiple saving contrib by Tim Meneely
* fix problems with svg drawToString contrib by Eric Gillet & Johann Du Toit
* fix issue reported by Yitzchak Scott-Thoennes <sthoenna@gmail.com>
* fix fake KeepTogether setup in handle_keepWithNext
* add NullActionFlowable, fix empty KeepTogether
* really merge para-measure-fix
* merge para-measure-fix changes
* fixes to TypedPropertyCollection
* changes to Render class; allow drawings to specify initialFontName/Size
* fix python>=3.2 default axis labelling to match python2.x
* fix AttributeError
* add experimental time value axis
* fix bug in python shapes rendering
* add negative span style to test_platypus_tables splitting example
* fix segfault in _rl_accel.c
* attempt to remove quadratic performance hit when longTableOptimize is set
* allow DATA: scheme in open for read
* import Table _rowpositions calculation
* support small ttfs which do not allow subsets
* add rl_settings allowTTFSubsetting
* address issue 76 (deprecated immports)
* add table cell support for simple background shadings, contributed by Jeffrey Creem jcreem@bitbucket
* fix bug in tables.py reported by Vytis Banaitis @ bitbucket; version-->3.3.2
* minor change to allow barWidth setting in ecc200datamatrix.py (suggested by Kyle MacFarlane @ bitbucket)
* make paraparser syntax errors real and fix <sup/sub> tags to have relative values; version-->3.3.1
* ReportLab now runs all tests under Python 2.7, 3.3, 3.4, 3.5 & 3.6.
Prefer py-Pillow over py-imaging (if not installed) permitting better
performance, successful test results and at the same time remove the
python-3 incompatibility.
CHANGES
=======
This is a summary of changes made to the reportlab source code for each release.
Please refer to subversion backlogs (using the release dates) for more details
or for releases which we have not provide a higher level changes list for.
E.g. to retrieve the changes made between release 3.1 and release 3.2, type::
$ hg log -r adb3f0d
The contributors lists are in no order and apologies to those accidentally not
mentioned. If we missed you, please let us know!
RELEASE 3.3 17/02/2016
-----------------------
* Canvas & Doctemplate now allow specification of the initial font Name, Size & Leading. Prevously you had to mess with rl_settings to accomplish this.
* Canvas & Doctemplate now support specification of the crop/art/trim/bleed boxes.
* Add option to auto generate missing TTF font names. Handy for CJKers with home produced fonts. Also attempt to prevent usage of multiple TTFs with same name.
* Paragraph styles now have justifyBreaks to control justification of lines broken with <br/>.
* Paragraph styles now have justifyLastLine=n to control justification of last lines with more than n words (0 means do not).
* Added EAN-5 and ISBN barcode widgets (contribution by Edward Greve).
* Bug fix of QrCodeWidget (prompted by https://bitbucket.org/fubu/).
* Frames now have support for automatic flowables at the top of frame. story support via the class reportlab.platypus.flowables.SetTopFlowables.
* Added support for Trapped and ModDate PDF info dictionary keys.
* Bug fix for pie charts with no data (raised by Michael Spector).
* New barcodes BarcodeCode128Auto & BarcodeECC200DataMatrix (contributed by Kyle MacFarlane).
* Improved LinePlot marker handling.
* PyPy improvements inspired by Marius Gedminas.
* Bug fix in reportlab.lib.utils.simpleSplit (reported by Chris Buergi <cb@enerweb.ch>).
* Unwanted escaping in renderSVG fixed (reported by Ruby Yocum).
* Bug fix in _rl_accel.c (remove excess state and fix refcount breakage reported by Mark De Wit <mark.dewit@iesve.com>).
* Code128 barcode length optimization inspired by Klaas Feenstra.
* Paragraph <sup>/<super> & <sub> tags now support rise & size attributes to allow special control over position & font size.
* Splitting tables now remove unwanted styles in the first part of the split (reported by Lele Gaifax).
* test changes inspired by https://bitbucket.org/stoneleaf
* ReportLab now runs all tests under Python 2.7, 3.3, 3.4 & 3.5.
### Contributors:
* Edward Greve
* https://bitbucket.org/fubu/
* Michael Spector
* Kyle MacFarlane
* Marius Gedminas
* Chris Buergi
* Ruby Yocum
* Mark de Wit
* Klaas Feenstra
* Lele Gaifax
* https://bitbucket.org/stoneleaf
RELEASE 3.2 01/06/2015
-----------------------
* Added proportional underlining specific to font sizes, set via the `underlineProportion` attribute of ParagraphStyles.
* TrueType fonts: added support for cmaps 10 & 13
* DocTemplate class now supports a boolean `displayDocTitle` argument.
* TableofContents now supports a formatter argument to allow formatting of the displayed page numbers (eg for appendices etc).
* Table `repeatRows` can now be a tuple of row numbers to allow incomplete ranges of rows to be repeated.
* Tables now do pass instance.`spaceBefore` & `spaceAfter` to their split children when split
* Several strangenesses were fixed in the pdfbase.pdfform module; Multiple usage is now allowed.
* Error message fixes
* Various environment fixes for Google Application Environment
* Resource fixes
* PDFDoc can now set the `Lang` attribute
* canvas.drawString and similar now allow the character spacing to be set
* Index of accented stuff has been improved
* RTL code was improved
* fix Propertyset.clone
* `flowables.py`: fix ImageAndFlowables so it avoids testing negative availableWidth
### Contributors:
* Steven Jacobs
* Philip Semanchuk
* Marius Gedminas
* masklinn
* Kale Franz
* Albertas Agejavas
• Anders Hammarquist
* jvanzuela @ bitbucket
* Glen Lindermann
* Greg Jones
* James Bynd
* fcoelho @ bitbucket
RELEASE 3.1 22/04/2014
-----------------------
If you are running ReportLab 3.0.x, the changes are minor.
* support for emoji - characters outside the Unicode basic multilingual plane
* improved pip-based installers will pull in all the needed dependencies; Pillow 2.4 appears to deal with all our issues.
### Contributors
* Ivan Tchomgue
* Waldemar Osuch
* masayuku
* alexandrel_sgi
RELEASE 3.0 14/02/2014
-----------------------
ReportLab 3.0 now supports Python 2.7, 3.3 and higher.
There has been a substantial internal rewrite to ensure consistent use of unicode strings for
natural-language text, and of bytes for all file format internals. The intent
is to make as few API changes as possible so that there should be little or no
impact on users and their applications. Changes are too numerous but can be
seen on Bitbucket.
### Python 3.x compatibility
* Python 3.x compatibility. A single line of code should run on 2.7 and 3.3
* __init__.py restricts to 2.7 or >=3.3
* __init__.py allow the import of on optional reportlab.local_rl_mods to allow monkey patching etc.
* rl_config now imports rl_settings & optionally local_rl_settings
* ReportLab C extensions now live inside reportlab; _rl_accel is no longer required; All _rl_accel imports now
pass through reportlab.lib.rl_accel
* xmllib is gone, alongside the paraparser stuff that caused issues in favour of HTMLParser.
* some obsolete C extensions (sgmlop and pyHnj) are gone
* Improved support for multi-threaded systems to the _rl_accel extension module.
* Removed reportlab/lib/ para.py & pycanvas.py; these would better belong in third party packages,
which can make use of the monkeypatching feature above.
### New features
* Add ability to output greyscale and 1-bit PIL images without conversion to RGB. (contributed by Matthew Duggan)
* highlight annotation (contributed by Ben Echols)
### Other
* numerous very minor fixes, visible through BitBucket.
Problems found locating distfiles:
Package acroread7: missing distfile AdobeReader_enu-7.0.9-1.i386.tar.gz
Package acroread8: missing distfile AdobeReader_enu-8.1.7-1.sparc.tar.gz
Package cups-filters: missing distfile cups-filters-1.1.0.tar.xz
Package dvidvi: missing distfile dvidvi-1.0.tar.gz
Package lgrind: missing distfile lgrind.tar.bz2
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
either because they themselves are not ready or because a
dependency isn't. This is annotated by
PYTHON_VERSIONS_INCOMPATIBLE= 33 # not yet ported as of x.y.z
or
PYTHON_VERSIONS_INCOMPATIBLE= 33 # py-foo, py-bar
respectively, please use the same style for other packages,
and check during updates.
Use versioned_dependencies.mk where applicable.
Use REPLACE_PYTHON instead of handcoded alternatives, where applicable.
Reorder Makefile sections into standard order, where applicable.
Remove PYTHON_VERSIONS_INCLUDE_3X lines since that will be default
with the next commit.
Whitespace cleanups and other nits corrected, where necessary.
2.7:
This release, 2.7, will be the last major one to support Python
2.5, 2.6, and 2.7. It contains a small number of fixes and additions
since our last release in September 2012. You may think of it as
a 'long term stable' branch - if key bugs emerge we will issue
2.7.1, 2.7.2 releases and so on.
Charts / graphics
Added SimpleTimeSeriesPlot
added _computeMaxSpace
added in lineStyle (for bars)
improved SVG rendering
Pie Chart now has an 'innerRadiusFraction' to allow doughnut-like
appearance for 2d charts (it has no effect with 3d charts).
The separate 'doughnut' chart lacks many pie chart features
and should only be used if you wanted multiple nested doughnuts.
Bug fixes:
piecharts.py: fix Pie3d __init__ to call its superclass
linecharts.py: fix swatch creation
fixed y axis in the simple time series plot
PDF
Fixes to testshapes & pdfform resetting
colors.py
various minor fixes
Platypus
Defined a small bullet rather than a big circle as the default
for unordered lists
fixed attribute spelling bug
fixed CJK + endDots
#################################################################################
#################### RELEASE 2.6 27/09/2012 #################
#################################################################################
This is a minor release focusing mainly on improved documentation. There are a
number of minor enhancements, and a larger number of previous-undocumented
enhancements which we have documented better.
###General changes
* Manuals have been reformatted with more pleasing code snippets and tables of
contents, and reviewed and expanded
###Flowing documents (Platypus):
* Added support for HTML-style list objects
* Added flexible mechanism for drawing bullets
* Allowed XPreformatted objects to use Asian line wrapping
* Added an 'autoNextPageTemplate' attribute to PageTemplates. For example you
can now set up a 'chapter first page template' which will always be followed
by a 'continuation template' on the next page break, saving the programmer from
having to issue control flow commands in the story.
* added a TopPadder flowable, which will 'wrap' another Flowable and move it
to the bottom of the current page.
* More helpful error messages when large tables cannot be rendered
* Documentation for images within text (test_032_images)
* Trailing dots for use on contents pages
###Charts and graphics:
* Support for UPCA bar codes
* We now have a semi-intelligent system for labelling pie charts with
callout lines. Thanks to James Martin-Collar, a maths student at Warwick
University, who did this as his summer internship.
* Axes - added startOffset and endOffset properties; allowed for axis
background annotations.
* Bar charts - allow more control of z Index (i.e. drawing order of axes and
lines)
* Pie charts - fixed bugs in 3d appearance
* SVG output back end has seen some bugs fixed and now outputs resizeable SVG
to address issues with NetBSD-6(and earlier)'s fontconfig not being
new enough for pango.
While doing that, also bump freetype2 dependency to current pkgsrc
version.
Suggested by tron in PR 47882
* No need to buildlink with obsolated py-xml, add py-expat to DEPENDS instead.
* add test target for self-tests.
* distutils pkg, switch to use python/distutils.mk
Bump PKGREVISION.
* Support for colour separated PDF output and other optimisations and
features for high-quality printing, including enforcement of colour
models for CMYK, RGB, and "spot colours"
* Long table optimisations are now turned on by default. Previously,
documents with very long tables spanning many pages could take a long
time to create because we considered the whole table to work out row
and column sizes. A patch was submitted some time ago to fix this
controlled by a flag in the rl_config file, but this was set 'off'
for compatibility. Users are often not aware of this and we haven't
found any real-world cases where the new layout technique works badly,
so we are turning this behaviour on.
* New support for QR barcodes.
on some platforms that lacked shared library support in the past. The
list hasn't been maintained at all and the gain is very limited, so just
get rid of it.
Major changes include full Unicode supoprt, better support for Asian
languages, support for JPEG CMYK images, links in Platypus, better
wrapping, barcode support, better support for legends of graphics and
many more.
Addtional changes in pkgsrc include the merge of py-reportlab-renderPM
package and use of external libart.
and add a new helper target and script, "show-buildlink3", that outputs
a listing of the buildlink3.mk files included as well as the depth at
which they are included.
For example, "make show-buildlink3" in fonts/Xft2 displays:
zlib
fontconfig
iconv
zlib
freetype2
expat
freetype2
Xrender
renderproto
RECOMMENDED is removed. It becomes ABI_DEPENDS.
BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.
BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.
BUILDLINK_DEPENDS does not change.
IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".
Added to obsolete.mk checking for IGNORE_RECOMMENDED.
I did not manually go through and fix any aesthetic tab/spacing issues.
I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.
I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.
As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.
As discussed on tech-pkg.
I will commit to revbump, pkglint, pkg_install, createbuildlink separately.
Note that if you use wip, it will fail! I will commit to pkgsrc-wip
later (within day).