Edition for
COM, .NET, and REALbasic
PDFlib GmbH München, Germany
Version 7.0.5
Tutorial for
PDFlib, PDI, and PPS
A library for generating PDF on the fly
Pdf signature field - 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 a signature to a pdf; create pdf signature
Pdf signature field - 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
pdf converter sign in; adding signature to pdf in preview
Copyright © 1997–2010 PDFlib GmbH and Thomas Merz. All rights reserved.
PDFlib users are granted permission to reproduce printed or digital copies of this manual for internal use.
PDFlib GmbH
Franziska-Bilek-Weg 9, 80339 München, Germany
phone +49 • 89 • 452 33 84-0
fax +49 • 89 • 452 33 84-99
If you have questions check the PDFlib mailing list and archive at tech.groups.yahoo.com/group/pdflib
Licensing contact: sales@pdflib.com
Support for commercial PDFlib licensees: support@pdflib.com (please include your license number)
This publication and the information herein is furnished as is, is subject to change without notice, and 
should not be construed as a commitment by PDFlib GmbH. PDFlib GmbH assumes no responsibility or lia-
bility for any errors or inaccuracies, makes no warranty of any kind (express, implied or statutory) with re-
spect to this publication, and expressly disclaims any and all warranties of merchantability, fitness for par-
ticular purposes and noninfringement of third party rights.
PDFlib and the PDFlib logo are registered trademarks of PDFlib GmbH. PDFlib licensees are granted the 
right to use the PDFlib name and logo in their product documentation. However, this is not required.
Adobe, Acrobat, PostScript, and XMP are trademarks of Adobe Systems Inc. AIX, IBM, OS/390, WebSphere, 
iSeries, and zSeries are trademarks of International Business Machines Corporation. ActiveX, Microsoft, 
OpenType, and Windows are trademarks of Microsoft Corporation. Apple, Macintosh and TrueType are 
trademarks of Apple Computer, Inc. Unicode and the Unicode logo are trademarks of Unicode, Inc. Unix is a 
trademark of The Open Group. Java and Solaris are trademarks of Sun Microsystems, Inc. HKS is a regis-
tered trademark of the HKS brand association: Hostmann-Steinberg, K+E Printing Inks, Schmincke. Other 
company product and service names may be trademarks or service marks of others.
PANTONE® colors displayed in the software application or in the user documentation may not match 
PANTONE-identified standards. Consult current PANTONE Color Publications for accurate color. PANTONE® 
and other Pantone, Inc. trademarks are the property of Pantone, Inc. © Pantone, Inc., 2003.
Pantone, Inc. is the copyright owner of color data and/or software which are licensed to PDFlib GmbH to 
distribute for use only in combination with PDFlib Software. PANTONE Color Data and/or Software shall 
not be copied onto another disk or into memory unless as part of the execution of PDFlib Software.
PDFlib contains modified parts of the following third-party software:
ICClib, Copyright © 1997-2002 Graeme W. Gill
GIF image decoder, Copyright © 1990-1994 David Koblas
PNG image reference library (libpng), Copyright © 1998-2004 Glenn Randers-Pehrson
Zlib compression library, Copyright © 1995-2002 Jean-loup Gailly and Mark Adler
TIFFlib image library, Copyright © 1988-1997 Sam Leffler, Copyright © 1991-1997 Silicon Graphics, Inc.
Cryptographic software written by Eric Young, Copyright © 1995-1998 Eric Young (eay@cryptsoft.com)
Independent JPEG Group’s JPEG software, Copyright © 1991-1998, Thomas G. Lane
Cryptographic software, Copyright © 1998-2002 The OpenSSL Project (www.openssl.org)
Expat XML parser, Copyright © 1998, 1999, 2000 Thai Open Source Software Center Ltd
Reference sRGB ICC color profile data, Copyright (c) 1998 Hewlett-Packard Company
PDFlib contains the RSA Security, Inc. MD5 message digest algorithm.
Authors: Thomas Merz, Katja Schnelle-Romaus
Design and illustrations: Alessio Leonardi
Quality control (manual): Katja Schnelle-Romaus, Kurt Stützer
Quality control (software): a cast of thousands
C# PDF Digital Signature Library: add, remove, update PDF digital
things. Add a signature or an empty signature field in any PDF file page. Search unsigned signature field in PDF document. Prepare
pdf signatures; create signature pdf
VB.NET PDF Digital Signature Library: add, remove, update PDF
things. Add a signature or an empty signature field in any PDF file page. Search unsigned signature field in PDF document. Prepare
adding a signature to a pdf form; adding signature to pdf document
Contents 3
0 Applying the PDFlib License Key
1 Introduction
1.1 Roadmap to Documentation and Samples 13
1.2 PDFlib Programming 15
1.3 What’s new in PDFlib 7? 17
1.4 Features in PDFlib/PDFlib+PDI/PPS 7 20
1.5 Availability of Features in different Products 22
2 PDFlib Language Bindings
2.1 Cobol Binding 25
2.2 COM Binding 26
2.3 C Binding 31
2.4 C++ Binding 32
2.5 Java Binding 33
2.6 .NET Binding 34
2.7 Perl Binding 37
2.8 PHP Binding 38
2.9 Python Binding 39
2.10REALbasic Binding 40
2.11 RPG Binding 41
2.12 Ruby Binding 42
2.13 Tcl Binding 43
3 PDFlib Programming
3.1 General Programming 45
3.1.1 Exception Handling 45
3.1.2 The PDFlib Virtual File System (PVF) 47
3.1.3 Resource Configuration and File Searching 48
3.1.4 Generating PDF Documents in Memory 51
3.1.5 Large File Support 52
3.2 Page Descriptions 53
3.2.1 Coordinate Systems 53
3.2.2 Page Size55
3.2.3 Paths 56
3.2.4 Templates 57
3.3 Working with Color 59
3.3.1 Patterns and Smooth Shadings 59
3.3.2 Spot Colors 60
C# PDF insert image Library: insert images into PDF in C#.net, ASP
field. Access 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
adding signature to pdf doc; pdf converter sign in
How to C#: Basic SDK Concept of XDoc.PDF for .NET
To be specific, you can edit PDF password and digital signature, and set PDF file permission. Class: PasswordSetting. Class: PDFDigitalSignatureHandler.
create pdf signature stamp; create pdf with signature field
3.3.3 Color Management and ICC Profiles 62
3.4 Interactive Elements 66
3.4.1 Examples for Creating Interactive Elements 66
3.4.2 Formatting Options for Text Fields 70
4 Unicode and Legacy Encodings
4.1 Overview 73
4.2 Important Unicode Concepts 74
4.3 Strings in PDFlib 76
4.3.1 String Types in PDFlib 76
4.3.2 Strings in Unicode-aware Language Bindings 76
4.3.3 Strings in non-Unicode-aware Language Bindings 77
4.4 8-Bit Encodings 78
4.5 Encodings for Chinese, Japanese, and Korean Text 82
4.6 Addressing Characters and Glyphs 84
4.6.1 Escape Sequences 84
4.6.2 Character References and Glyph Name References 85
4.6.3 Glyph Checking and Substitution 87
4.6.4 Checking Glyph Availability 89
5 Font Handling
5.1 Overview of Fonts and Encodings91
5.1.1 Supported Font Formats 91
5.1.2 Font Encodings 92
5.2 Font Format Details 94
5.2.1 PostScript Type 1 Fonts 94
5.2.2 TrueType and OpenType Fonts 95
5.2.3 User-Defined (Type 3) Fonts 95
5.3 Locating, Embedding and Subsetting Fonts 97
5.3.1 Searching for Fonts 97
5.3.2 Host Fonts on Windows and Mac 99
5.3.3 Font Embedding 102
5.3.4 Font Subsetting 103
5.4 Miscellaneous Topics105
5.4.1 Symbol Fonts and Font-specific Encodings 105
5.4.2 Glyph ID Addressing for TrueType and OpenType Fonts 106
5.4.3 The Euro Glyph 106
5.4.4 Unicode-compatible Fonts 107
5.5 Font Metrics and Text Variations 108
5.5.1 Font and Glyph Metrics 108
5.5.2 Kerning 109
5.5.3 Text Variations 110
5.6 Chinese, Japanese, and Korean Fonts 112
5.6.1 Standard CJK Fonts 112
VB.NET PDF: Basic SDK Concept of XDoc.PDF
To be specific, you can edit PDF password and digital signature, and set PDF file permission. Class: PasswordSetting. Class: PDFDigitalSignatureHandler.
adding signature to pdf form; adding signature to pdf
VB.NET PDF insert image library: insert images into PDF in vb.net
project. Import graphic picture, digital photo, signature and logo into PDF document. file. Insert images into PDF form field in VB.NET. An
add signature to pdf in preview; pdf secure signature
Contents 5
5.6.2 Custom CJK Fonts 113
6 Importing Images and PDF Pages
6.1 Importing Raster Images 117
6.1.1 Basic Image Handling 117
6.1.2 Supported Image File Formats 118
6.1.3 Clipping Paths 121
6.1.4 Image Masks and Transparency 121
6.1.5 Colorizing Images 123
6.1.6 Multi-Page Image Files 124
6.1.7 OPI Support 124
6.2 Importing PDF Pages with PDI (PDF Import Library) 126
6.2.1 PDI Features and Applications 126
6.2.2 Using PDI Functions with PDFlib 126
6.2.3 Acceptable PDF Documents 128
7 Formatting Features
7.1 Placing and Fitting Single-Line Text 129
7.1.1 Simple Text Placement 129
7.1.2 Positioning Text in a Box 130
7.1.3 Fitting Text into a Box 131
7.1.4 Aligning Text at a Character 133
7.1.5 Placing a Stamp 134
7.1.6 Using Leaders 134
7.2 Multi-Line Textflows 136
7.2.1 Placing Textflows in the Fitbox 137
7.2.2 Paragraph Formatting Options 139
7.2.3 Inline Option Lists and Macros 139
7.2.4 Tab Stops 142
7.2.5 Numbered Lists and Paragraph Spacing 143
7.2.6 Control Characters, Character Mapping, and Symbol Fonts 144
7.2.7 Hyphenation 147
7.2.8 Controlling the Linebreak Algorithm 148
7.2.9 Wrapping Text 151
7.3 Placing Images and Imported PDF Pages 154
7.3.1 Simple Object Placement 154
7.3.2 Positioning an Object in a Box 154
7.3.3 Fitting an Object into a Box 155
7.3.4 Orientating an Object 156
7.3.5 Rotating an Object 158
7.3.6 Adjusting the Page Size 159
7.4 Table Formatting 160
7.4.1 Placing a Simple Table 161
7.4.2 Contents of a Table Cell 164
7.4.3 Table and Column Widths 165
7.4.4 Mixed Table Contents 166
VB.NET PDF Library SDK to view, edit, convert, process PDF file
NET program. Password, digital signature and PDF text, image and page redaction will be used and customized. PDF Annotation Edit.
pdf to word converter sign in; add signature to pdf reader
C# Create PDF Library SDK to convert PDF from other file formats
PDF file. What's more, you can also protect created PDF file by adding digital signature (watermark) on PDF using C# code. Create
add a signature to a pdf file; add signature to preview pdf
7.4.5 Table Instances 169
7.5 Matchboxes 173
7.5.1 Decorating a Text Line 173
7.5.2 Using Matchboxes in a Textflow 174
7.5.3 Matchboxes and Images 175
8 The pCOS Interface
8.1 Simple pCOS Examples 177
8.2 Handling Basic PDF Data Types 179
8.3 Composite Data Structures and IDs 180
8.4 Path Syntax 181
8.5 Pseudo Objects 183
8.6 Encrypted PDF Documents 189
9 Generating various PDF Flavors
9.1 Acrobat and PDF Versions 191
9.2 Encrypted PDF 193
9.2.1 Strengths and Weaknesses of PDF Security 193
9.2.2 Protecting Documents with PDFlib 194
9.3 Web-Optimized (Linearized) PDF 197
9.4 PDF/X for Print Production 198
9.4.1 The PDF/X Family of Standards 198
9.4.2 Generating PDF/X-conforming Output 198
9.4.3 Importing PDF/X Documents with PDI 201
9.5 PDF/A for Archiving 203
9.5.1 The PDF/A Standards 203
9.5.2 Generating PDF/A-conforming Output 204
9.5.3 Importing PDF/A Documents with PDI 207
9.5.4 Color Strategies for creating PDF/A 208
9.5.5 XMP Document Metadata for PDF/A 209
9.5.6 PDF/A Validation 211
9.5.7 Viewing PDF/A Documents in Acrobat 211
9.6 Tagged PDF 212
9.6.1 Generating Tagged PDF with PDFlib 212
9.6.2 Creating Tagged PDF with direct Text Output and Textflows 214
9.6.3 Activating Items for complex Layouts 215
9.6.4 Using Tagged PDF in Acrobat 218
10 Variable Data and Blocks
10.1 Installing the PDFlib Block Plugin 221
10.2 Overview of the PDFlib Block Concept 223
10.2.1 Complete Separation of Document Design and Program Code 223
10.2.2 Block Properties 223
C# PDF remove image library: remove, delete images from PDF in C#.
in Field Data. Field: Insert, Delete, Update Field. graphic picture, digital photo, scanned signature, logo, etc. remove multiple or all images from PDF document.
create pdf stamp signature; create pdf signature box
C# PDF Convert to Images SDK: Convert PDF to png, gif images in C#
in C#.NET class. Create image files including all PDF contents, like watermark and signature in .NET. Turn multipage PDF file into
create signature from pdf; create pdf signature field
Contents 7
10.2.3 Why not use PDF Form Fields? 224
10.3 Using the PDFlib Block Plugin to create Blocks 226
10.3.1 Creating Blocks interactively 226
10.3.2 Editing Block Properties 228
10.3.3 Copying Blocks between Pages and Documents 229
10.3.4Converting PDF Form Fields to PDFlib Blocks 230
10.4 Filling PDFlib Blocks with PPS 233
10.5 Standard Properties for Automated Processing 236
10.5.1 General Properties 236
10.5.2 Text Properties 238
10.5.3 Image Properties 242
10.5.4PDF Properties 242
10.5.5 Custom Properties 243
10.6 Querying Block Names and Properties with pCOS 244
10.7 PDFlib Block Specification 246
10.7.1 PDF Object Structure for PDFlib Blocks 246
10.7.2 Generating PDFlib Blocks with pdfmarks 248
ARevision History
0Applying the PDFlib License Key
All binary versions of PDFlib, PDFlib+PDI, and PPS supplied by PDFlib GmbH can be used 
as fully functional evaluation versions regardless of whether or not you obtained a 
commercial license. However, unlicensed versions will display a www.pdflib.com demo 
stamp across all generated pages. Companies which are seriously interested in PDFlib li-
censing and wish to get rid of the demo stamp during the evaluation phase or for proto-
type demos can submit their company and project details with a brief explanation to 
sales@pdflib.com, and apply for a temporary license key (we reserve the right to refuse 
evaluation keys, e.g. for anonymous requests).
Note that PDFlib, PDFlib+PDI, and PDFlib Personalization Server (PPS) are different 
products which require different license keys although they are delivered in a single 
package. PDFlib+PDI license keys will also be valid for PDFlib, but not vice versa, and PPS 
license keys will be valid for PDFlib+PDI and PDFlib. All license keys are platform-depen-
dent, and can only be used on the platform for which they have been purchased.
Once you purchased a license key you must apply it in order to get rid of the demo 
stamp. Several methods are supported for setting the license key; they are detailed be-
Cookbook A full code sample can be found in the Cookbook topic general/license_key.
Windows installer. If you are working with the Windows installer you can enter the li-
cense key when you install the product. The installer will add the license key to the reg-
istry (see below).
Applying a license key at runtime. Add a line to your script or program which sets the 
license key at runtime. The license parameter must be set immediately after instantiat-
ing the PDFlib object. The exact syntax depends on your programming language:
>In COM/VBScript and REALbasic:
oPDF.set_parameter "license", "...your license key..."
>In .NET/C#:
p.set_parameter("license", "...your license key...");
Working with a license file. As an alternative to supplying the license key with a runt-
ime call, you can enter the license key in a text file according to the following format 
(you can use the license file template licensekeys.txt which is contained in all PDFlib dis-
PDFlib license file 1.0
# Licensing information for PDFlib GmbH products
...your license key...
The license file may contain license keys for multiple PDFlib GmbH products on sepa-
rate lines. Next, you must inform PDFlib about the license file, either by setting the 
licensefile parameter immediately after instantiating the PDFlib object with a function 
call similar to the following:
>In COM/VBScript and REALbasic:
Chapter 0:  Applying the PDFlib License Key (Edition for COM, .NET, and REALbasic)
oPDF.set_parameter "licensefile", "/path/to/licensekeys.txt"
>In .NET/C#:
p.set_parameter("licensefile", "/path/to/licensekeys.txt");
Alternatively, you can set the environment variable PDFLIBLICENSEFILE to point to your 
license file. On Windows use the system control panel and choose System, Advanced, 
Environment Variables. On Windows you can also enter the name of the license file in the 
following registry key:
Note Be careful when manually accessing the registry on 64-bit Windows systems: as usual, 64-bit 
PDFlib binaries will work with the 64-bit view of the Windows registry, while 32-bit PDFlib bi-
naries running on a 64-bit system will work with the 32-bit view of the registry. If you must 
add registry keys for a 32-bit product manually, make sure to use the 32-bit version of the 
tool. It can be invoked as follows from the Start, Run... dialog:
Adding the license key to the Windows registry. The Windows installer will add the 
supplied license key to the registry. Instead of using the installer you can also add the li-
cense key to the registry manually at the following registry location:
Updates and Upgrades. If you purchased an update (change from an older version of a 
product to a newer version of the same product) or upgrade (change from PDFlib to 
PDFlib+PDI or PPS, or from PDFlib+PDI to PPS) you must apply the new license key that 
you received for your update or upgrade. The old license key for the previous product 
must no longer be used. Note that license keys will work for all maintenance releases of 
a particular product version; as far as licensing is concerned, all versions 7.0.x are treat-
ed the same.
Evaluating features which are not yet licensed. You can fully evaluate all features by 
using the software without any license key applied. However, once you applied a valid 
license key for a particular product using features of a higher category will no longer be 
available. For example, if you installed a valid PDFlib license key the PDI functionality 
will no longer be available for testing. Similarly, after installing a PDFlib+PDI license key 
the personalization features (block functions) will no longer be available.
When a license key for a product has already been installed, you can replace it with 
the dummy license string "0" (zero) to enable functionality of a higher product class for 
evaluation. This will enable the previously disabled functions, and re-activate the demo 
stamp across all pages.
Licensing options. Different licensing options are available for PDFlib use on one or 
more servers, and for redistributing PDFlib with your own products. We also offer sup-
port and source code contracts. Licensing details and the PDFlib purchase order form 
can be found in the PDFlib distribution. Please contact us if you are interested in obtain-
ing a commercial PDFlib license, or have any questions:
Documents you may be interested
Documents you may be interested