author | robin <robin@reportlab.com> |
Tue, 07 Mar 2017 10:00:34 +0000 | |
changeset 4330 | 617ffa6bbdc8 |
parent 4252 | fe660f227cac |
child 4336 | d39c63b164bc |
permissions | -rw-r--r-- |
4330 | 1 |
#Copyright ReportLab Europe Ltd. 2000-2017 |
2963 | 2 |
#see license.txt for license details |
3287 | 3 |
__version__ = '$Id$' |
2966 | 4 |
from tools.docco.rl_doc_utils import * |
3047 | 5 |
from reportlab.platypus.tableofcontents import TableOfContents |
3082 | 6 |
from datetime import datetime |
2963 | 7 |
import reportlab |
4218 | 8 |
from reportlab.rl_config import invariant |
2963 | 9 |
|
10 |
title("ReportLab PDF Library") |
|
11 |
title("User Guide") |
|
12 |
centred('ReportLab Version ' + reportlab.Version) |
|
4218 | 13 |
centred((datetime(2000,1,1,0,0,0) if invariant else datetime.now()).strftime('Document generated on %Y/%m/%d %H:%M:%S %Z')) |
2963 | 14 |
|
3047 | 15 |
nextTemplate("TOC") |
16 |
||
3059
3a6ff201e927
Added documentation for the table of contents to the userguide.
jonas
parents:
3047
diff
changeset
|
17 |
headingTOC() |
3047 | 18 |
|
3059
3a6ff201e927
Added documentation for the table of contents to the userguide.
jonas
parents:
3047
diff
changeset
|
19 |
toc = TableOfContents() |
3047 | 20 |
PS = ParagraphStyle |
3059
3a6ff201e927
Added documentation for the table of contents to the userguide.
jonas
parents:
3047
diff
changeset
|
21 |
toc.levelStyles = [ |
3047 | 22 |
PS(fontName='Times-Bold', fontSize=14, name='TOCHeading1', leftIndent=20, firstLineIndent=-20, spaceBefore=5, leading=16), |
23 |
PS(fontSize=12, name='TOCHeading2', leftIndent=40, firstLineIndent=-20, spaceBefore=0, leading=12), |
|
24 |
PS(fontSize=10, name='TOCHeading3', leftIndent=60, firstLineIndent=-20, spaceBefore=0, leading=12), |
|
25 |
PS(fontSize=10, name='TOCHeading4', leftIndent=100, firstLineIndent=-20, spaceBefore=0, leading=12), |
|
26 |
] |
|
3059
3a6ff201e927
Added documentation for the table of contents to the userguide.
jonas
parents:
3047
diff
changeset
|
27 |
getStory().append(toc) |
3047 | 28 |
|
2963 | 29 |
nextTemplate("Normal") |
30 |
||
31 |
######################################################################## |
|
32 |
# |
|
33 |
# Chapter 1 |
|
34 |
# |
|
35 |
######################################################################## |
|
36 |
||
37 |
||
38 |
heading1("Introduction") |
|
39 |
||
40 |
||
41 |
heading2("About this document") |
|
42 |
disc("""This document is an introduction to the ReportLab PDF library. |
|
43 |
Some previous programming experience |
|
44 |
is presumed and familiarity with the Python Programming language is |
|
45 |
recommended. If you are new to Python, we tell you in the next section |
|
46 |
where to go for orientation. |
|
47 |
""") |
|
48 |
||
49 |
disc(""" |
|
50 |
This manual does not cover 100% of the features, but should explain all |
|
51 |
the main concepts and help you get started, and point you at other |
|
52 |
learning resources. |
|
53 |
After working your way through this, you should be ready to begin |
|
54 |
writing programs to produce sophisticated reports. |
|
55 |
""") |
|
56 |
||
57 |
disc("""In this chapter, we will cover the groundwork:""") |
|
58 |
bullet("What is ReportLab all about, and why should I use it?") |
|
59 |
bullet("What is Python?") |
|
60 |
bullet("How do I get everything set up and running?") |
|
61 |
||
62 |
todo(""" |
|
63 |
We need your help to make sure this manual is complete and helpful. |
|
64 |
Please send any feedback to our user mailing list, |
|
3311 | 65 |
which is signposted from <a href="http://www.reportlab.com/">www.reportlab.com</a>. |
2963 | 66 |
""") |
67 |
||
68 |
heading2("What is the ReportLab PDF Library?") |
|
69 |
disc("""This is a software library that lets you directly |
|
70 |
create documents in Adobe's Portable Document Format (PDF) using |
|
71 |
the Python programming language. It also creates charts and data graphics |
|
72 |
in various bitmap and vector formats as well as PDF.""") |
|
73 |
||
74 |
disc("""PDF is the global standard for electronic documents. It |
|
75 |
supports high-quality printing yet is totally portable across |
|
76 |
platforms, thanks to the freely available Acrobat Reader. Any |
|
77 |
application which previously generated hard copy reports or driving a printer |
|
78 |
can benefit from making PDF documents instead; these can be archived, |
|
79 |
emailed, placed on the web, or printed out the old-fashioned way. |
|
80 |
However, the PDF file format is a complex |
|
81 |
indexed binary format which is impossible to type directly. |
|
82 |
The PDF format specification is more than 600 pages long and |
|
83 |
PDF files must provide precise byte offsets -- a single extra |
|
84 |
character placed anywhere in a valid PDF document can render it |
|
85 |
invalid. This makes it harder to generate than HTML.""") |
|
86 |
||
87 |
disc("""Most of the world's PDF documents have been produced |
|
88 |
by Adobe's Acrobat tools, or rivals such as JAWS PDF Creator, which act |
|
89 |
as 'print drivers'. Anyone wanting to automate PDF production would |
|
90 |
typically use a product like Quark, Word or Framemaker running in a loop |
|
91 |
with macros or plugins, connected to Acrobat. Pipelines of several |
|
92 |
languages and products can be slow and somewhat unwieldy. |
|
93 |
""") |
|
94 |
||
95 |
||
96 |
disc("""The ReportLab library directly creates PDF based on |
|
97 |
your graphics commands. There are no intervening steps. Your applications |
|
98 |
can generate reports extremely fast - sometimes orders |
|
99 |
of magnitude faster than traditional report-writing |
|
100 |
tools. This approach is shared by several other libraries - PDFlib for C, |
|
101 |
iText for Java, iTextSharp for .NET and others. However, The ReportLab library |
|
102 |
differs in that it can work at much higher levels, with a full featured engine |
|
103 |
for laying out documents complete with tables and charts. """) |
|
104 |
||
105 |
||
106 |
disc("""In addition, because you are writing a program |
|
107 |
in a powerful general purpose language, there are no |
|
108 |
restrictions at all on where you get your data from, |
|
109 |
how you transform it, and the kind of output |
|
110 |
you can create. And you can reuse code across |
|
111 |
whole families of reports.""") |
|
112 |
||
113 |
disc("""The ReportLab library is expected to be useful |
|
114 |
in at least the following contexts:""") |
|
115 |
bullet("Dynamic PDF generation on the web") |
|
116 |
bullet("High-volume corporate reporting and database publishing") |
|
117 |
bullet("""An embeddable print engine for other applications, including |
|
118 |
a 'report language' so that users can customize their own reports. <i> |
|
119 |
This is particularly relevant to cross-platform apps which cannot |
|
120 |
rely on a consistent printing or previewing API on each operating |
|
121 |
system</i>.""") |
|
122 |
bullet("""A 'build system' for complex documents with charts, tables |
|
123 |
and text such as management accounts, statistical reports and |
|
124 |
scientific papers """) |
|
3310 | 125 |
bullet("""Going from XML to PDF in one step""") |
2963 | 126 |
|
127 |
||
3310 | 128 |
heading2("ReportLab's commercial software") |
129 |
disc(""" |
|
130 |
The ReportLab library forms the foundation of our commercial solution for |
|
131 |
PDF generation, Report Markup Language (RML). This is available for evaluation |
|
132 |
on our web site with full documentation. We believe that RML is the fastest |
|
133 |
and easiest way to develop rich PDF workflows. You work in a markup language |
|
134 |
at a similar level to HTML, using your favorite templating system to populate |
|
135 |
an RML document; then call our rml2pdf API function to generate a PDF. It's |
|
136 |
what ReportLab staff use to build all of the solutions you can see on reportlab.com. |
|
137 |
Key differences: |
|
138 |
""") |
|
139 |
bullet("""Fully documented with two manuals, a formal specification (the DTD) and extensive self-documenting tests. (By contrast, we try to make sure the open source documentation isn't wrong, but we don't always keep up with the code)""") |
|
140 |
bullet("""Work in high-level markup rather than constructing graphs of Python objects """) |
|
141 |
bullet("""Requires no Python expertise - your colleagues may thank you after you've left!'""") |
|
142 |
bullet("""Support for vector graphics and inclusion of other PDF documents""") |
|
143 |
bullet("""Many more useful features expressed with a single tag, which would need a lot |
|
144 |
of coding in the open source package""") |
|
145 |
bullet("""Commercial support is included""") |
|
146 |
||
147 |
||
148 |
disc(""" |
|
149 |
We ask open source developers to consider trying out RML where it is appropriate. |
|
150 |
You can register on our site and try out a copy before buying. |
|
151 |
The costs are reasonable and linked to the volume of the project, and the revenue |
|
152 |
helps us spend more time developing this software.""") |
|
2963 | 153 |
|
154 |
||
155 |
heading2("What is Python?") |
|
156 |
disc(""" |
|
157 |
Python is an <i>interpreted, interactive, object-oriented</i> programming language. It is often compared to Tcl, Perl, |
|
158 |
Scheme or Java. |
|
159 |
""") |
|
160 |
||
161 |
disc(""" |
|
162 |
Python combines remarkable power with very clear syntax. It has modules, classes, exceptions, very high level |
|
163 |
dynamic data types, and dynamic typing. There are interfaces to many system calls and libraries, as well as to |
|
164 |
various windowing systems (X11, Motif, Tk, Mac, MFC). New built-in modules are easily written in C or C++. |
|
165 |
Python is also usable as an extension language for applications that need a programmable interface. |
|
166 |
""") |
|
167 |
||
168 |
||
169 |
disc(""" |
|
3064 | 170 |
Python is as old as Java and has been growing steadily in popularity for years; since our |
2963 | 171 |
library first came out it has entered the mainstream. Many ReportLab library users are |
172 |
already Python devotees, but if you are not, we feel that the language is an excellent |
|
173 |
choice for document-generation apps because of its expressiveness and ability to get |
|
174 |
data from anywhere. |
|
175 |
""") |
|
176 |
||
177 |
disc(""" |
|
178 |
Python is copyrighted but <b>freely usable and distributable, even for commercial use</b>. |
|
179 |
""") |
|
180 |
||
181 |
heading2("Acknowledgements") |
|
3287 | 182 |
disc("""Many people have contributed to ReportLab. We would like to thank in particular |
183 |
(in alphabetical order): |
|
184 |
Albertas Agejevas, |
|
3613 | 185 |
Alex Buck, |
3287 | 186 |
Andre Reitz, |
4040
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
187 |
Andrew Cutler, |
3287 | 188 |
Andrew Mercer, |
4040
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
189 |
Ben Echols, |
3287 | 190 |
Benjamin Dumke, |
191 |
Benn B, |
|
192 |
Chad Miller, |
|
4252 | 193 |
Chris Buergi, |
3287 | 194 |
Chris Lee, |
195 |
Christian Jacobs, |
|
196 |
Dinu Gherman, |
|
4252 | 197 |
Edward Greve, |
3613 | 198 |
Eric Johnson, |
199 |
Felix Labrecque, |
|
4252 | 200 |
Fubu @ bitbucket, |
3287 | 201 |
Gary Poster, |
3450 | 202 |
Germán M. Bravo, |
3613 | 203 |
Guillaume Francois, |
3287 | 204 |
Hans Brand, |
205 |
Henning Vonbargen, |
|
3288 | 206 |
Hosam Aly, |
3613 | 207 |
Ian Stevens, |
208 |
James Martin-Collar, |
|
3287 | 209 |
Jeff Bauer, |
210 |
Jerome Alet, |
|
3450 | 211 |
Jerry Casiano, |
212 |
Jorge Godoy, |
|
213 |
Keven D Smith, |
|
4252 | 214 |
Kyle MacFarlane, |
3287 | 215 |
Magnus Lie Hetland, |
4040
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
216 |
Marcel Tromp, |
3287 | 217 |
Marius Gedminas, |
4252 | 218 |
Mark de Wit, |
4040
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
219 |
Matthew Duggan, |
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
220 |
Matthias Kirst, |
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
221 |
Matthias Klose, |
3287 | 222 |
Max M, |
223 |
Michael Egorov, |
|
4252 | 224 |
Michael Spector, |
3287 | 225 |
Mike Folwell, |
4040
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
226 |
Mirko Dziadzka, |
3450 | 227 |
Moshe Wagner, |
228 |
Nate Silva, |
|
3287 | 229 |
Paul McNett, |
3613 | 230 |
Peter Johnson, |
3287 | 231 |
PJACock, |
232 |
Publio da Costa Melo, |
|
233 |
Randolph Bentson, |
|
234 |
Robert Alsina, |
|
3450 | 235 |
Robert Hölzl, |
236 |
Robert Kern, |
|
3287 | 237 |
Ron Peleg, |
4252 | 238 |
Ruby Yocum, |
3287 | 239 |
Simon King, |
4040
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
240 |
Stephan Richter, |
3287 | 241 |
Steve Halasz, |
4252 | 242 |
Stoneleaf @ bitbucket, |
3450 | 243 |
T Blatter, |
3287 | 244 |
Tim Roberts, |
3450 | 245 |
Tomasz Swiderski, |
4040
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
246 |
Ty Sarna, |
3287 | 247 |
Volker Haas, |
4252 | 248 |
Yoann Roman, |
3287 | 249 |
and many more.""") |
2963 | 250 |
|
4040
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
251 |
|
2963 | 252 |
disc("""Special thanks go to Just van Rossum for his valuable assistance with |
2977
beca8d75f400
reportlab: remove LetErrorRobot-Chrome, rina & luxi. Add DarkGardenMK and fix tests
rgbecker
parents:
2967
diff
changeset
|
253 |
font technicalities.""") |
2963 | 254 |
|
4151
fbc7f3aeb4c7
userguide - fix minor typos
James P-K <jamespk@reportlab.com>
parents:
4040
diff
changeset
|
255 |
disc("""Moshe Wagner and Hosam Aly deserve a huge thanks for contributing to the RTL patch, which is not yet on the trunk.""") |
3288 | 256 |
|
2963 | 257 |
disc("""Marius Gedminas deserves a big hand for contributing the work on TrueType fonts and we |
2977
beca8d75f400
reportlab: remove LetErrorRobot-Chrome, rina & luxi. Add DarkGardenMK and fix tests
rgbecker
parents:
2967
diff
changeset
|
258 |
are glad to include these in the toolkit. Finally we thank Michal Kosmulski for the DarkGarden font |
beca8d75f400
reportlab: remove LetErrorRobot-Chrome, rina & luxi. Add DarkGardenMK and fix tests
rgbecker
parents:
2967
diff
changeset
|
259 |
for and Bitstream Inc. for the Vera fonts.""") |
2963 | 260 |
|
261 |
heading2("Installation and Setup") |
|
262 |
||
3672
a7563a34f803
slimmed down manual to not duplicate website release notes
Andy Robinson <andy@reportlab.com>
parents:
3618
diff
changeset
|
263 |
disc("""To avoid duplication, the installation instructions are kept in the README file |
a7563a34f803
slimmed down manual to not duplicate website release notes
Andy Robinson <andy@reportlab.com>
parents:
3618
diff
changeset
|
264 |
in our distribution, which can be viewed online at ^http://bitbucket.org/rptlab/reportlab/^""") |
2963 | 265 |
|
4040
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
266 |
disc("""This release (3.0) of ReportLab requires Python versions 2.7, 3.3 or higher. |
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
267 |
If you need to use Python 2.5 or 2.6, please use the latest ReportLab 2.x package. |
3064 | 268 |
""") |
2963 | 269 |
|
270 |
||
271 |
||
272 |
heading2("Getting Involved") |
|
273 |
disc("""ReportLab is an Open Source project. Although we are |
|
274 |
a commercial company we provide the core PDF generation |
|
275 |
sources freely, even for commercial purposes, and we make no income directly |
|
276 |
from these modules. We also welcome help from the community |
|
277 |
as much as any other Open Source project. There are many |
|
278 |
ways in which you can help:""") |
|
279 |
||
280 |
bullet("""General feedback on the core API. Does it work for you? |
|
281 |
Are there any rough edges? Does anything feel clunky and awkward?""") |
|
282 |
||
283 |
bullet("""New objects to put in reports, or useful utilities for the library. |
|
284 |
We have an open standard for report objects, so if you have written a nice |
|
285 |
chart or table class, why not contribute it?""") |
|
286 |
||
3288 | 287 |
bullet("""Snippets and Case Studies: If you have produced some nice |
288 |
output, register online on ^http://www.reportlab.com^ and submit a snippet |
|
289 |
of your output (with or without scripts). If ReportLab solved a |
|
290 |
problem for you at work, write a little 'case study' and submit it. |
|
2963 | 291 |
And if your web site uses our tools to make reports, let us link to it. |
292 |
We will be happy to display your work (and credit it with your name |
|
293 |
and company) on our site!""") |
|
294 |
||
295 |
bullet("""Working on the core code: we have a long list of things |
|
296 |
to refine or to implement. If you are missing some features or |
|
297 |
just want to help out, let us know!""") |
|
298 |
||
299 |
disc("""The first step for anyone wanting to learn more or |
|
300 |
get involved is to join the mailing list. To Subscribe visit |
|
301 |
$http://two.pairlist.net/mailman/listinfo/reportlab-users$. |
|
302 |
From there you can also browse through the group's archives |
|
303 |
and contributions. The mailing list is |
|
304 |
the place to report bugs and get support. """) |
|
305 |
||
3672
a7563a34f803
slimmed down manual to not duplicate website release notes
Andy Robinson <andy@reportlab.com>
parents:
3618
diff
changeset
|
306 |
disc("""The code now lives on BitBucket ($http://bitbucket.org/rptlab/reportlab/$) |
a7563a34f803
slimmed down manual to not duplicate website release notes
Andy Robinson <andy@reportlab.com>
parents:
3618
diff
changeset
|
307 |
in a Mercurial repository, along with an issue tracker and wiki. Everyone should |
a7563a34f803
slimmed down manual to not duplicate website release notes
Andy Robinson <andy@reportlab.com>
parents:
3618
diff
changeset
|
308 |
feel free to contribute, but if you are working actively on some improvements |
a7563a34f803
slimmed down manual to not duplicate website release notes
Andy Robinson <andy@reportlab.com>
parents:
3618
diff
changeset
|
309 |
or want to draw attention to an issue, please use the mailing list to let us know.""") |
a7563a34f803
slimmed down manual to not duplicate website release notes
Andy Robinson <andy@reportlab.com>
parents:
3618
diff
changeset
|
310 |
|
a7563a34f803
slimmed down manual to not duplicate website release notes
Andy Robinson <andy@reportlab.com>
parents:
3618
diff
changeset
|
311 |
|
2963 | 312 |
|
313 |
heading2("Site Configuration") |
|
314 |
disc("""There are a number of options which most likely need to be configured globally for a site. |
|
315 |
The python script module $reportlab/rl_config.py$ may be edited to change the values of several |
|
316 |
important sitewide properties.""") |
|
317 |
bullet("""verbose: set to integer values to control diagnostic output.""") |
|
318 |
bullet("""shapeChecking: set this to zero to turn off a lot of error checking in the graphics modules""") |
|
319 |
bullet("""defaultEncoding: set this to WinAnsiEncoding or MacRomanEncoding.""") |
|
320 |
bullet("""defaultPageSize: set this to one of the values defined in reportlab/lib/pagesizes.py; as delivered |
|
321 |
it is set to pagesizes.A4; other values are pagesizes.letter etc.""") |
|
322 |
bullet("""defaultImageCaching: set to zero to inhibit the creation of .a85 files on your |
|
323 |
hard-drive. The default is to create these preprocessed PDF compatible image files for faster loading""") |
|
324 |
bullet("""T1SearchPath: this is a python list of strings representing directories that |
|
325 |
may be queried for information on Type 1 fonts""") |
|
326 |
bullet("""TTFSearchPath: this is a python list of strings representing directories that |
|
327 |
may be queried for information on TrueType fonts""") |
|
328 |
bullet("""CMapSearchPath: this is a python list of strings representing directories that |
|
329 |
may be queried for information on font code maps.""") |
|
330 |
bullet("""showBoundary: set to non-zero to get boundary lines drawn.""") |
|
331 |
bullet("""ZLIB_WARNINGS: set to non-zero to get warnings if the Python compression extension is not found.""") |
|
332 |
bullet("""pageComression: set to non-zero to try and get compressed PDF.""") |
|
333 |
bullet("""allowtableBoundsErrors: set to 0 to force an error on very large Platypus table elements""") |
|
334 |
bullet("""emptyTableAction: Controls behaviour for empty tables, can be 'error' (default), 'indicate' or 'ignore'.""") |
|
335 |
||
336 |
heading2("Learning More About Python") |
|
337 |
||
338 |
disc(""" |
|
339 |
If you are a total beginner to Python, you should check out one or more from the |
|
340 |
growing number of resources on Python programming. The following are freely |
|
341 |
available on the web: |
|
342 |
""") |
|
343 |
||
344 |
||
3311 | 345 |
bullet("""<b>Python Documentation. </b> |
346 |
A list of documentation on the Python.org web site. |
|
347 |
$http://www.python.org/doc/$ |
|
2963 | 348 |
""") |
349 |
||
350 |
||
351 |
bullet("""<b>Python Tutorial. </b> |
|
3311 | 352 |
The official Python Tutorial , originally written by Guido van Rossum himself. |
353 |
$http://docs.python.org/tutorial/$ |
|
2963 | 354 |
""") |
355 |
||
356 |
||
357 |
bullet("""<b>Learning to Program. </b> |
|
358 |
A tutorial on programming by Alan Gauld. Has a heavy emphasis on |
|
359 |
Python, but also uses other languages. |
|
360 |
$http://www.freenetpages.co.uk/hp/alan.gauld/$ |
|
361 |
""") |
|
362 |
||
363 |
||
364 |
bullet("""<b>Instant Python</b>. |
|
365 |
A 6-page minimal crash course by Magnus Lie Hetland. |
|
366 |
$http://www.hetland.org/python/instant-python.php$ |
|
367 |
""") |
|
368 |
||
369 |
||
370 |
bullet("""<b>Dive Into Python</b>. |
|
371 |
A free Python tutorial for experienced programmers. |
|
3613 | 372 |
$http://www.diveintopython.net/$ |
2963 | 373 |
""") |
374 |
||
375 |
||
376 |
from reportlab.lib.codecharts import SingleByteEncodingChart |
|
2966 | 377 |
from tools.docco.stylesheet import getStyleSheet |
2963 | 378 |
styles = getStyleSheet() |
379 |
indent0_style = styles['Indent0'] |
|
380 |
indent1_style = styles['Indent1'] |
|
381 |
||
4040
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
382 |
heading2("Goals for the 3.x release series") |
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
383 |
disc("""ReportLab 3.0 has been produced to help in the migration to Python 3.x. Python 3.x will |
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
384 |
be standard in future Ubuntu releases and is gaining popularity, and a good proportion |
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
385 |
of major Python packages now run on Python 3. """) |
2963 | 386 |
|
3288 | 387 |
|
2963 | 388 |
|
4040
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
389 |
bullet("""Python 3.x compatibility. A single line of code should run on 2.7 and 3.3""") |
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
390 |
bullet(""" __init__.py restricts to 2.7 or >=3.3""") |
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
391 |
bullet("""__init__.py allow the import of on optional reportlab.local_rl_mods to allow monkey patching etc.""") |
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
392 |
bullet("""rl_config now imports rl_settings & optionally local_rl_settings""") |
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
393 |
bullet("""ReportLab C extensions now live inside reportlab; _rl_accel is no longer required. All _rl_accel imports now pass through reportlab.lib.rl_accel""") |
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
394 |
bullet("""xmllib is gone, alongside the paraparser stuff that caused issues in favour of HTMLParser.""") |
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
395 |
bullet("""some obsolete C extensions (sgmlop and pyHnj) are gone""") |
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
396 |
bullet("""Improved support for multi-threaded systems to the _rl_accel C extension module.""") |
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
397 |
bullet("""Removed reportlab/lib/ para.py & pycanvas.py. These would better belong in third party packages, which can make use of the monkeypatching feature above.""") |
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
398 |
bullet("""Add ability to output greyscale and 1-bit PIL images without conversion to RGB. (contributed by Matthew Duggan)""") |
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
399 |
bullet("""highlight annotation (contributed by Ben Echols)""") |
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
400 |
bullet("""full compliance with pip, easy_install, wheels etc""") |
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
401 |
|
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
402 |
|
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
403 |
|
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
404 |
|
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
405 |
disc("""Detailed release notes are available at |
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
406 |
$http://www.reportlab.com/software/documentation/relnotes/30/$""") |
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
407 |
|
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
408 |
|
60080318e740
release 3.0 documentation updates
Andy Robinson <andy@reportlab.com>
parents:
3678
diff
changeset
|
409 |