author | rgbecker |
Wed, 25 Oct 2000 08:57:46 +0000 | |
changeset 494 | 54257447cfe9 |
parent 444 | f939b29eca9a |
child 685 | 582823622e2e |
permissions | -rw-r--r-- |
494 | 1 |
#copyright ReportLab Inc. 2000 |
2 |
#see license.txt for license details |
|
3 |
#history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/docs/userguide/ch1_intro.py?cvsroot=reportlab |
|
4 |
#$Header: /tmp/reportlab/docs/userguide/ch1_intro.py,v 1.11 2000/10/25 08:57:45 rgbecker Exp $ |
|
337 | 5 |
from genuserguide import * |
344
dd6e41c2b0ed
Paragraphs chapter pretty much complete. Fancy cover.
andy_robinson
parents:
340
diff
changeset
|
6 |
import reportlab |
337 | 7 |
|
344
dd6e41c2b0ed
Paragraphs chapter pretty much complete. Fancy cover.
andy_robinson
parents:
340
diff
changeset
|
8 |
title("User Guide") |
dd6e41c2b0ed
Paragraphs chapter pretty much complete. Fancy cover.
andy_robinson
parents:
340
diff
changeset
|
9 |
centred('ReportLab Version ' + reportlab.Version) |
dd6e41c2b0ed
Paragraphs chapter pretty much complete. Fancy cover.
andy_robinson
parents:
340
diff
changeset
|
10 |
|
dd6e41c2b0ed
Paragraphs chapter pretty much complete. Fancy cover.
andy_robinson
parents:
340
diff
changeset
|
11 |
nextTemplate("Normal") |
337 | 12 |
|
13 |
######################################################################## |
|
14 |
# |
|
15 |
# Chapter 1 |
|
16 |
# |
|
17 |
######################################################################## |
|
18 |
||
19 |
||
20 |
heading1("Introduction") |
|
21 |
||
22 |
||
23 |
heading2("About this document") |
|
24 |
disc("""This document is intended to be a conversational introduction |
|
25 |
to the use of the ReportLab packages. Some previous programming experience |
|
26 |
is presumed and familiarity with the Python Programming language is |
|
27 |
recommended. If you are new to Python, we tell you in the next section |
|
28 |
where to go for orientation. |
|
29 |
""") |
|
30 |
||
31 |
disc("""After working your way throught this, you should be ready to begin |
|
32 |
writing programs to produce sophisticated reports. |
|
33 |
""") |
|
34 |
||
35 |
disc("""In this chapter, we will cover the groundwork:""") |
|
36 |
bullet("What is ReportLab all about, and why should I use it?") |
|
37 |
bullet("What is Python?") |
|
38 |
bullet("How do I get everything set up and running?") |
|
39 |
||
40 |
todo(""" |
|
41 |
Be warned! This document is in a <em>very</em> preliminary form. We need |
|
42 |
your help to make sure it is complete and helpful. Please send any |
|
397 | 43 |
feedback to our user mailing list, reportlab-users@egroups.com. |
337 | 44 |
""") |
45 |
||
346
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
46 |
heading2("What is ReportLab?") |
397 | 47 |
disc("""ReportLab is a software library that lets you directly |
48 |
create documents in Adobe's Portabe Document Format (PDF) using |
|
49 |
the Python programming language. """) |
|
346
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
50 |
|
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
51 |
disc("""PDF is the global standard for electronic documents. It |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
52 |
supports high-quality printing yet is totally portable across |
406 | 53 |
platforms, thanks to the freely available Acrobat Reader. Any |
346
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
54 |
application which previously generated hard copy reports can |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
55 |
benefit from making PDF documents instead; these can be archived, |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
56 |
emailed, placed on the web, or printed out the old-fashioned way. |
352 | 57 |
However, the PDF file format is a complex |
397 | 58 |
indexed binary format which is impossible to type directly. |
352 | 59 |
The PDF format specification is more than 600 pages long and |
60 |
PDF files must provide precise byte offsets -- a single extra |
|
61 |
character placed anywhere in a valid PDF document can render it |
|
62 |
invalid. |
|
346
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
63 |
Until now, most of the world's PDF documents have been produced |
397 | 64 |
by Adobe's Acrobat tools, which act as a 'print driver'. |
337 | 65 |
""") |
66 |
||
346
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
67 |
disc("""The ReportLab library directly creates PDF based on |
352 | 68 |
your graphics commands. There are no intervening steps. Your applications |
346
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
69 |
can generate reports extremely fast - sometimes orders |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
70 |
of magnitude faster than traditional report-writing |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
71 |
tools.""") |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
72 |
|
352 | 73 |
disc(""" |
74 |
By contrast, many other methods for generating PDF documents |
|
75 |
involve "pipelines" of several processes, which make the generation process |
|
76 |
slow, and very difficult to manage and maintain. |
|
77 |
""") |
|
78 |
||
346
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
79 |
disc("""In addition, because you are writing a program |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
80 |
in a powerful general purpose language, there are no |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
81 |
restrictions at all on where you get your data from, |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
82 |
how you transform it, and the the kind of output |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
83 |
you can create. And you can reuse code across |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
84 |
whole families of reports.""") |
340 | 85 |
|
346
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
86 |
disc("""The ReportLab library is expected to be useful |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
87 |
in at least the following contexts:""") |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
88 |
bullet("Dynamic PDF generation on the web") |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
89 |
bullet("High-volume corporate reporting and database publishing") |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
90 |
bullet("""An embeddable print engine for other applications, including |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
91 |
a 'report language' so that users can customize their own reports. <i> |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
92 |
This is particularly relevant to cross-platform apps which cannot |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
93 |
rely on a consistent printing or previewing API on each operating |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
94 |
system</i>.""") |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
95 |
bullet("""A 'build system' for complex documents with charts, tables |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
96 |
and text such as management accounts, statistical reports and |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
97 |
scientific papers """) |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
98 |
bullet("""Going from XML to PDF in one step!""") |
340 | 99 |
|
100 |
||
101 |
||
102 |
||
337 | 103 |
heading2("What is Python?") |
104 |
disc("""<para lindent=+36> |
|
105 |
<b>python</b>, (<i>Gr. Myth.</i> An enormous serpent that lurked in the cave of Mount Parnassus and was slain |
|
106 |
by Apollo) <b>1.</b> any of a genus of large, non-poisonous snakes of Asia, Africa and Australia that |
|
107 |
suffocate their prey to death. <b>2.</b> popularly, any large snake that crushes its prey. <b>3.</b> totally awesome, |
|
352 | 108 |
bitchin' very high level programming language (which in <i>our</i> exceedingly humble opinions |
109 |
(for what they are worth) |
|
110 |
whallops the snot out of all the other contenders (but your |
|
111 |
mileage may vary real soon now, as far as we know).</para> |
|
337 | 112 |
""") |
113 |
disc(""" |
|
114 |
Python is an <i>interpreted, interactive, object-oriented</i> programming language. It is often compared to Tcl, Perl, |
|
115 |
Scheme or Java. |
|
116 |
""") |
|
117 |
||
118 |
disc(""" |
|
119 |
Python combines remarkable power with very clear syntax. It has modules, classes, exceptions, very high level |
|
120 |
dynamic data types, and dynamic typing. There are interfaces to many system calls and libraries, as well as to |
|
121 |
various windowing systems (X11, Motif, Tk, Mac, MFC). New built-in modules are easily written in C or C++. |
|
122 |
Python is also usable as an extension language for applications that need a programmable interface. |
|
123 |
""") |
|
124 |
||
125 |
disc(""" |
|
352 | 126 |
The Python implementation is portable: it runs on most brands of UNIX |
127 |
(including clones such as Linux), on Windows, DOS, OS/2, Mac, Amiga, DEC/VMS, |
|
128 |
IBM operating systems, VxWorks, PSOS, ... If |
|
129 |
your favorite system isn't listed here, it may still be supported, if there's a C |
|
130 |
programming language compiler for it. Ask around on |
|
337 | 131 |
comp.lang.python -- or just try compiling Python yourself. |
132 |
""") |
|
133 |
||
134 |
disc(""" |
|
135 |
Python is copyrighted but <b>freely usable and distributable, even for commercial use</b>. |
|
352 | 136 |
The ReportLab core modules share the same copyright with the name of the copyright holder |
137 |
modified. Both packages use the "Berkeley Standard Distribution (BSD) style" free software copyright. |
|
337 | 138 |
""") |
139 |
||
140 |
heading2("Installation and Setup") |
|
352 | 141 |
|
142 |
disc(""" |
|
143 |
Below we provide an abbreviated setup procedure for Python experts and a more |
|
144 |
verbose procedure for people who are new to Python. |
|
145 |
""") |
|
146 |
||
340 | 147 |
heading3("Installation for experts") |
148 |
disc("""First of all, we'll give you the high-speed version for experienced |
|
149 |
Python developers:""") |
|
346
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
150 |
list("Install Python 1.5.1 or later") |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
151 |
list("""If you want to produce compressed PDF files (recommended), |
406 | 152 |
check that zlib is installed.""") |
346
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
153 |
list("""If you want to work with bitmap images, install and |
340 | 154 |
test the Python Imaging Library""") |
348 | 155 |
list("""Unpack the reportlab package (reportlab.zip |
340 | 156 |
or reportlab.tgz) into a directory on your path""") |
406 | 157 |
list("""$cd$ to ^reportlab/pdfgen/test^ and execute $testpdfgen.py$, |
346
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
158 |
which will create a file 'testpdfgen.pdf'.""") |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
159 |
disc(" ") |
397 | 160 |
disc("""If you have any problems, check the 'Detailed Instructions' section below.""") |
340 | 161 |
|
162 |
heading3("A note on available versions") |
|
163 |
disc("""The $reportlab$ |
|
352 | 164 |
library can be found at $ftp.reportlab.com$ in the top-level directory. |
340 | 165 |
Each successive version is stored in both zip and tgz format, but the |
352 | 166 |
contents are identical. Versions are numbered: $ReportLab_0_85.zip$, |
167 |
$ReportLab_0_86.zip$ and so on. The latest stable version is also |
|
168 |
available as just $reportlab.zip$ (or $reportlab.tgz$), which |
|
340 | 169 |
is actually a symbolic link to the latest numbered version.""") |
170 |
||
352 | 171 |
disc("""We also make nightly snapshots of our CVS |
172 |
(version control) tree available. In |
|
340 | 173 |
general, these are very stable because we have a comprehensive test |
352 | 174 |
suite that all developers can run at any time. |
175 |
New modules and functions within the overall package may be in a state |
|
340 | 176 |
of flux, but stable features can be assumed to be stable. If a bug is |
397 | 177 |
reported and fixed, we assume people who need the fix in a hurry will |
340 | 178 |
get $current.zip$""") |
179 |
||
352 | 180 |
heading3("Instructions for novices: Windows") |
181 |
||
182 |
||
183 |
||
184 |
disc("""This section assumes you |
|
340 | 185 |
don't know much about Python. We cover all of the steps for three |
186 |
common platforms, including how to verify that each one is complete. |
|
187 |
While this may seem like a long list, everything takes 5 minutes if |
|
188 |
you have the binaries at hand.""") |
|
189 |
||
190 |
||
191 |
restartList() |
|
337 | 192 |
|
352 | 193 |
list("""Get and install Python from $http://www.python.org/.$ |
340 | 194 |
Follow the links to 'Download' and get the latest official |
352 | 195 |
version. Currently this is Python 1.5.2 in the file $py152.exe$. |
340 | 196 |
It will prompt you for a directory location, which by default is |
197 |
$C:\Program Files\Python$. This works, but we recommend entering |
|
198 |
$C:\Python15$. Python 1.6 will be out shortly and will adopt |
|
352 | 199 |
$C:\Python16$ as its default; and quite often one wants to change directory into the |
340 | 200 |
Python directory from a command prompt, so a path without spaces saves |
201 |
a lot of typing! After installing, you should be able to run the |
|
202 |
'Python (command line)' option from the Start Menu.""") |
|
203 |
||
204 |
list("""If on Win9x, we recommend either copying python.exe to a |
|
205 |
location on your path, or adding your Python directory to the path, so |
|
206 |
that you can execute Python from any directory.""") |
|
207 |
||
208 |
list("""If you want a nice editing environment or might need to |
|
209 |
access Microsoft applications, get the Pythonwin add-on package from |
|
210 |
the same page. Once this is installed, you can start Pythonwin from |
|
211 |
the Start Menu and get a GUI application.""") |
|
337 | 212 |
|
340 | 213 |
disc("""The next step is optional and only necessary if you want to |
214 |
include images in your reports; it can also be carried out later.""") |
|
215 |
||
352 | 216 |
list("Install the Python Imaging Library ($PIL$). (todo: make up a bundle that works)") |
340 | 217 |
|
352 | 218 |
list("Add the $DLL$s in $PIL$ to your $Python\DLLs$ directory") |
340 | 219 |
|
346
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
220 |
list("""To verify, |
352 | 221 |
start the Python interpreter (command line) and type $import Image$, followed by |
222 |
$import _imaging$. If you see no error messages, all is well.""") |
|
340 | 223 |
|
352 | 224 |
disc("""Now you are ready to install reportlab itself.""") |
225 |
||
346
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
226 |
list("""Unzip the archive straight into |
340 | 227 |
your Python directory; it creates a subdirectory named |
352 | 228 |
$reportlab$. You should now be able to go to a Python |
229 |
command line interpreter and type $import reportlab$ without getting |
|
346
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
230 |
an error message.""") |
340 | 231 |
|
352 | 232 |
list("""Open up a $MS-DOS$ command prompt and CD to |
348 | 233 |
"..\\reportlab\\pdfgen\\test". On NT, enter "testpdfgen.py"; on |
340 | 234 |
Win9x, enter "python testpdfgen.py". After a couple of seconds, |
235 |
the script completes and the file testpdfgen.pdf should be ready for |
|
236 |
viewing. If PIL is installed, there should be a "Python Powered" |
|
346
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
237 |
image on the last page. You're done!""") |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
238 |
|
352 | 239 |
disc(""" |
240 |
[Note: the "couple of seconds" delay is mainly due to |
|
241 |
compilation of the python scripts in the ReportLab package. |
|
242 |
The next time the ReportLab modules are used the execution |
|
243 |
will be noticably faster because the $pyc$ compiled python |
|
244 |
files will be used in place of the $py$ python source files.]""") |
|
245 |
||
346
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
246 |
heading3("Instructions for Python novices: Unix") |
352 | 247 |
|
348 | 248 |
restartList() |
249 |
list("""First you need to decide if you want to install the Python sources |
|
250 |
and compile these yourself or if you only want to install a binary package |
|
352 | 251 |
for one of the many variants of Linux or Unix. If you want to compile from |
252 |
source download the latest |
|
348 | 253 |
sources from http://www.python.org (currently the latest source is |
352 | 254 |
in http://www.python.org/ftp/python/src/py152.tgz). If you wish to use |
255 |
binaries |
|
348 | 256 |
get the latest RPM or DEB or whatever package and install (or get your |
352 | 257 |
super user (system administrator) to do the work).""") |
348 | 258 |
|
352 | 259 |
list("""If you are building Python yourself, unpack the sources into a temporary directory using a tar command |
397 | 260 |
e.g. $tar xzvf py152.tgz$; this will create a subdirectory called Python-1.5.2 |
348 | 261 |
(or whatever) cd into this directory. Then read the file $README$! It contains the |
262 |
latest information on how to install Python.""") |
|
263 |
||
385 | 264 |
list("""If your system has the gzip libz library installed |
265 |
check that the zlib extension will be installed by default by editing |
|
348 | 266 |
the file Modules/Setup.in and ensuring that (near line 405) the line |
397 | 267 |
containing zlib zlibmodule.c is uncommented i.e. has no hash '#' character at the |
348 | 268 |
beginning. You also need to decide if you will be installing in the default location |
385 | 269 |
(/usr/local/) or in some other place. |
270 |
The zlib module is needed if you want compressed PDF and for some images.""") |
|
346
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
271 |
|
348 | 272 |
list("""Invoke the command $./configure --prefix=/usr/local$ this should configure |
273 |
the source directory for building. Then you can build the binaries with |
|
274 |
a $make$ command. If your $make$ command is not up to it try building |
|
275 |
with $make MAKE=make$. If all goes well install with $make install$.""") |
|
276 |
||
277 |
list("""If all has gone well and python is in the execution search path |
|
278 |
you should now be able to type $python$ and see a <b>Python</b> prompt. |
|
279 |
Once you can do that it's time to try and install ReportLab. |
|
280 |
First get the latest reportlab.tgz. |
|
281 |
If ReportLab is to be available to all then the reportlab archive should be unpacked in |
|
282 |
the lib/site-python directory (typically /usr/local/lib/site-python) if neccessary by |
|
283 |
a superuser. |
|
284 |
Otherwise unpack in a directory of your choice and arrange for that directory to be on your |
|
285 |
$PYTHONPATH$ variable. |
|
286 |
""") |
|
287 |
eg(""" |
|
288 |
#put something like this in your |
|
289 |
#shell rcfile |
|
290 |
PYTHONPATH=$HOME/mypythonpackages |
|
291 |
export PYTHONPATH |
|
385 | 292 |
""",after=0.1) |
293 |
||
294 |
list("""You should now be able to run python and execute the python statement |
|
295 |
""",doBullet=0) |
|
296 |
eg("""import reportlab""",after=0.1) |
|
397 | 297 |
list("""If you want to use images you should certainly consider |
298 |
getting & installing the Python Imaging Library from |
|
299 |
<font color=blue>http://www.pythonware.com/products/pil</font>. |
|
348 | 300 |
""") |
301 |
||
346
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
302 |
heading3("Instructions for Python novices: Mac") |
444 | 303 |
#this stuff was provided by humbert@ls12.cs.uni-dortmund.de |
304 |
disc(""" |
|
305 |
First install Python, |
|
306 |
the latest stable release is 1.52, but it is also possible to run Reportlab with 1.6a2 |
|
307 |
and probably with 1.6b1/b2. |
|
308 |
You get the software (ready to run) at font color=blue>http://www.python.org</font> |
|
309 |
When this is successful done you should have the following folder structure. |
|
310 |
""") |
|
311 |
image('Python_1.6a2.gif', 3*inch, 3*inch ) |
|
312 |
disc(""" |
|
313 |
Now you can put Extensions in the Extensions-Folder; |
|
314 |
which is where you should unpack the <b>reportlab.zip</b> with your favorite unpack-utility. |
|
315 |
Youšll get a subfolder named <b>reportlab</b>. |
|
316 |
""") |
|
352 | 317 |
|
444 | 318 |
disc(""" |
319 |
After this step, you have to tell the PythonInterpreter, where to look for extensions. |
|
320 |
Start EditPythonPrefs (by double-clicking the icon). |
|
321 |
""") |
|
322 |
image('Python_1.6a2_HINT.gif',3*inch,3*inch) |
|
323 |
disc(""" |
|
324 |
You should get the following modal dialog. |
|
325 |
This is the point, where your special data goes in. |
|
326 |
Reportlab is on the path in Extensions. So all you have to do is add |
|
327 |
the last line |
|
328 |
<b>$(PYTHON):Extensions</b>. |
|
329 |
""") |
|
330 |
image('Edit_Prefs.gif',3*inch,3*inch) |
|
331 |
disc(""" |
|
332 |
Now you should test one or more of the demo scripts include with with the sources; eg |
|
333 |
<b>reportlab:demos:pythonpoint:pythonpoint.py</b>. |
|
334 |
One Problem on the Mac is solved gracefully in Python: |
|
335 |
if you want a script that takes some arguments, hold down the alt or option-key, |
|
336 |
while activating Python. |
|
337 |
""") |
|
338 |
||
346
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
339 |
|
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
340 |
heading2("Getting Involved") |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
341 |
disc("""ReportLab is an Open Source project. Although we are |
352 | 342 |
a commercial company we provide the core PDF generation |
343 |
sources freely, even for commercial purposes, and we make no income directly |
|
344 |
from these modules. We also welcome help from the community |
|
346
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
345 |
as much as any other Open Source project. There are many |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
346 |
ways in which you can help:""") |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
347 |
|
397 | 348 |
bullet("""General feedback on the core API. Does it work for you? |
349 |
Are there any rough edges? Does anything feel clunky and awkward?""") |
|
346
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
350 |
|
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
351 |
bullet("""New objects to put in reports, or useful utilities for the library. |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
352 |
We have an open standard for report objects, so if you have written a nice |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
353 |
chart or table class, why not contribute it?""") |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
354 |
|
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
355 |
bullet("""Demonstrations and Case Studies: If you have produced some nice |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
356 |
output, send it to us (with or without scripts). If ReportLab solved a |
352 | 357 |
problem for you at work, write a little 'case study' and send it in. |
358 |
And if your web site uses our tools to make reports, let us link to it. |
|
359 |
We will be happy to display your work (and credit it with your name |
|
360 |
and company) on our site!""") |
|
346
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
361 |
|
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
362 |
bullet("""Working on the core code: we have a long list of things |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
363 |
to refine or to implement. If you are missing some features or |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
364 |
just want to help out, let us know!""") |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
365 |
|
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
366 |
disc("""The first step for anyone wanting to learn more or |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
367 |
get involved is to join the mailing list. Just send an email |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
368 |
with the subject "Subscribe" to |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
369 |
$reportlab-users-subscribe@egroups.com$. You can also browse |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
370 |
through the group's archives and contributions at |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
371 |
$http://www.egroups.com/group/reportlab-users$. This list is |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
372 |
the place to report bugs and get support. """) |
179378979ab7
Introduction is 'coherent' - if not exactly finished:-)
andy_robinson
parents:
344
diff
changeset
|
373 |