pdf library c# free : C# read pdf form fields SDK Library service wpf asp.net winforms dnn PDFlib-manual1-part1866

1.1  PDFlib Programming 11
1Introduction
1.1 PDFlib Programming
What is PDFlib? PDFlib is a library which allows you to generate files in Adobe’s Porta-
ble Document Format (PDF). PDFlib acts as a backend to your own programs. While you 
(the programmer) are responsible for retrieving the data to be processed, PDFlib takes 
over the task of generating the PDF code which graphically represents your data. While 
you must still format and arrange your text and graphical objects, PDFlib frees you 
from the internal details of PDF. Our binary packages contain different products in a 
single library:
>PDFlib offers many useful functions for creating text, graphics, images, and hyper-
text elements in PDF.
>The optional add-on PDF Import Library (PDI) can be used to integrate pages from ex-
isting PDF documents into the generated output.
>The PDFlib Personalization Server (PPS) offers powerful block processing functions, 
and includes the PDFlib Block plugin for Adobe Acrobat.
PDF_circle( )
P
D
F
_
s
e
t
f
o
n
t
(
 )
PDF_arc( )
PDF_show( )
PD
F_
lineto( )
COM
C++
Java
C
Python
Tcl
Perl
PHP
Fig. 1.1 The inner workings of PDFlib
C# read pdf form fields - extract form data from PDF in C#.net, ASP.NET, MVC, Ajax, WPF
Help to Read and Extract Field Data from PDF with a Convenient C# Solution
extracting data from pdf forms; using pdf forms to collect data
C# read pdf form fields - VB.NET PDF Form Data Read library: extract form data from PDF in vb.net, ASP.NET, MVC, Ajax, WPF
Convenient VB.NET Solution to Read and Extract Field Data from PDF
pdf data extraction to excel; extract data out of pdf file
12
Chapter 1:  Introduction
How can I use PDFlib? PDFlib is available on a variety of platforms, including Unix, 
Windows, Mac OS, and EBCDIC-based systems such as IBM eServer iSeries and zSeries. 
PDFlib itself is written in the C language, but it can be also accessed from several other 
languages and programming environments which are called language bindings. These 
language bindings cover all major Web and stand-alone application languages current-
ly in use. The Application Programming Interface (API) is easy to learn, and is identical 
for all bindings. Currently the following bindings are supported:
>COM for use with Visual Basic, Active Server Pages with VBScript or JScript, Borland 
Delphi, Windows Script Host, and other environments
>ANSI C
>ANSI C++
>Cobol (IBM eServer zSeries)
>Java, including servlets
>.NET for use with C#, VB.NET, ASP.NET, and other environments
>PHP hypertext processor
>Perl
>Python
>RPG (IBM eServer iSeries)
>Tcl
What can I use PDFlib for? PDFlib’s primary target is creating dynamic PDF within 
your own software, or on the World Wide Web. Similar to HTML pages dynamically gen-
erated on the Web server, you can use a PDFlib program for dynamically generating PDF 
reflecting user input or some other dynamic data, e.g. data retrieved from the Web ser-
ver’s database. The PDFlib approach offers several advantages:
>PDFlib can be integrated directly in the application generating the data, eliminating 
the convoluted creation path application–PostScript–Acrobat Distiller–PDF.
>As an implication of this straightforward process, PDFlib is the fastest PDF-generat-
ing method, making it perfectly suited for the Web.
>PDFlib’s thread-safety as well as its robust memory and error handling support the 
implementation of high-performance server applications.
>PDFlib is available for a variety of operating systems and development environ-
ments.
Requirements for using PDFlib. PDFlib makes PDF generation possible without wading 
through the PDF specification. While PDFlib tries to hide technical PDF details from the 
user, a general understanding of PDF is useful. In order to make the best use of PDFlib, 
application programmers should ideally be familiar with the basic graphics model of 
PostScript (and therefore PDF). However, a reasonably experienced application pro-
grammer who has dealt with any graphics API for screen display or printing shouldn’t 
have much trouble adapting to the PDFlib API as described in this manual.
About this manual. This manual describes the API implemented in PDFlib. It does not 
describe the process of building the library binaries. Functions not described in this 
manual are unsupported, and should not be used. This manual does not attempt to ex-
plain Acrobat features. Please refer to the Acrobat product literature, and the material 
cited at the end of this manual for further reference. The PDFlib distribution contains 
additional examples for calling PDFlib functions.
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
C#.NET extract image from multiple page adobe PDF file library Extract various types of image from PDF file, like XObject Image, XObject Form, Inline Image
extracting data from pdf into excel; pdf data extractor
C# PDF Text Extract Library: extract text content from PDF file in
XDoc.PDF ›› C# PDF: Extract PDF Text. C# PDF - Extract Text from PDF in C#.NET. Best C#.NET PDF text extraction library and component for free download.
export excel to pdf form; collect data from pdf forms
1.2  PDFlib Features 13
1.2 PDFlib Features
Table 1.1 lists the major PDFlib API features for generating and importing PDF.
Table 1.1 Features of PDFlib, PDFlib+PDI, and the PDFlib Personalization Server (PPS)
topic
V 5.0
features
PDF output
PDF documents of arbitrary length, directly in memory (for Web servers) or on disk file
arbitrary page size–each page may have a different size
compression for text, vector graphics, image data, and file attachments
compatibility modes for PDF 1.3, 1.4, and 1.5 (Acrobat 4, 5, and 6)
PDF input
import pages from existing PDF documents (PDFlib+PDI only)
X
flexible PDF page placement and formatting
Blocks
X
PDF personalization with PDFlib blocks for text, image, and PDF data (PPS only)
X
PDFlib Block plugin for Acrobat to create PDFlib blocks
Graphics
common vector graphics primitives: lines, curves, arcs, rectangles, etc.
vector paths for stroking, filling, and clipping
X
smooth shadings (color blends)
pattern fills and strokes
efficiently re-use text or vector graphics with templates
X
explicit graphics state parameters for text knockout, overprinting etc.
X
transparency (opacity) and blend modes
Color
grayscale, RGB, and CMYK color
X
CIE L*a*b* color
X
ICC-based color with standard ICC color profiles
X
built-in PANTONE® and HKS® spot color tables
user-defined spot colors
X
default gray, RGB, and CMYK color spaces to remap device-dependent colors
X
rendering intent for text, graphics, and raster images
Prepress
X
generate output conforming to PDF/X-1, PDF/X-1a, and PDF/X-3
X
embed output intent ICC profile or reference standard output intent
X
copy output intent from imported PDF documents (PDFlib+PDI only)
Fonts
text output in different fonts; underlined, overlined, and strikeout text
X
text column formatting and text line positioning options
X
built-in metrics and kerning information for all glyphs in the PDF core fonts
font embedding
fonts can be pulled from the Windows or Mac host system
X
TrueType (ttf and ttc) and PostScript Type 1 fonts (pfb and pfa, plus lwfn on the Mac)
OpenType fonts (ttf, otf) with PostScript or TrueType outlines
AFM and PFM PostScript font metrics files
X
kerning for PostScript, TrueType, and OpenType fonts
X
subsetting for TrueType and OpenType fonts
X
user-defined (Type 3) fonts
X
TrueType and OpenType glyph id addressing for advanced typesetting applications
X
proportional widths for standard CJK fonts
retrieve character metrics for exact formatting
C# PDF Library SDK to view, edit, convert, process PDF file for C#
PDF SDK for .NET allows you to read, add, edit, update Please refer to this C# guide to learn how to for .NET to insert, delete and update PDF form fields in C#
extracting data from pdf forms to excel; extract data from pdf form to excel
C# PDF File Compress Library: Compress reduce PDF size in C#.net
C#.NET PDF Document Optimization. resources: Since images are usually or large size, images size reducing can help to reduce PDF file size Flatten form fields.
export pdf data to excel; exporting data from pdf to excel
14
Chapter 1:  Introduction
fetch code pages from the system (Windows, IBM eServer iSeries and zSeries)
Internationalization 
and Unicode
support for a variety of encodings (both built-in and user-defined)
standard CJK font and CMap support for Chinese, Japanese, and Korean text
X
custom CJK fonts in the TrueType and OpenType formats with Unicode encoding
Euro character (subject to availability of the Euro glyph in the used font)
built-in international standards and vendor-specific code pages
X
Unicode for page descriptions (UTF-8 and UCS-2 formats, little- and big-endian)
Unicode for hypertext features
X
embed Unicode information in PDF for proper text extraction in Acrobat
Security
X
generate output with 40-bit or 128-bit encryption
X
generate output with permission settings
X
import encrypted documents (master password required; PDI only)
Hypertext
page transition effects such as shades and mosaic
nested bookmarks
PDF links, launch links (other document types), and Web links
document information: four standard fields (Title, Subject, Author, Keywords) plus 
unlimited number of user-defined info fields
file attachments and note annotations
X
named destinations for links, bookmarks, and document open action
X
viewer preferences (hide menu bar, etc.)
X
more bookmark targets
X
user coordinates (instead of default coordinates) for hypertext elements
Images
X
embed BMP, GIF (non-interlaced), PNG, TIFF, JPEG, and CCITT raster images
X
automatic detection of image file formats (file format sniffing)
X
use all kinds of image data from file or from memory
efficiently re-use image data, e.g., for repeated logos on each page
X
transparent (masked) images including soft masks
image masks (transparent images with a color applied)
colorize images with a spot color
X
flexible image placement and formatting
X
honor embedded ICC profiles in JPEG, TIFF, and PNG
X
apply an external ICC profile to an image
X
image interpolation (smooth images with low resolution)
Programming
language bindings for Cobol, COM, C, C++, Java, .NET, Perl, PHP, Python, RPG, Tcl
thread-safe for deployment in multi-threaded server applications
configurable error handler and memory management for C and C++
exception handling integrated with the host language’s native exception handling
X
virtual file system for supplying data in memory, e.g., images, fonts, ICC profiles
Table 1.1 Features of PDFlib, PDFlib+PDI, and the PDFlib Personalization Server (PPS)
topic
V 5.0
features
How to C#: Basic SDK Concept of XDoc.PDF for .NET
›› C# PDF: Basic SDK Concept. C#.NET PDF: Basic Concept of .NET XDoc.PDF SDK. Introductions to Classes and APIs Included in .NET XDoc.PDF for C# Programming.
how to fill pdf form in reader; extracting data from pdf to excel
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
form. Append one PDF file to the end of another and save to a single PDF file. Merge PDF with byte array, fields. Merge PDF without size limitation. RasterEdge
make pdf form editable in reader; save pdf forms in reader
1.3  Availability of Features in different Products 15
1.3 Availability of Features in different Products
Table 1.2 details the availability of features in the open source edition of PDFlib and var-
ious commercial products.
Table 1.2 Availability of features in different products
Feature
API functions and parameters
PDFlib Lite
(open source)
PDFlib
PDFlib+PDI
PDFlib Personalization
Server (PPS)
basic PDF generation
(all except those listed below)
X
X
X
X
COM and .NET language bindings
X
X
X
works on EBCDIC-based systems
X
X
X
encryption (password protection 
and permission settings)
userpassword, masterpassword, 
permissions
X
X
X
font subsetting
PDF_load_font( ) with subsetting option
X
X
X
kerning
PDF_load_font( ) with kerning option
X
X
X
access Mac and Windows host fonts PDF_load_font( )
X
X
X
access system encodings on 
Windows, iSeries, and zSeries
PDF_load_font( )
X
X
X
Unicode encoding and ToUnicode 
CMaps for PS, TT and OT fonts
PDF_load_font( ) with encoding = unicode,
autocidfont, unicodemap
X
X
X
proportional glyph widths for stan-
dard CJK fonts with UCS2 CMaps
PDF_load_font( ) with a UCS2-compatible 
CMap
X
X
X
glyph ID addressing
PDF_load_font( ) with encoding = glyphid
X
X
X
extended encoding support for 
PostScript-based OpenType fonts 
PDF_load_font( )
X
X
X
spot color
PDF_makespotcolor( )
X
X
X
PDF/X support
PDF_process_pdi( ), pdfx
X
X
X
ICC profile support
PDF_load_iccprofile( ), PDF_setcolor( ) with 
iccbasedgray/rgb/cmyk, PDF_load_image( ) 
with honoriccprofile option, honoriccprofile
X
X
X
CIE L*a*b* color
PDF_setcolor( ) with type = lab
X
X
X
default color spaces
defaultgray/rgb/cmyk
X
X
X
PDF import (PDI)
PDF_open_pdi( ), PDF_open_pdi_callback( ), 
PDF_open_pdi_page( ),
PDF_fit_pdi_page( ), PDF_process_pdi( ), 
PDF_get_pdi_value( ),
PDF_get_pdi_parameter( )
X
X
variable data processing and 
personalization with blocks
PDF_fill_textblock( ),
PDF_fill_imageblock( ),
PDF_fill_pdfblock( )
X
query standard and custom block 
properties
PDF_get_pdi_value( ), PDF_get_pdi_
parameter( ) with vdp/Blocks keys
X
PDFlib Block plugin for Acrobat
interactively create PDFlib blocks
X
C# PDF Field Edit Library: insert, delete, update pdf form field
C#.NET Demo Code: Add Form Fields to an Existing PDF File in C#.NET. This C# demo will help you to add form fields to PDF file. String
pdf form save in reader; extract table data from pdf to excel
.NET PDF Document Viewing, Annotation, Conversion & Processing
XDoc.PDF SDK for .NET is completely developed in .NET, compatible with Visual C#, Visual Basic, and Delphi for .NET. Read form data from PDF form file.
how to save editable pdf form in reader; export pdf form data to excel
16
Chapter 1:  Introduction
1.4 Acrobat Versions and PDFlib Features
At the user’s option PDFlib generates output according to PDF 1.3 (Acrobat 4), PDF 1.4 
(Acrobat 5), or PDF 1.5 (Acrobat 6). In PDF 1.3 compatibility mode the PDFlib features list-
ed in Table 1.3 will not be available. Trying to use one of these features in PDF 1.3 mode 
will result in an exception.
Table 1.3 PDFlib features which are not available in PDF 1.3 compatibility mode
Feature
PDFlib API functions and parameters
smooth shadings (color blends)
PDF_shading_pattern( ), PDF_shfill( ), PDF_shading( )
soft masks
PDF_load_image( ) with the masked option referring to an 
image with more than 1 bit pixel depth
128-bit encryption
userpassword, masterpassword, permissions
extended permission settings (see Table 3.12)
permissions
certain CMaps for CJK fonts (see Table 4.6)
PDF_load_font( )
certain settings in explicit graphics states, mostly 
related to transparency
PDF_create_gstate( ) with options alphaisshape, 
blendmode, opacityfill, opacitystroke, textknockout
2.1  Overview
17
2PDFlib Language Bindings
2.1 Overview
While the C programming language has been one of the cornerstones of systems and 
applications software development for decades, a whole slew of other languages have 
been around for quite some time which are either related to new programming para-
digms (such as C++), open the door to powerful platform-independent scripting capabil-
ities (such as Perl, Tcl, and Python), promise a new quality in software portability (such 
as Java), or provide the glue among many different technologies while being practically 
platform-specific (such as COM).
Naturally, the question arises how to support so many languages with a single li-
brary. Fortunately, all modern language environments are extensible in some way or 
another.
Availability and platforms. All PDFlib features are available on all platforms and in all 
language bindings (with a few minor exceptions which are noted in the manual). Table 
2.1 lists the language/platform combinations we used for testing.
PDFlib on embedded systems. It shall be noted that PDFlib can also be used on embed-
ded systems, and has been ported to the Windows CE, QNX, and EPOC environments as 
well as custom embedded systems. For use with restricted environments certain fea-
tures are configurable in order to reduce PDFlib’s resource requirements. If you are in-
terested in details please contact us via sales@pdflib.com.
Table 2.1 Tested language and platform combinations
language
Unix (Linux, Solaris, HP-UX, 
Mac OS X, AIX, IRIX a.o.)
Windows NT4 SP2 or above
IBM eServer
iSeries and zSeries
Cobol
ILE Cobol
COM
ASP (PWS, IIS 4, 5, 6)
WSH (VBScript 5, JScript 5)
Visual Basic 6.0, Borland Delphi 5 – 7
ANSI C
gcc 2/3, HP C, IBM C 6, Sun 
Workshop 6, and other ANSI 
C compilers
Microsoft Visual C++ 6, 7
Metrowerks CodeWarrior 7, 8
Borland C++ Builder 5, 6
IBM c89
SAS C for MVS
ANSI C++
gcc 2/3 and other ANSI C++ 
compilers
Microsoft Visual C++ 6, 7
Metrowerks CodeWarrior 7, 8
IBM c89
Java
JDK 1.1.8, 1.2.2, 1.3, 1.4
Sun JDK 1.1.8, 1.2.2, 1.3, 1.4
ColdFusion MX
JDK 1.3.1
.NET
.NET Framework 1.0, 1.1:
C#, VB.NET, ASP.NET
Perl
Perl 5.6 – 5.8
Perl 5.6 – 5.8
PHP
PHP 4.3.x, 5.0
PHP 4.3.x, 5.0
Python
Python 1.6, 2.0 – 2.3
Python 1.6, 2.0 – 2.3
RPG
ILE RPG
Tcl
Tcl 8.3.2 and 8.4.4
Tcl 8.3.2 and 8.4.4
18
Chapter 2:  PDFlib Language Bindings
2.2 Cobol Binding
2.2.1 Special Considerations for Cobol
The PDFlib API functions for Cobol are not available under the names documented in 
Chapter 7, but use abbreviated function names instead. The short function names are 
not documented here, but can be found in a separate cross-reference listing (xref.txt). 
For example, instead of using PDF_load_font( ) the short form PDLODFNT must be used.
PDFlib clients written in Cobol are statically linked to the PDFLBCOB object. It in turn 
dynamically loads the PDLBDLCB Load Module (DLL), which in turn dynamically loads 
the PDFlib Load Module (DLL) upon the first call to PDNEW (which corresponds to PDF_
new( )). The instance handle of the newly allocated PDFlib internal structure is stored in 
the P parameter which must be provided to each call that follows.
The PDLBDLCB load module provides the interfaces between the 8-character Cobol 
functions and the core PDFlib routines. It also provides the mapping between PDFlib’s 
asynchronous exception handling and the monolithic »check each function’s return 
code« method that Cobol expects.
Note PDLBDLCB and PDFLIB must be made available to the COBOL program through the use of a 
STEPLIB.
Data types. The data types used in the PDFlib API reference must be mapped to Cobol 
data types as in the following samples (taken from the hello example below):
05  PDFLIB-A4-WIDTH         USAGE COMP-1 VALUE 5.95E+2. // float
05  WS-INT                  PIC S9(9) BINARY.           // int
05  WS-FLOAT                COMP-1.                     // float
05  WS-STRING               PIC X(128).                 // const char *
05  P                       PIC S9(9) BINARY.           // long *
05  RETURN-RC               PIC S9(9) BINARY.           // int *
All Cobol strings passed to the PDFlib API should be defined with one extra byte of stor-
age for the expected LOW-VALUES (NULL) terminator.
Return values. The return value of PDFlib API functions will be supplied in an addi-
tional ret parameter which is passed by reference. It will be filled with the result of the 
respective function call. A zero return value means the function call executed just fine; 
other values signal an error, and PDF generation cannot be continued.
Functions which do not return any result (C functions with a void return type) don’t 
use this additional parameter.
Error handling. PDFlib exception handling is not available in the Cobol language bind-
ing. Instead, all API functions support an additional return code (rc) parameter which 
signals errors. The rc parameter is passed by reference, and will be used to report prob-
lems. A non-zero value indicates that the function call failed.
2.2.2 The »Hello world« Example in Cobol
The following example shows a simple Cobol program which links against PDFlib. Note 
that it does not do any error checking:
2.2  Cobol Binding 19
IDENTIFICATION DIVISION.
PROGRAM-ID.     HELLO.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01  PDFLIB-PAGE-SIZE-CONSTANTS.
05  PDFLIB-A4-WIDTH         USAGE COMP-1 VALUE 5.95E+2.
05  PDFLIB-A4-HEIGHT        USAGE COMP-1 VALUE 8.42E+2.
01  PDFLIB-CALL-AREA.
05  P                       PIC S9(9) BINARY.
05  RC                      PIC S9(9) BINARY.
05  PDFLIB-RETURN-LONG      PIC S9(9) BINARY.
05  PDFLIB-RETURN-CHAR      PIC X(64) VALUE SPACES.
01  WS-WORK-FIELDS.
05  WS-INT                  PIC S9(9) BINARY.
05  WS-FONT                 PIC S9(9) BINARY.
05  WS-FLOAT                COMP-1.
05  WS-FLOAT2               COMP-1.
05  WS-STRING               PIC X(128).
05  WS-STRING2              PIC X(128).
05  WS-PDF-ERR-STRING       PIC X(128).
05  WS-NULL                 PIC X(1) VALUE LOW-VALUES.
PROCEDURE DIVISION.
  CREATE A PDF OBJECT
CALL "PDNEW" USING          P,
RC.
  OPEN PDF FILE
STRING 'HELLO.PDF' LOW-VALUES
DELIMITED BY SIZE INTO WS-STRING.
CALL "PDOPNFIL" USING       P,
WS-STRING,
PDFLIB-RETURN-LONG,
RC.
IF PDFLIB-RETURN-LONG = -1
CALL "PDERRMSG" USING   P,
WS-PDF-ERR-STRING,
RC.
DISPLAY WS-PDF-ERR-STRING.
MOVE +8 TO RETURN-CODE
GOBACK.
  SET PDF INFORMATION
STRING 'Creator' LOW-VALUES
DELIMITED BY SIZE INTO WS-STRING.
STRING 'Hello.cbl' LOW-VALUES
DELIMITED BY SIZE INTO WS-STRING2.
CALL "PDSETINF" USING       P,
20
Chapter 2:  PDFlib Language Bindings
WS-STRING,
WS-STRING2,
RC.
STRING 'Author' LOW-VALUES
DELIMITED BY SIZE INTO WS-STRING.
STRING 'Thomas Merz' LOW-VALUES
DELIMITED BY SIZE INTO WS-STRING2.
CALL "PDSETINF" USING       P,
WS-STRING
WS-STRING2,
RC.
STRING 'Title' LOW-VALUES
DELIMITED BY SIZE INTO WS-STRING.
STRING 'Hello, world (COBOL)!' LOW-VALUES
DELIMITED BY SIZE INTO WS-STRING2.
CALL "PDSETINF" USING       P,
WS-STRING
WS-STRING2,
RC.
  START A NEW PAGE
CALL "PDBGNPAG" USING       P,
PDFLIB-A4-WIDTH,
PDFLIB-A4-HEIGHT,
RC.
  FONT PROCESSING
MOVE 0 TO WS-INT.
STRING 'Helvetica-Bold' LOW-VALUES
DELIMITED BY SIZE INTO WS-STRING.
STRING 'host' LOW-VALUES
DELIMITED BY SIZE INTO WS-STRING2.
CALL "PDLODFNT" USING       P,
WS-STRING
WS-INT,
WS-STRING2,
WS-NULL,
PDFLIB-RETURN-LONG,
RC.
MOVE PDFLIB-RETURN-LONG     TO  WS-FONT.
MOVE 24 TO WS-FLOAT.
CALL "PDSETFNT" USING       P,
WS-FONT,
WS-FLOAT,
RC.
  WRITE TO THE CURRENT PAGE OF THE PDF DOCUMENT
MOVE 50 TO WS-FLOAT.
MOVE 700 TO WS-FLOAT2.
CALL "PDSETTP" USING        P,
WS-FLOAT,
WS-FLOAT2,
RC.
STRING 'Hello, World!' LOW-VALUES
Documents you may be interested
Documents you may be interested