summaryrefslogtreecommitdiff
path: root/bin/reportlab/docs/userguide/ch3_pdffeatures.py
diff options
context:
space:
mode:
Diffstat (limited to 'bin/reportlab/docs/userguide/ch3_pdffeatures.py')
-rw-r--r--bin/reportlab/docs/userguide/ch3_pdffeatures.py271
1 files changed, 0 insertions, 271 deletions
diff --git a/bin/reportlab/docs/userguide/ch3_pdffeatures.py b/bin/reportlab/docs/userguide/ch3_pdffeatures.py
deleted file mode 100644
index 36fe8b8be07..00000000000
--- a/bin/reportlab/docs/userguide/ch3_pdffeatures.py
+++ /dev/null
@@ -1,271 +0,0 @@
-#Copyright ReportLab Europe Ltd. 2000-2004
-#see license.txt for license details
-#history http://www.reportlab.co.uk/cgi-bin/viewcvs.cgi/public/reportlab/trunk/reportlab/docs/userguide/ch3_pdffeatures.py
-from reportlab.tools.docco.rl_doc_utils import *
-
-
-heading1("Exposing PDF Special Capabilities")
-disc("""PDF provides a number of features to make electronic
- document viewing more efficient and comfortable, and
- our library exposes a number of these.""")
-
-heading2("Forms")
-disc("""The Form feature lets you create a block of graphics and text
- once near the start of a PDF file, and then simply refer to it on
- subsequent pages. If you are dealing with a run of 5000 repetitive
- business forms - for example, one-page invoices or payslips - you
- only need to store the backdrop once and simply draw the changing
- text on each page. Used correctly, forms can dramatically cut
- file size and production time, and apparently even speed things
- up on the printer.
- """)
-disc("""Forms do not need to refer to a whole page; anything which
- might be repeated often should be placed in a form.""")
-disc("""The example below shows the basic sequence used. A real
- program would probably define the forms up front and refer to
- them from another location.""")
-
-
-eg(examples.testforms)
-
-heading2("Links and Destinations")
-disc("""PDF supports internal hyperlinks. There is a very wide
- range of link types, destination types and events which
- can be triggered by a click. At the moment we just
- support the basic ability to jump from one part of a document
- to another, and to control the zoom level of the window after
- the jump. The bookmarkPage method defines a destination that
- is the endpoint of a jump.""")
-#todo("code example here...")
-
-eg("""
- canvas.bookmarkPage(name,
- fitType="Fit",
- left=None,
- top=None,
- bottom=None,
- right=None,
- zoom=None
- )
-""")
-disc("""
-By default the $bookmarkPage$ method defines the page itself as the
-destination. After jumping to an endpoint defined by bookmarkPage,
-the PDF browser will display the whole page, scaling it to fit the
-screen:""")
-
-eg("""canvas.bookmarkPage(name)""")
-
-disc("""The $bookmarkPage$ method can be instructed to display the
-page in a number of different ways by providing a $fitType$
-parameter.""")
-
-eg("")
-
-t = Table([
- ['fitType','Parameters Required','Meaning'],
- ['Fit',None,'Entire page fits in window (the default)'],
- ['FitH','top','Top coord at top of window, width scaled to fit'],
- ['FitV','left','Left coord at left of window, height scaled to fit'],
- ['FitR','left bottom right top','Scale window to fit the specified rectangle'],
- ['XYZ','left top zoom','Fine grained control. If you omit a parameter\nthe PDF browser interprets it as "leave as is"']
- ])
-t.setStyle(TableStyle([
- ('FONT',(0,0),(-1,1),'Times-Bold',10,12),
- ('VALIGN',(0,0),(-1,-1),'MIDDLE'),
- ('INNERGRID', (0,0), (-1,-1), 0.25, colors.black),
- ('BOX', (0,0), (-1,-1), 0.25, colors.black),
- ]))
-
-getStory().append(t)
-caption("""Table <seq template="%(Chapter)s-%(Table+)s"/> - Required attributes for different fit types""")
-
-disc("""
-Note : $fitType$ settings are case-sensitive so $fitType="FIT"$ is invalid$
-""")
-
-
-disc("""
-Sometimes you want the destination of a jump to be some part of a page.
-The $FitR$ fitType allows you to identify a particular rectangle, scaling
-the area to fit the entire page.
-""")
-
-disc("""
-To set the display to a particular x and y coordinate of the page and to
-control the zoom directly use fitType="XYZ".
-""")
-
-eg("""
-canvas.bookmarkPage('my_bookmark',fitType="XYZ",left=0,top=200)
-""")
-
-
-
-disc("""
-This destination is at the leftmost of the page with the top of the screen
-at position 200. Because $zoom$ was not set the zoom remains at whatever the
-user had it set to.
-""")
-
-eg("""
-canvas.bookmarkPage('my_bookmark',fitType="XYZ",left=0,top=200,zoom=2)
-""")
-
-disc("""This time zoom is set to expand the page 2X its normal size.""")
-
-disc("""
-Note : Both $XYZ$ and $FitR$ fitTypes require that their positional parameters
-($top, bottom, left, right$) be specified in terms of the default user space.
-They ignore any geometric transform in effect in the canvas graphic state.
-""")
-
-
-
-pencilnote()
-
-disc("""
-<i>Note:</i> Two previous bookmark methods are supported but deprecated now
-that bookmarkPage is so general. These are $bookmarkHorizontalAbsolute$
-and $bookmarkHorizontal$.
-""")
-
-heading3("Defining internal links")
-eg("""
- canvas.linkAbsolute(contents, destinationname, Rect=None, addtopage=1, name=None, **kw)
- """)
-
-disc("""
- The $linkAbsolute$ method defines a starting point for a jump. When the user
- is browsing the generated document using a dynamic viewer (such as Acrobat Reader)
- when the mouse is clicked when the pointer is within the rectangle specified
- by $Rect$ the viewer will jump to the endpoint associated with $destinationname$.
- As in the case with $bookmarkHorizontalAbsolute$ the rectangle $Rect$ must be
- specified in terms of the default user space. The $contents$ parameter specifies
- a chunk of text which displays in the viewer if the user left-clicks on the region.
-""")
-
-disc("""
-The rectangle $Rect$ must be specified in terms of a tuple ^(x1,y1,x2,y2)^ identifying
-the lower left and upper right points of the rectangle in default user space.
-""")
-
-disc("""
-For example the code
-""")
-
-eg("""
- canvas.bookmarkPage("Meaning_of_life")
-""")
-
-disc("""
-defines a location as the whole of the current page with the identifier
-$Meaning_of_life$. To create a rectangular link to it while drawing a possibly
-different page, we would use this code:
-""")
-
-eg("""
- canvas.linkAbsolute("Find the Meaning of Life", "Meaning_of_life",
- (inch, inch, 6*inch, 2*inch))
-""")
-
-disc("""
-By default during interactive viewing a rectangle appears around the
-link. Use the keyword argument $Border='[0 0 0]'$ to
-suppress the visible rectangle around the during viewing link.
-For example
-""")
-
-eg("""
- canvas.linkAbsolute("Meaning of Life", "Meaning_of_life",
- (inch, inch, 6*inch, 2*inch), Border='[0 0 0]')
-""")
-
-
-heading2("Outline Trees")
-disc("""Acrobat Reader has a navigation page which can hold a
- document outline; it should normally be visible when you
- open this guide. We provide some simple methods to add
- outline entries. Typically, a program to make a document
- (such as this user guide) will call the method
- $canvas.addOutlineEntry(^self, title, key, level=0,
- closed=None^)$ as it reaches each heading in the document.
- """)
-
-disc("""^title^ is the caption which will be displayed in
- the left pane. The ^key^ must be a string which is
- unique within the document and which names a bookmark,
- as with the hyperlinks. The ^level^ is zero - the
- uppermost level - unless otherwise specified, and
- it is an error to go down more than one level at a time
- (for example to follow a level 0 heading by a level 2
- heading). Finally, the ^closed^ argument specifies
- whether the node in the outline pane is closed
- or opened by default.""")
-
-disc("""The snippet below is taken from the document template
- that formats this user guide. A central processor looks
- at each paragraph in turn, and makes a new outline entry
- when a new chapter occurs, taking the chapter heading text
- as the caption text. The key is obtained from the
- chapter number (not shown here), so Chapter 2 has the
- key 'ch2'. The bookmark to which the
- outline entry points aims at the whole page, but it could
- as easily have been an individual paragraph.
- """)
-
-eg("""
-#abridged code from our document template
-if paragraph.style == 'Heading1':
- self.chapter = paragraph.getPlainText()
- key = 'ch%d' % self.chapterNo
- self.canv.bookmarkPage(key)
- self.canv.addOutlineEntry(paragraph.getPlainText(),
- key, 0, 0)
- """)
-
-heading2("Page Transition Effects")
-
-
-eg("""
- canvas.setPageTransition(self, effectname=None, duration=1,
- direction=0,dimension='H',motion='I')
- """)
-
-disc("""
-The $setPageTransition$ method specifies how one page will be replaced with
-the next. By setting the page transition effect to "dissolve" for example
-the current page will appear to melt away when it is replaced by the next
-page during interactive viewing. These effects are useful in spicing up
-slide presentations, among other places.
-Please see the reference manual for more detail on how to use this method.
-""")
-
-heading2("Internal File Annotations")
-
-eg("""
- canvas.setAuthor(name)
- canvas.setTitle(title)
- canvas.setSubject(subj)
- """)
-
-disc("""
-These methods have no automatically seen visible effect on the document.
-They add internal annotations to the document. These annotations can be
-viewed using the "Document Info" menu item of the browser and they also can
-be used as a simple standard way of providing basic information about the
-document to archiving software which need not parse the entire
-file. To find the annotations view the $*.pdf$ output file using a standard
-text editor (such as $notepad$ on MS/Windows or $vi$ or $emacs$ on unix) and look
-for the string $/Author$ in the file contents.
-""")
-
-eg(examples.testannotations)
-
-disc("""
-If you want the subject, title, and author to automatically display
-in the document when viewed and printed you must paint them onto the
-document like any other text.
-""")
-
-illust(examples.annotations, "Setting document internal annotations")