docs/userguide/app_demos.py
author rgbecker
Wed, 25 Oct 2000 08:57:46 +0000
changeset 494 54257447cfe9
parent 399 600ebb5a92cf
child 1128 bc5ca3b9a13b
permissions -rw-r--r--
Changed to indirect copyright
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
494
54257447cfe9 Changed to indirect copyright
rgbecker
parents: 399
diff changeset
     1
#copyright ReportLab Inc. 2000
54257447cfe9 Changed to indirect copyright
rgbecker
parents: 399
diff changeset
     2
#see license.txt for license details
54257447cfe9 Changed to indirect copyright
rgbecker
parents: 399
diff changeset
     3
#history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/docs/userguide/app_demos.py?cvsroot=reportlab
54257447cfe9 Changed to indirect copyright
rgbecker
parents: 399
diff changeset
     4
#$Header: /tmp/reportlab/docs/userguide/app_demos.py,v 1.7 2000/10/25 08:57:45 rgbecker Exp $
370
d3ddde4cc30b begin app_demos.py
rgbecker
parents:
diff changeset
     5
from genuserguide import *
d3ddde4cc30b begin app_demos.py
rgbecker
parents:
diff changeset
     6
d3ddde4cc30b begin app_demos.py
rgbecker
parents:
diff changeset
     7
Appendix1("ReportLab Demos")
399
600ebb5a92cf fixed typos.
dinu_gherman
parents: 398
diff changeset
     8
disc("""In the subdirectories of $reportlab/demos$ there are a number of working examples showing
600ebb5a92cf fixed typos.
dinu_gherman
parents: 398
diff changeset
     9
almost all aspects of reportlab in use.""")
370
d3ddde4cc30b begin app_demos.py
rgbecker
parents:
diff changeset
    10
d3ddde4cc30b begin app_demos.py
rgbecker
parents:
diff changeset
    11
heading2("""Odyssey""")
d3ddde4cc30b begin app_demos.py
rgbecker
parents:
diff changeset
    12
disc("""
d3ddde4cc30b begin app_demos.py
rgbecker
parents:
diff changeset
    13
The three scripts odyssey.py, dodyssey.py and fodyssey.py all take the file odyssey.txt
398
40c0fb74579c fixed typos, minimal changes to py2pdf.
dinu_gherman
parents: 380
diff changeset
    14
and produce PDF documents. The included odyssey.txt is short; a longer and more testing version
370
d3ddde4cc30b begin app_demos.py
rgbecker
parents:
diff changeset
    15
can be found at ftp://ftp.reportlab.com/odyssey.full.zip.
d3ddde4cc30b begin app_demos.py
rgbecker
parents:
diff changeset
    16
""")
371
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    17
eg("""
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    18
Windows
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    19
cd reportlab\\demos\\odyssey
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    20
python odyssey.py
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    21
start odyssey.pdf
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    22
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    23
Linux
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    24
cd reportlab/demos/odyssey
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    25
python odyssey.py
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    26
acrord odyssey.pdf
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    27
""")
372
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    28
disc("""Simple formatting is shown by the odyssey.py script. It runs quite fast,
370
d3ddde4cc30b begin app_demos.py
rgbecker
parents:
diff changeset
    29
but all it does is gather the text and force it onto the canvas pages. It does no paragraph
398
40c0fb74579c fixed typos, minimal changes to py2pdf.
dinu_gherman
parents: 380
diff changeset
    30
manipulation at all so you get to see the XML < & > tags.
370
d3ddde4cc30b begin app_demos.py
rgbecker
parents:
diff changeset
    31
""")
380
0071a0f52f81 Fix typo
rgbecker
parents: 372
diff changeset
    32
disc("""The scripts fodyssey.py and dodyssey.py handle paragraph formatting so you get
370
d3ddde4cc30b begin app_demos.py
rgbecker
parents:
diff changeset
    33
to see colour changes etc. Both scripts
d3ddde4cc30b begin app_demos.py
rgbecker
parents:
diff changeset
    34
use the document template class and the dodyssey.py script shows the ability to do dual column
372
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    35
layout and uses multiple page templates.
370
d3ddde4cc30b begin app_demos.py
rgbecker
parents:
diff changeset
    36
""")
371
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    37
372
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    38
heading2("""Standard Fonts and Colors""")
399
600ebb5a92cf fixed typos.
dinu_gherman
parents: 398
diff changeset
    39
disc("""In $reportlab/demos/stdfonts$ the script stdfonts.py can be used to illustrate
371
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    40
ReportLab's standard fonts. Run the script using""")
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    41
eg("""
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    42
cd reportlab\\demos\\stdfonts
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    43
python stdfonts.py
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    44
""")
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    45
disc("""
399
600ebb5a92cf fixed typos.
dinu_gherman
parents: 398
diff changeset
    46
to produce two PDF documents, StandardFonts_MacRoman.pdf &
372
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    47
StandardFonts_WinAnsi.pdf which show the two most common built in
371
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    48
font encodings.
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    49
""")
399
600ebb5a92cf fixed typos.
dinu_gherman
parents: 398
diff changeset
    50
disc("""The colortest.py script in $reportlab/demos/colors$ demonstrates the different ways in which
372
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    51
reportlab can set up and use colors.""")
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    52
disc("""Try running the script and viewing the output document, colortest.pdf. This shows
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    53
different color spaces and a large selection of the colors which are named
399
600ebb5a92cf fixed typos.
dinu_gherman
parents: 398
diff changeset
    54
in the $reportlab.lib.colors$ module.
372
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    55
""")
371
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    56
heading2("""Py2pdf""")
398
40c0fb74579c fixed typos, minimal changes to py2pdf.
dinu_gherman
parents: 380
diff changeset
    57
disc("""Dinu Gherman (<gherman@europemail.com>) contributed this useful script
40c0fb74579c fixed typos, minimal changes to py2pdf.
dinu_gherman
parents: 380
diff changeset
    58
which uses reportlab to produce nicely colorized PDF documents from Python
40c0fb74579c fixed typos, minimal changes to py2pdf.
dinu_gherman
parents: 380
diff changeset
    59
scripts including bookmarks for classes, methods and functions.
40c0fb74579c fixed typos, minimal changes to py2pdf.
dinu_gherman
parents: 380
diff changeset
    60
To get a nice version of the main script try""")
371
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    61
eg("""
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    62
cd reportlab/demos/py2pdf
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    63
python py2pdf.py py2pdf.py
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    64
acrord py2pdf.pdf
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    65
""")
398
40c0fb74579c fixed typos, minimal changes to py2pdf.
dinu_gherman
parents: 380
diff changeset
    66
disc("""i.e. we used py2pdf to produce a nice version of py2pdf.py in
371
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    67
the document with the same rootname and a .pdf extension.
4b5524993d85 More demos in appendix
rgbecker
parents: 370
diff changeset
    68
""")
372
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    69
disc("""
398
40c0fb74579c fixed typos, minimal changes to py2pdf.
dinu_gherman
parents: 380
diff changeset
    70
The py2pdf.py script has many options which are beyond the scope of this
40c0fb74579c fixed typos, minimal changes to py2pdf.
dinu_gherman
parents: 380
diff changeset
    71
simple introduction; consult the comments at the start of the script.
372
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    72
""")
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    73
heading2("Gadflypaper")
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    74
disc("""
399
600ebb5a92cf fixed typos.
dinu_gherman
parents: 398
diff changeset
    75
The Python script, gfe.py, in $reportlab/demos/gadflypaper$ uses an inline style of
372
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    76
document preparation. The script almost entirely produced by Aaron Watters produces a document
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    77
describing Aaron's $gadfly$ in memory database for Python. To generate the document use
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    78
""")
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    79
eg("""
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    80
cd reportlab\\gadflypaper
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    81
python gfe.py
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    82
start gfe.pdf
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    83
""")
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    84
disc("""
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    85
everything in the PDF document was produced by the script which is why this is an inline style
398
40c0fb74579c fixed typos, minimal changes to py2pdf.
dinu_gherman
parents: 380
diff changeset
    86
of document production. So, to produce a header followed by some text the script uses functions
372
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    87
$header$ and $p$ which take some text and append to a global story list.
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    88
""")
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    89
eg('''
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    90
header("Conclusion")
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    91
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    92
p("""The revamped query engine design in Gadfly 2 supports
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    93
..........
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    94
and integration.""")
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    95
''')
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    96
heading2("""Pythonpoint""")
399
600ebb5a92cf fixed typos.
dinu_gherman
parents: 398
diff changeset
    97
disc("""Andy Robinson has refined the pythonpoint.py script (in $reportlab\\demos\\pythonpoint$)
372
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    98
until it is a really useful script. It takes an input file containing an XML markup
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
    99
and uses an xmllib style parser to map the tags into PDF slides. When run in its own directory
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
   100
pythonpoint.py takes as a default input the file pythonpoint.xml and produces pythonpoint.pdf
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
   101
which is documentation for Pythonpoint! You can also see it in action with an older paper
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
   102
""")
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
   103
eg("""
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
   104
cd reportlab\\demos\\pythonpoint
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
   105
python pythonpoint.py monterey.xml
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
   106
start monterey.pdf
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
   107
""")
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
   108
disc("""
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
   109
Not only is pythonpoint self documenting, but it also demonstrates reportlab and PDF. It uses
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
   110
many features of reportlab (document templates, tables etc).
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
   111
Exotic features of PDF such as fadeins and bookmarks are also shown to good effect. The use of
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
   112
an XML document can be contrasted with the <i>inline</i> style of the gadflypaper demo; the
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
   113
content is completely separate from the formatting
a1a349102580 More demos in appendix
rgbecker
parents: 371
diff changeset
   114
""")