docs/userguide/ch1_intro.py
author andy_robinson
Mon, 10 Jul 2000 12:00:17 +0000
changeset 340 f3f2af39e7d7
parent 337 76141601ec1f
child 344 dd6e41c2b0ed
permissions -rw-r--r--
More work on chapter 1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
337
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
     1
#ch1_intro
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
     2
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
     3
from genuserguide import *
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
     4
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
     5
title("ReportLab User Guide")
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
     6
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
     7
todo("""To-do items to authors, or points under discussion,
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
     8
appear in italics like this.""")
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
     9
todo("")
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    10
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    11
########################################################################
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    12
#
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    13
#               Chapter 1
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    14
#
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    15
########################################################################
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    16
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    17
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    18
heading1("Introduction")
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    19
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    20
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    21
heading2("About this document")
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    22
disc("""This document is intended to be a conversational introduction
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    23
to the use of the ReportLab packages.  Some previous programming experience
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    24
is presumed and familiarity with the Python Programming language is
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    25
recommended.  If you are new to Python, we tell you in the next section
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    26
where to go for orientation.
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    27
""")
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    28
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    29
disc("""After working your way throught this, you should be ready to begin
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    30
writing programs to produce sophisticated reports.
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    31
""")
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    32
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    33
disc("""In this chapter, we will cover the groundwork:""")
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    34
bullet("What is ReportLab all about, and why should I use it?")
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    35
bullet("What is Python?")
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    36
bullet("How do I get everything set up and running?")
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    37
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    38
todo("""
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    39
Be warned! This document is in a <em>very</em> preliminary form.  We need
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    40
your help to make sure it is complete and helpful.  Please send any
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    41
feedback to our mailing list, reportlab-users@egroups.com.
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    42
""")
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    43
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    44
heading2("What is ReportLab all about")
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    45
disc("""The ReportLab library is the foundation for a new generation of reporting
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    46
tools.  It was written out of frustration with the limitations of conventional
340
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    47
approaches to reporting and database publishing, and in the realisation that
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    48
tools such as PDF and Python made a better approach possible.
337
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    49
""")
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    50
340
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    51
disc("""Most existing reporting tools suffer from a number of constraints:""")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    52
bullet("They assume the data is coming from a relational database")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    53
bullet("They impose constraints on the output - you have to work the way they want")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    54
bullet("""They go to the printer; getting electronic documents out requires
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    55
extra products such as Acrobat Distiller and a more complex workflow""")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    56
bullet("They usually run on Windows")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    57
bullet("""They don't give you any way to re-use visual elements across a family
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    58
of reports""")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    59
bullet("They are slow!")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    60
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    61
disc("""For these reasons, companies doing high-end database publishing or
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    62
high-volume customer documents have generally selected expensive proprietary
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    63
tools which use scripting languages to assemble data from various input
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    64
files and to provide input to some formatter.  Controlling the whole
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    65
system tends to involve export scripts, shell scripts and administrative
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    66
tools.  These systems are basically trying to do what Python was born
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    67
to do - gluing systems together and organising data.  And the languages
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    68
the vendors create generally suck.  """)
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    69
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    70
disc("""It became clear to us that putting the formatting functionality
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    71
into a general-purpose language such as Python was a much better
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    72
approach.  This would permit programmers to acquire data from anywhere
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    73
and work in a pleasant language.""")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    74
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    75
disc("""The second realisation was that PDF itself was the natural
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    76
target, rather than any operating system's print driver.  It is
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    77
the only truly global format for electronic document storage.""")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    78
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    79
heading2("Oh dear, I'm writing a load of crap.  I can't check this in!")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    80
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    81
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
    82
337
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    83
heading2("What is Python?")
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    84
disc("""<para lindent=+36>
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    85
<b>python</b>, (<i>Gr. Myth.</i> An enormous serpent that lurked in the cave of Mount Parnassus and was slain
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    86
by Apollo) <b>1.</b> any of a genus of large, non-poisonous snakes of Asia, Africa and Australia that
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    87
suffocate their prey to death. <b>2.</b> popularly, any large snake that crushes its prey. <b>3.</b> totally awesome,
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    88
bitchin' language that will someday crush the $'s out of certain <i>other</i> so-called VHLL's ;-)</para>
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    89
""")
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    90
disc("""
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    91
Python is an <i>interpreted, interactive, object-oriented</i> programming language. It is often compared to Tcl, Perl,
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    92
Scheme or Java. 
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    93
""")
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    94
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    95
disc("""
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    96
Python combines remarkable power with very clear syntax. It has modules, classes, exceptions, very high level
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    97
dynamic data types, and dynamic typing. There are interfaces to many system calls and libraries, as well as to
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    98
various windowing systems (X11, Motif, Tk, Mac, MFC). New built-in modules are easily written in C or C++.
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
    99
Python is also usable as an extension language for applications that need a programmable interface. 
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
   100
""")
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
   101
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
   102
disc("""
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
   103
The Python implementation is portable: it runs on many brands of UNIX, on Windows, DOS, OS/2, Mac, Amiga... If
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
   104
your favorite system isn't listed here, it may still be supported, if there's a C compiler for it. Ask around on
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
   105
comp.lang.python -- or just try compiling Python yourself. 
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
   106
""")
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
   107
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
   108
disc("""
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
   109
Python is copyrighted but <b>freely usable and distributable, even for commercial use</b>. 
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
   110
""")
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
   111
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
   112
heading2("Installation and Setup")
340
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   113
heading3("Installation for experts")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   114
disc("""First of all, we'll give you the high-speed version for experienced
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   115
Python developers:""")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   116
disc("1.  Install Python 1.5.1 or later")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   117
disc("""2.  If you want to produce compressed PDF files (recommended),
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   118
check zlib is installed.""")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   119
disc("""3.  If you want to work with bitmap images, install and
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   120
test the Python Imaging Library""")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   121
disc("""4.  Unzip the reportlab package (reportlab.zip
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   122
or reportlab.tgz) into a directory on your path""")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   123
disc("")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   124
disc("""If you have any problems, check the 'Detailed Instructions' section below""")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   125
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   126
heading3("A note on available versions")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   127
disc("""The $reportlab$
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   128
library can be found at ftp.reportlab.com in the top-level directory.
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   129
Each successive version is stored in both zip and tgz format, but the
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   130
contents are identical.  Versions are numbered:  ReportLab_0_85.zip,
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   131
ReportLab_0_86.zip and so on.  The latest stable version is also
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   132
available as just 'reportlab.zip' (or 'reportlab.tgz'), which
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   133
is actually a symbolic link to the latest numbered version.""")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   134
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   135
disc("""We also make nightly snapshots of our CVS tree available.  In
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   136
general, these are very stable because we have a comprehensive test
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   137
suite that all developers can run at any time.  What happens is that
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   138
new modules and functions within the overall package may be in a state
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   139
of flux, but stable features can be assumed to be stable.  If a bug is
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   140
reported and fix, we assume people who need the fix in a hurry will
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   141
get $current.zip$""")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   142
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   143
heading2("Detailed Instructions")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   144
disc("""This section assumes you
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   145
don't know much about Python.  We cover all of the steps for three
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   146
common platforms, including how to verify that each one is complete.
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   147
While this may seem like a long list, everything takes 5 minutes if
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   148
you have the binaries at hand.""")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   149
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   150
heading3("Windows users:")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   151
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   152
restartList()
337
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
   153
340
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   154
list("""Get and install Python from http://www.python.org/.
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   155
Follow the links to 'Download' and get the latest official
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   156
version.  Currently this is Python 1.5.2 in the file 'py152.exe'.
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   157
It will prompt you for a directory location, which by default is
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   158
$C:\Program Files\Python$. This works, but we recommend entering
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   159
$C:\Python15$.  Python 1.6 will be out shortly and will adopt
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   160
C:\Python16 as its default; and quite often one wants to CD into the
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   161
Python directory from a command prompt, so a path without spaces saves
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   162
a lot of typing!  After installing, you should be able to run the
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   163
'Python (command line)' option from the Start Menu.""")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   164
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   165
list("""If on Win9x, we recommend either copying python.exe to a
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   166
location on your path, or adding your Python directory to the path, so
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   167
that you can execute Python from any directory.""")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   168
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   169
list("""If you want a nice editing environment or might need to
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   170
access Microsoft applications, get the Pythonwin add-on package from
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   171
the same page.  Once this is installed, you can start Pythonwin from
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   172
the Start Menu and get a GUI application.""")
337
76141601ec1f Broke out chapter 1
andy_robinson
parents:
diff changeset
   173
340
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   174
disc("""The next step is optional and only necessary if you want to
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   175
include images in your reports; it can also be carried out later.""")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   176
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   177
list("Install the Python Imaging Library.  (todo:  make up a bundle that works)")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   178
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   179
list("Add the DLLs to your Python\DLLs directory")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   180
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   181
list("""Add this directory to your path by creating …To verify,
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   182
start the command line Python and type "import Image", followed by
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   183
"import _imaging".  If you see no error messages, all is well.""")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   184
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   185
list("""Now for reportlab itself.  Unzip the archive straight into
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   186
your Python directory; it creates a subdirectory named
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   187
"reportlab".""")
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   188
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   189
list("""Open up a DOS prompt and CD to
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   190
"..\reportlab\pdfgen\test".  On NT, enter "testpdfgen.py"; on
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   191
Win9x, enter "python testpdfgen.py".  After a couple of seconds,
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   192
the script completes and the file testpdfgen.pdf should be ready for
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   193
viewing.  If PIL is installed, there should be a "Python Powered"
f3f2af39e7d7 More work on chapter 1
andy_robinson
parents: 337
diff changeset
   194
image on the last page.  You’re done!""")