<?xml version="1.0" encoding="iso-8859-1" standalone="no"?> <!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by Andy Robinson (ReportLab Europe Ltd.) --> <!DOCTYPE presentation SYSTEM "../pythonpoint.dtd"> <presentation filename="monterey.pdf"> <stylesheet module="modern" function="getParagraphStyles"/> <!-- sections define a colection of stuff to be drawn on all pages they contain. They must begin with a graphics list --> <section name="Main"> <fixedimage filename="vertpython.gif" height="595" width="144" x="0" y="0"/> <slide title="Cover" id="Slide001" effectname="Wipe"> <!-- put stuff here to be drawn on the page directly --> <frame height="432" x="160" y="72" rightmargin="0" width="600" leftmargin="36"> <para/> <para/> <para/> <para style="Title"> Printing with Python </para> <image filename="lj8100.jpg"/> <para style="BigCentered"> Andy Robinson, Robinson Analytics Ltd. </para> <para style="BigCentered"> O'Reilly Python Conference, Monterey, 24th August 1999 </para> </frame> </slide> <slide title="Background" id="Slide002" effectname="Wipe"> <frame height="432" x="160" y="72" rightmargin="0" width="600" leftmargin="36"> <para style="Heading2"> Background to the project: </para> <para style="Bullet"> London-based consultant and corporate developer </para> <para style="Bullet"> want to do neat Python stuff in the daytime </para> <para style="Bullet"> working for many years on financial modelling </para> <para style="Bullet"> this is one of 6 modules in that system </para> <para style="Bullet"> quickest to deliver, offers very wide benefits </para> <para style="Bullet"> 25% of architecture done, but already very useful </para> <para style="Bullet"> Release early, release often! </para> </frame> </slide> <slide title="Goal" id="Slide003" effectname="Wipe"> <fixedimage filename="vertpython.gif" height="595" width="144" x="0" y="0"/> <frame height="432" x="160" y="72" rightmargin="0" width="600" leftmargin="36"> <para style="Heading2"> Goal: </para> <para style="BodyText"> A Reporting Package on the Next Curve... </para> <para style="Bullet"> Report on objects, not databases </para> <para style="Bullet"> Scalable to million page runs </para> <para style="Bullet"> Light enough to embed in any application </para> <para style="Bullet"> Allow reuse of graphical objects across reports </para> <para style="Bullet"> Open and extensible on several levels </para> <para style="Bullet"> Publication quality </para> <para style="Bullet"> Support all the world's languages - one day </para> </frame> </slide> <slide title="Portable Document Format" id="Slide004" effectname="Wipe"> <frame height="432" x="160" y="72" rightmargin="0" width="600" leftmargin="36"> <para style="Heading2"> Portable Document Format </para> <para style="Italic"> The New PostScript </para> <para style="Bullet"> Free readers on all platforms </para> <para style="Bullet"> Better than paper - view it, email it, print it </para> <para style="Bullet"> 'Final Form' for documents </para> <para style="Bullet"> High end solution - no limits to quality </para> <para style="Italic"> ...but you can't learn it in Notepad! </para> </frame> </slide> <slide title="PDFgen and PIDDLE" id="Slide005" effectname="Wipe"> <frame height="432" x="160" y="72" rightmargin="0" width="600" leftmargin="36"> <para/> <para/> <para style="Title"> PDFgen and PIDDLE </para> </frame> </slide> <slide title="PDFgen layer" id="Slide006" effectname="Wipe"> <frame height="432" x="160" y="72" rightmargin="0" width="600" leftmargin="36"> <para style="Heading2"> Layer One - PDFgen </para> <para style="Bullet"> makes PDF documents from pure Python </para> <para style="Bullet"> wraps up PDF document structure </para> <para style="Bullet"> exposes nice effects - page transitions, outline trees (RSN!) </para> <para style="Bullet"> low level graphics promitives (postscript imaging model) </para> <para style="Bullet"> Fine control of text placement </para> <para style="Bullet"> Supports Asian text </para> <para style="Bullet"> Supports coordinate transformations and clipping </para> <para style="Italic"> ...a foundation for other apps to build on </para> </frame> </slide> <slide title="PDF Image Suport" id="Slide007" effectname="Wipe"> <frame height="432" x="160" y="72" rightmargin="0" width="600" leftmargin="36"> <para style="Heading2"> PDFgen Image Support </para> <para> Python Imaging Library and zlib do all the work - many formats. Images cached (like .pyc files) - very fast builds possible. </para> <image filename="python.gif" width="588" height="200"/> </frame> </slide> <slide title="Layer Two: PIDDLE" id="Slide008" effectname="Wipe"> <frame height="432" x="160" y="72" rightmargin="0" width="600" leftmargin="36"> <para style="Heading2"> Layer Two: PIDDLE </para> <para style="Italic"> Plug In Drawing, Does Little Else </para> <para style="Bullet"> Easy Graphics Library </para> <para style="Bullet"> Abstract Canvas Interface </para> <para style="Bullet"> Pluggable Back Ends </para> <para style="Bullet"> Same code can do viewing and printing </para> <para style="Bullet"> Standard set of test patterns </para> <para style="Bullet"> Uses Python Imaging Library </para> <para style="BodyText"> Back ends includeTkinter, wxPython, Mac, Pythonwin, PDF, PostScript, OpenGL, Adobe Illustrator and PIL. Really easy to add a new one! </para> </frame> </slide> <slide title="Layer Three: PLATYPUS" id="Slide009" effectname="Wipe"> <frame height="432" x="160" y="72" rightmargin="0" width="600" leftmargin="36"> <para style="Heading2"> Layer Three: PLATYPUS </para> <para style="Italic"> "Page Layout And Typography Using Scripts" </para> <para style="BodyText"> Trying to work out the API now. Key Concepts: </para> <para style="Bullet"> Drawable objects - can 'wrap to fit' </para> <para style="Bullet"> Frames on page </para> <para style="Bullet"> Frame consumes from a list of drawables until full </para> <para style="Bullet"> Document Models e.g. SimpleFlowDocument </para> <para style="BodyText"> XSL Flow Object model may be a good target </para> </frame> </slide> <slide title="Drawable Objects" id="Slide010" effectname="Wipe"> <frame height="432" x="160" y="72" rightmargin="0" width="600" leftmargin="36"> <para style="Heading2"> Drawable Objects </para> <para style="BodyText"> Next layer of PIDDLE extensibility. Each draws in its own coodinate system </para> <para style="Bullet"> paragraph, image, table </para> <para style="Bullet"> chart libraries </para> <para style="Bullet"> diagrams </para> <para style="BodyText"> Open Source - let people contribute new ones. Anything you could have in a view can be a new drawable type. </para> </frame> </slide> <slide title="Style Sheets" id="Slide011" effectname="Wipe"> <frame height="432" x="160" y="72" rightmargin="0" width="600" leftmargin="36"> <para style="Heading2"> Style Sheet Driven </para> <para style="BodyText"> Styles use instance inheritance </para> <para style="Bullet"> Paragraph Styles - Style Sheet Compulsory! </para> <para style="Bullet"> Text Styles within a paragraph </para> <para style="Bullet"> Table and Table Cell Styles </para> </frame> </slide> <slide title="Vision" id="Slide012" effectname="Wipe"> <frame height="432" x="160" y="72" rightmargin="0" width="600" leftmargin="36"> <para style="Heading2"> Vision </para> <para style="Bullet"> XML to PDF in one step </para> <para style="Bullet"> Publish to web and print from same source </para> <para style="Bullet"> Financial and Scientific reporting tool </para> <para style="Bullet"> Embedded reporting engine </para> <para style="Bullet"> Volume reporting tool for business </para> </frame> </slide> <slide title="PythonPoint" id="Slide013" effectname="Wipe"> <frame height="432" x="160" y="72" rightmargin="0" width="600" leftmargin="36"> <para style="Heading2"> PythonPoint </para> <para style="Italic"> How I made this presentation... </para> </frame> </slide> </section> </presentation>