c# pdf to tiff itextsharp : Add signature pdf online control software system azure windows .net console reportlab-userguide0-part1998

ReportLab PDF Library
User Guide
ReportLab Version 3.3.8
Document generated on 2016/05/24 20:20:53
Thornton House
Thornton Road
Wimbledon
London SW19 4NG, UK
Add signature pdf online - C# PDF File Permission Library: add, remove, update PDF file permission in C#.net, ASP.NET, MVC, WPF
Tell C# users how to set PDF file permissions, like printing, copying, modifying, extracting, annotating, form filling, etc
adding signature to pdf file; add signature pdf online
Add signature pdf online - VB.NET PDF File Permission Library: add, remove, update PDF file permission in vb.net, ASP.NET, MVC, WPF
VB.NET Tutorial for How to Set PDF File Access Permissions Using XDoc.PDF for .NET
sign pdf online; adding signature to pdf
Table of contents
2
Table of contents
6
Chapter 1 Introduction
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 6
1.1 About this document
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 6
1.2 What is the ReportLab PDF Library?
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 7
1.3 ReportLab's commercial software
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 7
1.4 What is Python?
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 7
1.5 Acknowledgements
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 8
1.6 Installation and Setup
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 8
1.7 Getting Involved
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 8
1.8 Site Configuration
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 9
1.9 Learning More About Python
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 9
1.10 Goals for the 3.x release series
10
Chapter 2 Graphics and Text with pdfgen
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 10
2.1 Basic Concepts
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 10
2.2 More about the Canvas
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 11
2.3 Drawing Operations
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 12
2.4 The tools: the "draw" operations
 .  .  .  .  .  .  .  .  .  .  .  .  .  . 14
2.5 The toolbox: the "state change" operations
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 16
2.6 Other canvas methods.
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 16
2.7 Coordinates (default user space)
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 21
2.8 Colors
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 24
2.9 Color space checking
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 24
2.10 Color Overprinting
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 26
2.11 Standard fonts and text objects
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 28
2.12 Text object methods
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 34
2.13 Paths and Lines
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 38
2.14 Rectangles, circles, ellipses
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 39
2.15 Bezier curves
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 41
2.16 Path object methods
 .  .  .  .  .  .  .  .  .  . 46
2.17 Further Reading: The ReportLab Graphics Library
47
Chapter 3 Fonts and encodings
 .  .  .  .  .  .  .  .  .  . 47
3.1 Unicode and UTF8 are the default input encodings
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 47
3.2 Automatic output font substitution
User Guide
Table of contents
Page 2
C# PDF Digital Signature Library: add, remove, update PDF digital
By using it in your C# application, you can easily do following things. Add a signature or an empty signature field in any PDF file page.
pdf signature field; add signature pdf
VB.NET PDF Digital Signature Library: add, remove, update PDF
By using it in your VB.NET application, you can easily do following things. Add a signature or an empty signature field in any PDF file page.
add signature to pdf acrobat reader; add signature block to pdf
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 48
3.3 Using non-standard Type 1 fonts
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 49
3.4 Standard Single-Byte Font Encodings
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 51
3.5 TrueType Font Support
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 52
3.6 Asian Font Support
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 53
3.7 RenderPM tests
54
Chapter 4 Exposing PDF Special Capabilities
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 54
4.1 Forms
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 54
4.2 Links and Destinations
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 56
4.3 Outline Trees
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 56
4.4 Page Transition Effects
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 56
4.5 Internal File Annotations
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 57
4.6 Encryption
59
Chapter 5 PLATYPUS - Page Layout and Typography Using Scripts
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 59
5.1 Design Goals
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 60
5.2 Getting started
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 61
5.3 Flowables
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 61
5.4 Guidelines for flowable positioning
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 62
5.5 Frames
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 63
5.6 Documents and Templates
66
Chapter 6 Paragraphs
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 66
6.1 Using Paragraph Styles
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 71
6.2 Paragraph XML Markup Tags
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 72
6.3 Intra-paragraph markup
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 75
6.4 Bullets and Paragraph Numbering
77
Chapter 7 Tables and TableStyles
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 77
7.1 Table User Methods
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 78
7.2 TableStyle
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 78
7.3 TableStyle User Methods
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 78
7.4 TableStyle Commands
84
Chapter 8 Programming Flowables
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 84
8.1 DocAssign(self, var, expr, life='forever')
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 84
8.2 DocExec(self, stmt, lifetime='forever')
84
8.3 DocPara(self, expr, format=None, style=None, klass=None, escape=True)
User Guide
Table of contents
Page 3
C# HTML5 Viewer: Load, View, Convert, Annotate and Edit Dicom
can convert Dicom image to PDF (.pdf) online and convert C# .NET provide several utility signature buttons, which can help users to add text signatures
create pdf signature; adding signature to pdf document
C# HTML5 Viewer: Load, View, Convert, Annotate and Edit Raster
to Tiff (.tif, .tiff) online, create PDF document from HTML5 Viewer for C# .NET offers signature features, which allows users to add text signatures to
add signature image to pdf; adding signature to pdf form
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 84
8.4 DocAssert(self, cond, format=None)
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 84
8.5 DocIf(self, cond, thenBlock, elseBlock=[])
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 84
8.6 DocWhile(self, cond, whileBlock)
85
Chapter 9 Other Useful Flowables
 .  .  . 85
9.1 Preformatted(text, style, bulletText=None, dedent=0,
maxLineLength=None, splitChars=None, newLineChars=None)
 . 85
9.2 XPreformatted(text, style, bulletText=None, dedent=0, frags=None)
 .  .  .  .  .  .  .  .  .  .  .  .  .  . 86
9.3 Image(filename, width=None, height=None)
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 87
9.4 Spacer(width, height)
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 87
9.5 PageBreak()
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 87
9.6 CondPageBreak(height)
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 87
9.7 KeepTogether(flowables)
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 87
9.8 TableOfContents()
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 88
9.9 SimpleIndex()
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 89
9.10 ListFlowable(),ListItem()
91
Chapter 10 Writing your own Flowable Objects
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 91
10.1 A very simple Flowable
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 92
10.2 Modifying a Built in Flowable
94
Chapter 11 Graphics
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 94
11.1 Introduction
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 94
11.2 General Concepts
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 97
11.3 Charts
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 99
11.4 Labels
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 100
11.5 Axes
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 104
11.6 Bar Charts
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 107
11.7 Line Charts
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 108
11.8 Line Plots
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 110
11.9 Pie Charts
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 114
11.10 Legends
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 115
11.11 Shapes
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 120
11.12 Widgets
126
Appendix A ReportLab Demos
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 126
A.1 Odyssey
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 126
A.2 Standard Fonts and Colors
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 126
A.3 Py2pdf
User Guide
Table of contents
Page 4
C# PDF insert image Library: insert images into PDF in C#.net, ASP
to freeware download and online C#.NET class source code. How to insert and add image, picture, digital photo, scanned signature or logo into PDF document page
pdf signatures; add signature pdf preview
.NET PDF SDK - Description of All PDF Processing Control Feastures
XDoc.PDF SDK for .NET. View,Convert,Edit,Process,Protect,SignPDF Files. Download Free Trial View Online Add signature image to PDF file. PDF Hyperlink Edit.
add signature field to pdf; add signature box to pdf
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 127
A.4 Gadflypaper
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 127
A.5 Pythonpoint
User Guide
Table of contents
Page 5
VB.NET PDF insert image library: insert images into PDF in vb.net
Import graphic picture, digital photo, signature and logo into Add images to any selected PDF page in VB to PDF in preview without adobe PDF control installed.
pdf signature; pdf converter sign in
C# WPF Viewer: Load, View, Convert, Annotate and Edit Tiff
Editors, C# ASP.NET Document Viewer, C# Online Dicom Viewer, C# Online Jpeg images convert Tiff file to PDF, add annotations to Tiff, Create signature on tiff
export pdf to word sign in; add jpg signature to pdf
Chapter 1 Introduction
1.1 About this document
This document is an introduction to the ReportLab PDF library. Some previous programming experience is
presumed and familiarity with the Python Programming language is recommended. If you are new to Python,
we tell you in the next section where to go for orientation.
This manual does not cover 100% of the features, but should explain all the main concepts and help you get
started, and point you at other learning resources. After working your way through this, you should be ready
to begin writing programs to produce sophisticated reports.
In this chapter, we will cover the groundwork:
·
What is ReportLab all about, and why should I use it?
·
What is Python?
·
How do I get everything set up and running?
We need your help to make sure this manual is complete and helpful. Please send any feedback to our user
mailing list, which is signposted from www.reportlab.com.
1.2 What is the ReportLab PDF Library?
This is a software library that lets you directly create documents in Adobe's Portable Document Format
(PDF) using the Python programming language. It also creates charts and data graphics in various bitmap and
vector formats as well as PDF.
PDF is the global standard for electronic documents. It supports high-quality printing yet is totally portable
across platforms, thanks to the freely available Acrobat Reader. Any application which previously generated
hard copy reports or driving a printer can benefit from making PDF documents instead; these can be
archived, emailed, placed on the web, or printed out the old-fashioned way. However, the PDF file format is
a complex indexed binary format which is impossible to type directly. The PDF format specification is more
than 600 pages long and PDF files must provide precise byte offsets -- a single extra character placed
anywhere in a valid PDF document can render it invalid. This makes it harder to generate than HTML.
Most of the world's PDF documents have been produced by Adobe's Acrobat tools, or rivals such as JAWS
PDF Creator, which act as 'print drivers'. Anyone wanting to automate PDF production would typically use a
product like Quark, Word or Framemaker running in a loop with macros or plugins, connected to Acrobat.
Pipelines of several languages and products can be slow and somewhat unwieldy.
The ReportLab library directly creates PDF based on your graphics commands. There are no intervening
steps. Your applications can generate reports extremely fast - sometimes orders of magnitude faster than
traditional report-writing tools. This approach is shared by several other libraries - PDFlib for C, iText for
Java, iTextSharp for .NET and others. However, The ReportLab library differs in that it can work at much
higher levels, with a full featured engine for laying out documents complete with tables and charts.
In addition, because you are writing a program in a powerful general purpose language, there are no
restrictions at all on where you get your data from, how you transform it, and the kind of output you can
create. And you can reuse code across whole families of reports.
The ReportLab library is expected to be useful in at least the following contexts:
·
Dynamic PDF generation on the web
·
High-volume corporate reporting and database publishing
·
An embeddable print engine for other applications, including a 'report language' so that users
can customize their own reports. This is particularly relevant to cross-platform apps which
cannot rely on a consistent printing or previewing API on each operating system.
·
A 'build system' for complex documents with charts, tables and text such as management
accounts, statistical reports and scientific papers
·
Going from XML to PDF in one step
User Guide
Chapter 1 Introduction
Page 6
C# WinForms Viewer: Load, View, Convert, Annotate and Edit Tiff
Document Viewer, C# Online Dicom Viewer, C# Online Jpeg images preview, such as convert Tiff file to PDF, add annotations to Tiff, Create signature on tiff
adding a signature to a pdf form; pdf sign in
XDoc.HTML5 Viewer for .NET, All Mature Features Introductions
NET developers to search text-based documents, like PDF, Microsoft Office Word NET document and image viewer allows users to add various annotations Signature.
adding a signature to a pdf; adding a signature to a pdf file
1.3 ReportLab's commercial software
The ReportLab library forms the foundation of our commercial solution for PDF generation, Report Markup
Language (RML). This is available for evaluation on our web site with full documentation. We believe that
RML is the fastest and easiest way to develop rich PDF workflows. You work in a markup language at a
similar level to HTML, using your favorite templating system to populate an RML document; then call our
rml2pdf API function to generate a PDF. It's what ReportLab staff use to build all of the solutions you can
see on reportlab.com. Key differences:
·
Fully documented with two manuals, a formal specification (the DTD) and extensive
self-documenting tests. (By contrast, we try to make sure the open source documentation isn't
wrong, but we don't always keep up with the code)
·
Work in high-level markup rather than constructing graphs of Python objects
·
Requires no Python expertise - your colleagues may thank you after you've left!'
·
Support for vector graphics and inclusion of other PDF documents
·
Many more useful features expressed with a single tag, which would need a lot of coding in the
open source package
·
Commercial support is included
We ask open source developers to consider trying out RML where it is appropriate. You can register on our
site and try out a copy before buying. The costs are reasonable and linked to the volume of the project, and
the revenue helps us spend more time developing this software.
1.4 What is Python?
Python is an interpreted, interactive, object-oriented programming language. It is often compared to Tcl,
Perl, Scheme or Java.
Python combines remarkable power with very clear syntax. It has modules, classes, exceptions, very high
level dynamic data types, and dynamic typing. There are interfaces to many system calls and libraries, as
well as to various windowing systems (X11, Motif, Tk, Mac, MFC). New built-in modules are easily written
in C or C++. Python is also usable as an extension language for applications that need a programmable
interface.
Python is as old as Java and has been growing steadily in popularity for years; since our library first came out
it has entered the mainstream. Many ReportLab library users are already Python devotees, but if you are not,
we feel that the language is an excellent choice for document-generation apps because of its expressiveness
and ability to get data from anywhere.
Python is copyrighted but freely usable and distributable, even for commercial use.
1.5 Acknowledgements
Many people have contributed to ReportLab. We would like to thank in particular (in alphabetical order):
Albertas Agejevas, Alex Buck, Andre Reitz, Andrew Cutler, Andrew Mercer, Ben Echols, Benjamin Dumke,
Benn B, Chad Miller, Chris Buergi, Chris Lee, Christian Jacobs, Dinu Gherman, Edward Greve, Eric
Johnson, Felix Labrecque, Fubu @ bitbucket, Gary Poster, Germán M. Bravo, Guillaume Francois, Hans
Brand, Henning Vonbargen, Hosam Aly, Ian Stevens, James Martin-Collar, Jeff Bauer, Jerome Alet, Jerry
Casiano, Jorge Godoy, Keven D Smith, Kyle MacFarlane, Magnus Lie Hetland, Marcel Tromp, Marius
Gedminas, Mark de Wit, Matthew Duggan, Matthias Kirst, Matthias Klose, Max M, Michael Egorov,
Michael Spector, Mike Folwell, Mirko Dziadzka, Moshe Wagner, Nate Silva, Paul McNett, Peter Johnson,
PJACock, Publio da Costa Melo, Randolph Bentson, Robert Alsina, Robert Hölzl, Robert Kern, Ron Peleg,
Ruby Yocum, Simon King, Stephan Richter, Steve Halasz, Stoneleaf @ bitbucket, T Blatter, Tim Roberts,
Tomasz Swiderski, Ty Sarna, Volker Haas, Yoann Roman, and many more.
Special thanks go to Just van Rossum for his valuable assistance with font technicalities.
Moshe Wagner and Hosam Aly deserve a huge thanks for contributing to the RTL patch, which is not yet on
the trunk.
User Guide
Chapter 1 Introduction
Page 7
Marius Gedminas deserves a big hand for contributing the work on TrueType fonts and we are glad to
include these in the toolkit. Finally we thank Michal Kosmulski for the DarkGarden font for and Bitstream
Inc. for the Vera fonts.
1.6 Installation and Setup
To avoid duplication, the installation instructions are kept in the README file in our distribution, which can
be viewed online at http://bitbucket.org/rptlab/reportlab/
This release (3.0) of ReportLab requires Python versions 2.7, 3.3 or higher. If you need to use Python 2.5 or
2.6, please use the latest ReportLab 2.x package.
1.7 Getting Involved
ReportLab is an Open Source project. Although we are a commercial company we provide the core PDF
generation sources freely, even for commercial purposes, and we make no income directly from these
modules. We also welcome help from the community as much as any other Open Source project. There are
many ways in which you can help:
·
General feedback on the core API. Does it work for you? Are there any rough edges? Does
anything feel clunky and awkward?
·
New objects to put in reports, or useful utilities for the library. We have an open standard for
report objects, so if you have written a nice chart or table class, why not contribute it?
·
Snippets and Case Studies: If you have produced some nice output, register online on
http://www.reportlab.com and submit a snippet of your output (with or without
scripts). If ReportLab solved a problem for you at work, write a little 'case study' and submit it.
And if your web site uses our tools to make reports, let us link to it. We will be happy to display
your work (and credit it with your name and company) on our site!
·
Working on the core code: we have a long list of things to refine or to implement. If you are
missing some features or just want to help out, let us know!
The first step for anyone wanting to learn more or get involved is to join the mailing list. To Subscribe visit
http://two.pairlist.net/mailman/listinfo/reportlab-users. From there you can also
browse through the group's archives and contributions. The mailing list is the place to report bugs and get
support.
The code now lives on BitBucket (http://bitbucket.org/rptlab/reportlab/) in a Mercurial
repository, along with an issue tracker and wiki. Everyone should feel free to contribute, but if you are
working actively on some improvements or want to draw attention to an issue, please use the mailing list to
let us know.
1.8 Site Configuration
There are a number of options which most likely need to be configured globally for a site. The python script
module reportlab/rl_config.py may be edited to change the values of several important sitewide
properties.
·
verbose: set to integer values to control diagnostic output.
·
shapeChecking: set this to zero to turn off a lot of error checking in the graphics modules
·
defaultEncoding: set this to WinAnsiEncoding or MacRomanEncoding.
·
defaultPageSize: set this to one of the values defined in reportlab/lib/pagesizes.py; as delivered
it is set to pagesizes.A4; other values are pagesizes.letter etc.
·
defaultImageCaching: set to zero to inhibit the creation of .a85 files on your hard-drive. The
default is to create these preprocessed PDF compatible image files for faster loading
·
T1SearchPath: this is a python list of strings representing directories that may be queried for
information on Type 1 fonts
·
TTFSearchPath: this is a python list of strings representing directories that may be queried for
information on TrueType fonts
·
CMapSearchPath: this is a python list of strings representing directories that may be queried for
information on font code maps.
User Guide
Chapter 1 Introduction
Page 8
·
showBoundary: set to non-zero to get boundary lines drawn.
·
ZLIB_WARNINGS: set to non-zero to get warnings if the Python compression extension is not
found.
·
pageComression: set to non-zero to try and get compressed PDF.
·
allowtableBoundsErrors: set to 0 to force an error on very large Platypus table elements
·
emptyTableAction: Controls behaviour for empty tables, can be 'error' (default), 'indicate' or
'ignore'.
1.9 Learning More About Python
If you are a total beginner to Python, you should check out one or more from the growing number of
resources on Python programming. The following are freely available on the web:
·
Python Documentation. A list of documentation on the Python.org web site.
http://www.python.org/doc/
·
Python Tutorial. The official Python Tutorial , originally written by Guido van Rossum
himself. http://docs.python.org/tutorial/
·
Learning to Program. A tutorial on programming by Alan Gauld. Has a heavy emphasis on
Python, but also uses other languages.
http://www.freenetpages.co.uk/hp/alan.gauld/
·
Instant Python. A 6-page minimal crash course by Magnus Lie Hetland.
http://www.hetland.org/python/instant-python.php
·
Dive Into Python. A free Python tutorial for experienced programmers.
http://www.diveintopython.net/
1.10 Goals for the 3.x release series
ReportLab 3.0 has been produced to help in the migration to Python 3.x. Python 3.x will be standard in future
Ubuntu releases and is gaining popularity, and a good proportion of major Python packages now run on
Python 3.
·
Python 3.x compatibility. A single line of code should run on 2.7 and 3.3
·
__init__.py restricts to 2.7 or >=3.3
·
__init__.py allow the import of on optional reportlab.local_rl_mods to allow monkey patching
etc.
·
rl_config now imports rl_settings & optionally local_rl_settings
·
ReportLab C extensions now live inside reportlab; _rl_accel is no longer required. All _rl_accel
imports now pass through reportlab.lib.rl_accel
·
xmllib is gone, alongside the paraparser stuff that caused issues in favour of HTMLParser.
·
some obsolete C extensions (sgmlop and pyHnj) are gone
·
Improved support for multi-threaded systems to the _rl_accel C extension module.
·
Removed reportlab/lib/ para.py & pycanvas.py. These would better belong in third party
packages, which can make use of the monkeypatching feature above.
·
Add ability to output greyscale and 1-bit PIL images without conversion to RGB. (contributed
by Matthew Duggan)
·
highlight annotation (contributed by Ben Echols)
·
full compliance with pip, easy_install, wheels etc
Detailed release notes are available at
http://www.reportlab.com/software/documentation/relnotes/30/
User Guide
Chapter 1 Introduction
Page 9
Chapter 2 Graphics and Text with pdfgen
2.1 Basic Concepts
The pdfgen package is the lowest level interface for generating PDF documents. A pdfgen program is
essentially a sequence of instructions for "painting" a document onto a sequence of pages. The interface
object which provides the painting operations is the pdfgen canvas.
The canvas should be thought of as a sheet of white paper with points on the sheet identified using Cartesian
(X,Y) coordinates which by default have the (0,0) origin point at the lower left corner of the page.
Furthermore the first coordinate goes to the right and the second coordinate goes up, by default.
A simple example program that uses a canvas follows.
from reportlab.pdfgen import canvas
def hello(c):
c.drawString(100,100,"Hello World")
c = canvas.Canvas("hello.pdf")
hello(c)
c.showPage()
c.save()
The above code creates a canvas object which will generate a PDF file named hello.pdf in the
current working directory. It then calls the hello function passing the canvas as an argument. Finally
the showPage method saves the current page of the canvas and the save method stores the file and
closes the canvas.
The showPage method causes the canvas to stop drawing on the current page and any further operations
will draw on a subsequent page (if there are any further operations -- if not no new page is created). The
save method must be called after the construction of the document is complete -- it generates the PDF
document, which is the whole purpose of the canvas object.
2.2 More about the Canvas
Before describing the drawing operations, we will digress to cover some of the things which can be done to
configure a canvas. There are many different settings available. If you are new to Python or can't wait to
produce some output, you can skip ahead, but come back later and read this!
First of all, we will look at the constructor arguments for the canvas:
def __init__(self,filename,
pagesize=(595.27,841.89),
bottomup = 1,
pageCompression=0,
encoding=rl_config.defaultEncoding,
verbosity=0
encrypt=None):
The filename argument controls the name of the final PDF file. You may also pass in any open file object
(such as sys.stdout, the python process standard output) and the PDF document will be written to that.
Since PDF is a binary format, you should take care when writing other stuff before or after it; you can't
deliver PDF documents inline in the middle of an HTML page!
The pagesize argument is a tuple of two numbers in points (1/72 of an inch). The canvas defaults to A4
(an international standard page size which differs from the American standard page size of letter), but it is
better to explicitly specify it. Most common page sizes are found in the library module
reportlab.lib.pagesizes, so you can use expressions like
from reportlab.lib.pagesizes import letter, A4
myCanvas = Canvas('myfile.pdf', pagesize=letter)
width, height = letter  #keep for later
ETON
User Guide
Chapter 2 Graphics and Text with pdfgen
Page 10
Documents you may be interested
Documents you may be interested