Pdf-Xchange Driver Api SDK
Pdf-Xchange Driver Api SDK
http://www.docu-track.com
Mailto:Sales@docu-track.com
I PDF-XChange Driver API SDK
Table of Contents
Foreword 0
Part I Introduction 1
1 Welcome ................................................................................................................................... 1
2 Troubleshooting
................................................................................................................................... 2
3 Resdistribution
................................................................................................................................... 2
Method ResetDefaults
.......................................................................................................................................................... 44
Method ApplyOptions
.......................................................................................................................................................... 44
Method AddBookmarkItem
.......................................................................................................................................................... 44
Method AddTextWatermark
.......................................................................................................................................................... 47
Method AddImageWatermark
.......................................................................................................................................................... 50
Method StorePrinterOptions
.......................................................................................................................................................... 52
Method ReStorePrinterOptions
.......................................................................................................................................................... 52
Method SetAsDefaultPrinter
.......................................................................................................................................................... 53
Method RestoreDefaultPrinter
.......................................................................................................................................................... 53
Method AddSMTPServer
.......................................................................................................................................................... 53
3 Events ................................................................................................................................... 54
Asynchronous Events
.......................................................................................................................................................... 55
Event OnStartDoc
......................................................................................................................................................... 55
Event OnStartPage
......................................................................................................................................................... 56
Event OnEndPage
......................................................................................................................................................... 56
Event OnEndDoc
......................................................................................................................................................... 57
Synchronous Events
.......................................................................................................................................................... 57
Event OnDocSpooled
......................................................................................................................................................... 57
Event OnFileSaved
......................................................................................................................................................... 58
Event OnFileSent
......................................................................................................................................................... 58
Event OnError ......................................................................................................................................................... 59
4 Unsupported
...................................................................................................................................
Property Declarations 59
Index 67
II
1 PDF-XChange Driver API SDK
1 Introduction
1.1 Welcome
The PDF-XChange Drivers API SDK is just one of a family of products we offer for a variety of
Document creation, Manipulation and Viewing tasks - for various file formats including PDF and
various Raster imaging formats.
Developers requiring the ability to create PDF documents from their own applications (*Clarion
Developers - See below) or indeed managing the output of other file formats to PDF from 3rd party
applications such as MS Office, AutoCAD, Internet Explorer etc, providing a set of 32/64 bit Virtual
print drivers - the PDF-XChange Drivers API is an excellent choice. Creating arguable the smallest and
most reliable facsimile in PDF format of the original document available today - at a very competitive
price.
Other developer kits available for PDF Creation, Manipulation and Viewing from Tracker Software
Products include, PDF-Tools SDK, PDF-XChange PRO SDK and the PDF-XChange Viewer SDK. For
more information on all of our products please see :
Windows Support
From Version 4 we have dropped Drivers for all Windows versions prior to Windows 2000 - should
you still need to support Windows 9x/ME/NT, we have continued to offer our highly successful
PDF-XChange Version 3 product range, though it should be noted that NO further development will
take place with our Version 3 product line.
Allows developers to control the properties of the PDF-XChange driver for the creation of PDF
documents. Developers are able to harness the full power of our award-winning Driver by specifying
parameters for PDF creation as used by many millions of contented End Users – directly from within
the developer’s own Software applications.
The PDF-XChange Driver API is supplied as an ActiveX component. Using its methods and properties
all operations can be performed.
The sequence for creating a PDF file from a developer’s application is:
1. Create a new unique (and temporary) virtual printer using the IPXCControlEx interface.
2. Using the IPXCPrinter interface returned by IPXCControlEx, set up all properties as required for
PDF creation.
3. Print to the virtual printer created by step 1, either directly from developer’s application or from
any 3rd party application run from this application.
4. Close the created printer and destroy the temporary printer instance created.
*Clarion for Windows Developers generally do not need to use Virtual Print Drivers to output their
Introduction 2
application reports using our products. Clarion uses a method to output reports to a Windows
Metafile format for viewing that our PDF-Tools SDK is able to convert directly to PDF, whilst still
retaining the reports formatting and text data - ensuring it is still a fully text searchable PDF file once
created - we therefore recommend that unless Clarion developer's are converting 3rd party formats
such MS Office, HTML, AutoCAD etc to PDF - they use our PDF-Tools SDK and not the PDF-XChange
Drivers API SDK.
1.2 Troubleshooting
In most environments the provided COM facilities are available transparently after the installation
and registration are complete. However, for some 32-bit based IDE's (for example, Microsoft Visual
Basic 6) running in 64-bit Windows, this may be problematic. In this event, you should manually
reference the type library (pxccom.tlb) located in the PDF-XChange installation directory.
1.3 Resdistribution
Redistribution.
We provide a comprehensive installation executable for developer's to distribute with their
application and this is the ONLY method authorised for distribution, re-engineering or disassembly of
the installation package provided is specifically and absolutely prohibited. Our installer contains all
the required driver options required for all versions of Windows from Windows 2000 through to
Vista 64 - and all points in between, both 32 and 64 bit!
Developers may either pack the provided installer within their own installation package - or provide
separately and simply call from their own installer script using the extensive command line switches
provided below.
The latest PDF-XChange Driver for redistribution purposes is always available from our web site -
here.
Or from this link : www.docu-track.com/PDFX4SA_sm.zip
Please note - it is a required that you use the above installer and do not attempt to reverse engineer
or de-compile and create your own - if you are not willing to adhere to this specific condition - you
should not use the PDF-XChange Driver within your application.
Please note as with any system device - such as a printer, full Administrator privileges are required
to install on later 'Win32' versions of Microsoft Windows.
Here is an example of the full command line string available:
Most items are optional unless otherwise stated
C:\PDFX4.exe /VERYSILENT /NORESTART /COMPONENTS="pdfSaver,PDF-XChange driver,
Help,Languagess" /DIR="C:\Program Files\PDF-XChange 4\" "/UserName:I
am" "/Organization:Tracker software" "/UserEmail:my@email.com"
Broken down into sections - these are the switches and what each does.
N.B. Please note that the indicated string content must begin and end with double quote marks
(")!
· MAIN install executable and path (required)
i.e.: C:\PDFX4SA_sm.exe
The is the full path to the installation executable, note it is the standard install executable - both
silent and non silent installations are available from the single executable.
· /VERYSILENT
Designates that the installation once started should be silent and require no user interaction.
· /SILENT
Designates that the install should only request essential information from the user once started.
· /NORESTART
Once the install is complete - no reboot will occur - but beware - PDF-XChange does require a
reboot before updates will take effect - not recommended.
· /DIR= (required)
the full path to install all required files to, created if not already available.
i.e. : /DIR="C:\Program Files\PDF-XChange\"
· /Group= (Optional)
The Windows 'Start Menu' folder in which to locate the Menu options provided when installing
PDF-XChange - this will always be a 'Child' menu option of the default 'Programs Files' menu and
this cannot be changed.
i.e. : /GROUP="Tracker Software\PDF-XChange 4 Pro"
· /COMPONENTS=
If this switch is specified only those components actually listed will be installed, otherwise all
components are installed. The available components are:
- pdfSaver (Always Required)
- PDF-XChange driver (Always Required)
- Help
- Languagess (please note 'ss' is required)
- Autounload
i.e. : /COMPONENTS="pdfSaver,PDF-XChange driver, Help,Languagess"
Introduction 4
· /AutoUnload:nn
If this option is specified, after the specified timeout (nn, in minutes) the PDFSaver4 module of
the PDF-XChange driver will unload.
Useful when installed on a Windows Terminal Server or Citrix Metaframe server with multiple
Users to minimise memory in use when PDF creation is not being used by a user - will
automatically reload when required.
i.e. "/Autounload:03"
(Strictly speaking Autounload is not a component - but a default setting parameter mainly used
in Citrix Metaframe or Terminal Services installations to minimise memory use on a server where
PDFSaver4.exe could be loaded multiple times.)
· /Key (Registration) - only to be used if you are also providing an END USER enabled license - not
included as part of your Developers SDK License -EVER
Allows the license key to be registered during silent installation - for live use. Without this
information PDF-XChange will function in demo mode only.
i.e. : "/Key:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX"
· /UserName Registration
Allows the registered username to be registered during silent installation.
i.e. : Username"/UserName:MY Name"
· /Organization Registration
Allows the Company details to be registered during silent installation.
i.e. : "/Organization:Tracker software"
· /PDEFAULT= (Optional)
Sets PDF-XChange to be the system default Printer - the default option without this entry is that
PDF-XChange will not be the default printer.
· /PName= (Optional) printer renaming
Sets the PDF-XChange printer name as required - the default option without this entry is
currently "PDF-XChange 4.0".
i.e. : /PName="PDF-XChange for my application"
Please note that the string content must begin and end with double quote marks (").
· /UserEmail Registration
Allows the users email address details to be registered during silent installation.
i.e. : "/UserEmail:my@email.com"
· /Lang
Sets a language as the default language for the User Interface for all the installed programs and
Print drivers (PDF-XChange, PDF-Tools, OFFice2PDF and the MS Office Addin's etc).
/LANG=language en (English) nl (Dutch) uk (Ukrainian) fr (French) gr (German) it (Italian) sp
(Spanish) ko (Korean) ch (Chinese) jp (Japanese) fi (Finnish)
This may not be the complete list - please see the installation folder.
5 PDF-XChange Driver API SDK
Warning ! Failure to ensure that special switch characters such as quote marks (") and "/" are
included in your command line or batch file, in the correct position - will result in failure to behave as
required.
2 IPXCControlEx object
The IPXCControlEx ActiveX object is used to create a new temporary PDF-XChange printer instance,
and returns the IPXCPrinter object, this in turn allows the developer’s application to set and control
the properties of the newly created printer instance. Once the job is completed the printer instance
is destroyed.
Property IPXCControlEx.Printer
This property allows the creation of a new temporary printer based on the PDF-XChange 4.0 driver
and returns the IPXCPrinter object associated with this printer.
(Please note at the time of writing a bug exists in MS Windows which may block this functionality
from functioning in some versions of Windows)
Declaration:
C#
object get_Printer(
string pServerName,
string pPrinterName,
string pRegKey,
string pDevCode);
C++
HRESULT get_Printer(
[in] BSTR pServerName,
[in] BSTR pPrinterName,
[in] BSTR pRegKey,
[in] BSTR pDevCode,
[out,retval] VARIANT* ppPrinter);
VB
Property Printer(
pServerName As String,
pPrinterName As String,
IPXCControlEx object 6
pRegKey As String,
pDevCode As String)
pServerName:
Reserved for future use. Should be a NULL or empty string.
pPrinterName:
Specifies the desired name for the printer to be created. If a printer of the same name already
exists, then to ensure it is uniquely named, the new printer name will have a suffix automatically
generated, based on the originally-passed value.
· N.B.
The following 2 items are provided as part of your license purchase. If you are evaluating the
PDF-XChange Drivers API SDK, all generated output will have evaluation watermarks printed on
each page and these cannot be subsequently be removed. Once licensed you must re-compile
your project, embedding your license strings provided within your code as outlined above and
all new PDF files generated will be free of the evaluation watermarks placed on all evaluation
output. All output created in evaluation mode will need to be recreated from the original
source documents and materials.
pRegKey:
String containing the Developer registration key. If this registration key is not present or is invalid,
the PDF-XChange demo label will be added to all PDF pages generated by the printer.
pDevCode:
String containing the developer code. If this developer code is not present or is invalid, the
PDF-XChange demo label will be added to all PDF pages generated by the printer.
Return value
If successful, the function returns an IPXCPrinter object associated with newly created printer.
On failure the function returns a NULL.
Example
VB
Dim PDFPFactory As New PXCComLib.CPXCControlEx
Dim WithEvents PDFPrinter As PXCComLib.CPXCPrinter
3 Interface IPXCPrinter
The IPXCPrinter ActiveX interface object is used to control all options of the PDF creation process.
The object with this interface is returned by the IPXCControlEx ActiveX object. When printing is
completed, the IPXCPrinter object should be released. Note that releasing this object will also
remove the virtual printer associated with this object.
Events provided by IPXCPrinter object can be used to control printing process.
IPXCPrinter ActiveX interface provides the following Properties, Methods, and Events.
3.1 Properties
· Property Name returns the name of the printer associated with the object.
· Property Option is used to specify almost all the properties of the printer.
The following sections define the specific Property Options:
o Section Paper. Properties in this section allow you to define page layouts for the created PDF
document.
§ Normal. Used to specify position and size of the page on the sheet.
§ n-Up. Defines how many and in which order pages should be placed on the sheet.
§ Booklet. Defines booklet (or book) creation parameters.
o Section General defines the PDF Specification to which the created PDF file should conform, and
the options for the PDF viewing application.
o Section Compression specifies which compression options should be used for the PDF
document's text and images.
§ Subsection Compression.color specifies compression for True color images.
§ Subsection Comression.Indexed specifies image compression for images with a color palette.
§ Subsection Compression.Mono specifies the compression method to be used to compress
monochrome/black-&-white images.
o Section Graphics specifies how different types of images should be processed before inserting
into a PDF document.
§ Section Graphics.color determines image downsampling and conversion options for True color
images.
vGraphics.color.Downsample defines whether and how images should be "downsampled,"
i.e. have their resolution reduced.
vGraphics.color.Convert defines whether color images should be converted to grayscale,
monochrome, or black & white.
§ Section Graphics.Indexed determines image downsampling and conversion options for
indexed images with palettes.
vGraphics.Indexed.Downsample defines whether and how images should be
"downsampled," i.e. have their resolution reduced.
vGraphics.Indexed.Convert defines whether color images should be converted to grayscale,
monochrome, or black & white.
Interface IPXCPrinter 8
This property is a read only property and returns the name of the printer associated with the object.
Declaration:
C#
string Name;
C++
HRESULT get_Name([out, retval] BSTR* pName);
VB
Property Name As String
Please note that this name can be different from that passed in the Printer properties of the
IPXCControlEx object, if a printer with the requested name already existed.
3.1.2 Property Option
This is a Write only parameterized property option and is used to specify almost all the properties of
the PDF-XChange printer.
9 PDF-XChange Driver API SDK
Declaration:
C#
void set_Option(string pOptionName, object _p2);
C++
HRESULT put_Option ([in] BSTR pOptionName, [in] VARIANT _arg2);
VB
Property Option(pOptionName As String)
A detailed list of all available properties with detailed descriptions is listed in Properties. All
properties are identified by a string for that pOptionName. The name of the property will also usually
contain some parts separated by the dot (.) character. Values of these properties can be strings,
integers, boolean or binary values (an array of bytes).
Each property section has a table detailing the possible property values.
The three columns of the tables provided are always:
· Name. The name of the property. This is what you assign the value to. For example: "Paper.
LayoutType".
· Possible Values. These are the allowed values for the property specified in Name.
· Description. Describes the use or function of the property.
The possible values are described as numbers and corresponding strings, and either may optionally
be used to set the value of the property.
For example: 0 (Normal) means than this property can be set as the integer value 0 or as the name
"Normal".
Therefore, both of these assignments are equivalent:
· pPrinter.Option["Paper.LayoutType"] = 0
· pPrinter.Option["Paper.LayoutType"] = "Normal"
Within the table column "Possible Values" if the entry = "Boolean Value" then an acceptable entry
maybe any of the following:
For the value 0 any one of the following strings would also be acceptable:No, False, Disabled.
For the value 1 any one of the following strings would also be acceptable:Yes, True, or Enable.
For example, both of these two assignments are equivalent:
· pPrinter.Option["Compress.Graphics"] = 1
· pPrinter.Option["Compress.Graphics"] = "Enable"
Please note, names of properties and named values are case sensitive.
Interface IPXCPrinter 10
Properties in this section allow you to define page layouts for the created PDF document.
3.1.2.2.1 Normal
When the LayoutType specified is Normal, the following properties are used to specify the position
and page size on the sheet.
3.1.2.2.2 n-Up
When the LayoutType specified is nUP, the following properties define how many and in which
order, pages should be placed on the sheet.
Nup 0 – one page per sheet Defines the number of pages to be placed on
one sheet.
1 – two pages per sheet
Default value: 0
2 – four pages per sheet
Interface IPXCPrinter 12
3.1.2.2.3 Booklet
When the LayoutType chosen is Booklet, the following properties define the booklet creation
parameters.
GutterSize Positive integer Defines the gutter size for the booklet. Value
is specified in tenths of millimeters.
Default value: 0
List of predefined papers into PDF-XChange 4.0. Number, specified into column Index, can be used to
specify the sheet size into property Paper.SheetSizeIndex.
Column Standard Index contains indexes for paper as it is defined into Windows API. Please note that
13 PDF-XChange Driver API SDK
some paper definitions are specific for PDF-XChange and has no standard index.
Dimension column defines the size of paper for their standard orientation (portrait). Dimensions are
specified in inches or in millimetres.
1 3 Tabloid/ANSI B 11 x 17 "
3 24 ANSI C 17 x 22 "
4 25 ANSI D 22 x 34 "
5 26 ANSI E 34 x 44 "
6 - ANSI F 28 x 40 "
10 - A0 841 x 1189 mm
11 - A1 594 x 841 mm
12 62 A2 420 x 594 mm
13 8 A3 297 x 420 mm
14 9 A4 210 x 297 mm
15 11 A5 148 x 210 mm
16 - B0 1000 x 1414 mm
17 - B1 7070 x 1000 mm
18 - B2 5000 x 7070 mm
21 34 B5 176 x 250 mm
39 - 18x24 18 x 24 "
40 - 24x36 24 x 36 "
41 - 30x42 30 x 42 "
Properties in this section define the PDF Specification to be applied to the created PDF file and the
parameters for the PDF viewing application, which may be used to define the properties used when
opening the document for Viewing.
The properties of this section specify which compression should be used for the PDF document's text
and images.
so a larger file.
Default value: 75
Defines the compression method to be used to compress Monochrome/black & white images.
This section contains three subsections which define how different types of images should be
processed before inserting into a PDF document.
· Section Graphics.color
o Graphics.color.Downsample
o Graphics.color.Convert
· Section Graphics.Indexed
· Section Graphics.MonoAndDrawings
o Graphics.MonoAndDrawings.Convert:
3.1.2.5.1 Section Graphics.Color
Determines image downsampling and conversion options for True color images.
· Subsection Downsample defines when and how images should be downsampled.
· Subsection Convert specifies whether to use color reducing for True color images and into which
format they should be converted.
3.1.2.5.1.1 Graphics.Color.Downsample
3.1.2.5.1.2 Graphics.Color.Convert
Specifies whether color images should be converted to grayscale, monochrome or black & white.
Determines image downsampling and conversion options for indexed images with palettes.
· Subsection Downsample defines when and how images should be downsampled.
· Subsection Convert specifies whether to use color reducing for indexed images and into which
format they should be converted.
3.1.2.5.2.1 Graphics.Indexed.Downsample
3.1.2.5.2.2 Graphics.Indexed.Convert
Specifies whether indexed images should be converted to grayscale, monochrome, or black & white.
This section determines settings for downsampling and converting monochrome images and black &
white drawings.
· Subsection Downsample defines when and how images should be downsampled.
· Subsection Convert specifies whether mono or black & white images should be converted.
3.1.2.5.3.1 Graphics.MonoAndDrawings.Downsample
3.1.2.5.3.2 Graphics.MonoAndDrawings.Convert
Specifies images should be converted as either mono or black & white images.
This sections contains properties which define embedding and other options for fonts to be used in
the PDF document.
Additionally there are two identical subsections AlwaysEmbed and NeverEmbed, which define lists
Interface IPXCPrinter 22
Enable Boolean Value Enable using the list defined by the Fonts
property.
Default value: False
This section defines Digital Signature properties of the document and the properties for the signature
used for signing.
ShowFlags defines the information which should be placed on Signature field appearance. It can be
combination of the following values:
Value Meaning
1 If this value is used, the name of the signer (given from the certificate) will be
shown on the signature field.
4 If this value is used, the text specified by Location property will shown.
8 If this value is used, the text specified by Reason property will shown.
16 If this value is used, Distinguished Name field from certificate will be added
to the signature field.
32 If this value used, each text item placed on the signature field will be
prepended by its corresponding label (for example, Name: Tracker Software
Ltd.)
This section contains properties which define how a newly created document can be overlayed using
an existing PDF file.
N.B. Using overlays automatically disables the PDF/A feature!
This property determines whether to insert live links within the PDF document, what kinds of links,
and how they are to be displayed (Border property).
Enabled Boolean value This will detect URL and mail links - please
note to be valid, links must be valid and
occupy a single line of the page. Embedded
links cannot be recognised (e.g. 'Click Here')
The Border property of this section defines the links border parameters and the way the link will
appear on the page.
These properties allow the developer to enable or disable adding watermark(s) into the document,
and to define a set of these watermarks.
These properties define headers and footers to be placed on all pages of the PDF document.
Headers and footers contain three parts: left, center and right. Each part specifies the texts color and
font that should be inserted into the document.
· Text placed in the left part is left aligned and placed at the left of the page (position for header’s
left part are defined by OffsetTop and OffsetLeft properties).
· Text of center part is center aligned on the page.
· Text of the right part is right aligned.
Any of the text fields may contain macros, which will be replaced with their values during printing of
the PDF.
Interface IPXCPrinter 30
Header and footer are defined with two subsections, Header and Footer which are identical and
contain three identical subsections Left, Center, and Right. Each part has properties:
Font String The Font used for text which will be added
into the document.
Default value: Arial.
FontSize 10 – 32768 Specifies font size for the text. Font size is
specified in tenth of point (1 point is 1/72
inch).
Default value: 100
For example, to place a red label with the current page number at the right-top corner of each page,
31 PDF-XChange Driver API SDK
using Verdana Bold font with 12 pt size, the following properties should be set:
C++
printer.Option[L“HeadersFooters.Enabled”] = TRUE;
printer.Option[L“HeadersFooters.Header.Right.Font”] = L“Verdana”;
printer.Option[L“HeadersFooters.Header.Right.FontBold”] = TRUE;
printer.Option[L“HeadersFooters.Header.Right.FontSize”] = 120;
printer.Option[L“HeadersFooters.Header.Right.color”] = RGB(255, 0, 0);
printer.Option[L“HeadersFooters.Header.Right.Value”] = L“Page %[Page]”;
VB
With PDFPrinter
.Option(“HeadersFooters.Enabled”) = TRUE;
.Option(“HeadersFooters.Header.Right.Font”) = “Verdana”;
.Option(“HeadersFooters.Header.Right.FontBold”) = “Yes”;
.Option(“HeadersFooters.Header.Right.FontSize”) = 120;
.Option(“HeadersFooters.Header.Right.color”) = 255;
.Option(“HeadersFooters.Header.Right.Value”) = “Page %[Page]”;
End With
3.1.2.13 Section DocInfo
The properties of this section allow PDF document information fields to be defined and allow adding
of XMP Metadata within the PDF document.
Using properties of this section it is possible to define the folder where PDF document should be
stored, the file name of the document and other document saving options.
dialogs.
If the value is AutoNumber, pdfSaver will
change the name of the destination file by
appending with a numeric value. The format
of this number is specified by
AutoNumber.Start and
AutoNumber.NumDigits properties.
Values Append and InsertBefore allow
pdfSaver to merge existing and newly
created PDF documents by placing the
newly created PDF at the end (for value
Append) or at the beginning (InsertBefore)
of the existing file.
Please note, these options are not available
when PDF/A feature is used.
Default value: 0 (ShowWarning)
Email properties are used when the created PDF file should be emailed after creation and define the
parameters for emailing. The created PDF file will be sent as an attachment of this email.
ZIP Boolean value Specifies how the PDF file should be added
as an attachment to the email.
When True, the PDF file should be sent as a
ZIP archive.
When False, the PDF file should be sent as
the original PDF file.
Default value: True - send as ZIP archive
Blending One of following integer Specifies blending mode used for blending
value: line art during printing from some
application (for example from AutoCAD
0 – Normal
when lines overlaing is enabled in it).
1 – Multiply
Default value: 4
37 PDF-XChange Driver API SDK
2 – Screen
3 – Overlay
4 – Darken
5 – Lighten
6 – colorDodge
7 – colorBurn
8 – HardLight
9 – SoftLight
10 – Difference
11 – Exclusion
for viewing.
Default value: True
This section activates automatic bookmark tree creation for the PDF document and defines the
parameters for this process.
PDF-XChange supports macros for file naming and for headers/footers text. All macros has syntax:
%[Macro{:extra}]
Where Macro is a name of the macro value, and extra defines extra specifier for the macro.
Items between {} are optional. Not all macros use an extra specifier, and will ignore all text after : up
to closing bracket ].
The following macros are support into PDF-XChange:
DocPath not defined Specifies the path part (if it is present) of the
document name passed by the printing
application.
Date Format string. See below for Has a value of date of document printing.
syntax of format string. Value can be formatted using format
specified in extra part of the macro. When
no extra is specified, default regional
settings are used for formatting.
regional settings.
Time Format string. See below for Printing time as string. Value can be
syntax of format string. formatted using format specified in extra
part of the macro. When no extra is
specified, default regional settings are used
for formatting.
User not defined The name (login name) of user who makes
printing.
Page not defined Current page number. Can be used only for
headers and footers. Starting page number
is defined by
HeadersFooters.FirstPageNumber property.
Format of picture string used to form the date string. The following elements can be used to
construct a format picture string. If there are spaces to separate the elements in the format string,
these spaces will appear in the same location in the result string. The letters must be in uppercase or
lowercase as shown in the table, for example, "MM" not "mm". Characters in the format string that
are enclosed in single quotation marks appear in the same location and unchanged in the output
string.
Picture Meaning
Interface IPXCPrinter 42
y Year as last two digits, but with no leading zero for years less than 10.
yy Year as last two digits, with leading zero for years less than 10.
yyyy Year represented by full four or five digits, depending of the calendar used.
Thai Buddhist and Korean calendars both have five digit year. The "yyyy"
pattern will show five digits for these two calendars, and four digits for all
other supported calendars.
gg Period/era string. This element is ignored if the date does not have an
associated era or period string. Depends of regional settings.
Format of picture string used to form the time string. The following elements can be used to
construct a format picture string.
Picture Meaning
3.2 Methods
Methods are used to perform ActiveX control actions that simple property assignments cannot
accomplish.
· Method SetRegInfo is used to set registration information specific for developer for the printer.
· Method ResetDefaults resets all properties to their default values.
· Method ApplyOptions is used to apply all properties changed with property Option.
· Method AddBookmarkItem adds a new item into bookmarks template tree.
· Method AddTextWatermark is used to define a new text watermark which may be added to the
document.
· Method AddImageWatermark is used to define a new image watermark which may be added to
the document.
· Method StorePrinterOptions is used to store all printer options into any external storage which
supports an IStream interface.
· Method ReStorePrinterOptions restores all printer options previously stored by method
StorePrinterOptions.
· Method SetAsDefaultPrinter sets the printer associated with the IPXCPrinter object as the system
default printer.
· Method RestoreDefaultPrinter restores the system default printer which was stored during a call
to the SetAsDefaultPrinter method.
· Method AddSMTPServer adds a definition of an SMTP server, which can be used for sending PDF
files via email.
3.2.1 Method SetRegInfo
This method is used to set registration information specific for developer for the printer. This method
may be used when registration information was not passed into the Printer property of
IPXCControlEx object during printer creation.
Declaration:
C#
void SetRegInfo(string pRegKey, string pDevCode);
C++
HRESULT SetRegInfo([in] BSTR pRegKey, [in] pDevCode);
VB
Sub SetRegInfo(pRegKey As String, pDevCode As String)
Interface IPXCPrinter 44
This method resets all properties to their default values, as defined in the Properties sections above.
Declaration:
C#
void ResetDefaults();
C++
HRESULT ResetDefaults();
VB
Sub ResetDefaults()
This method is used to apply all properties changed with property Option.
This method should be called before printing onto the printer associated with the IPXCPrinter object.
Declaration:
C#
void ApplyOptions(int dwFlags);
C++
HRESULT ApplyOptions([in] DWORD dwFlags);
VB
Sub ApplyOptions(dwFlags As Long)
dwFlags
Reserved for further usage and should be set to 0.
Method AddBookmarkItem adds a new item into the bookmarks template tree. Returned value from
this method can be used for subsequent calls of this method.
Declaration:
C#
int AddBookmakrkItem(int nParent,
int dwDetectFlags,
string sDet_FontName,
int nDet_FontStyle,
int nDet_Size,
int nDet_SizeDelta,
int nDet_Textcolor,
int dwDisplayFlags,
int dwDisplaycolor);
45 PDF-XChange Driver API SDK
C++
HRESULT AddBookmakrkItem([in] long nParent,
[in] long dwDetectFlags,
[in] BSTR sDet_FontName,
[in] long nDet_FontStyle,
[in] long nDet_Size,
[in] long nDet_SizeDelta,
[in] long nDet_Textcolor,
[in] long dwDisplayFlags,
[in] long dwDisplaycolor,
[out,retval] long* pID);
VB
Function AddBookmakrkItem(nParent As Long,
dwDetectFlags As Long,
sDet_FontName As String,
nDet_FontStyle As Long,
nDet_Size As Long,
nDet_SizeDelta As Long,
nDet_Textcolor As Long,
dwDisplayFlags As Long,
dwDisplaycolor As Long) As Long
nParent
Specifies the parent ID of the item to be created. This could be a value returned from a previous
call to this function, or -1, if the item should be a top level item.
dwDetectFlags
A bit combination integer value which specifies which properties of the body text are to be used
to match it as a bookmark item. A combination of the following values can be used.
1 2 If this bit is set, the font style specified is used by the nDet_FontStyle
parameter to determine all matching text/strings.
2 4 If this bit is set, the font size specified is used by the nDet_Size and
nDet_SizeDelta parameters to determine all matching text/strings
Text with the font size nDet_Size ± nDet_SizeDelta matches and is
therefore added as a bookmark item.
3 8 If this bit is set, the text color specified by nDet_Textcolor is also used
as part of the process in detecting potential matches.
The value of this parameter cannot be zero (0); at least one matching parameter must be used.
Interface IPXCPrinter 46
sDet_FontName
Specifies the font name for matching.
nDet_FontStyle
Specifies the font style for matching as an integer value which may have any one of the following
values:
Value Meaning
0 Normal Font
1 Bold Font
2 Italic Font
nDet_Size
Specifies the font size to be used for matching. The font size is specified in tenths of a point (one
point = 1/72 inches). This unit is 1/720 of an inch.
nDet_SizeDelta
Specifies the font size delta to be used for matching. The delta value is specified in tenths of a
point (one point = 1/72 inches). This unit is 1/720 of an inch.
nDet_Textcolor
Specifies text color to be used for matching.
dwDisplayFlags
A bit combination integer value which defines how the bookmark item will be shown in the
bookmark tree of the PDF viewing application. May be a combination of the following flags:
0 1 When this bit is set, the bookmark item will be drawn using a bold font.
1 2 When this bit is set, the bookmark item will be drawn using an italic
font.
2 4 When this bit is set, the bookmark item will be initially opened in the
bookmark tree window of the viewing application. This flag is used only
when the property Bookmarks.DisplayMode has a value ByItem.
dwDisplaycolor
Specifies the color bookmark items will be displayed in, if matching this template, in the viewer’s
bookmark tree window. The RGB Macro defined in the Windows API may be used to specify the
color value.
Return Value
This function returns an internal ID for the newly created bookmark item. This value may be used
as a nParent parameter for later calls to the AddBookmarkItem method.
47 PDF-XChange Driver API SDK
Example.
The following example creates simple bookmarks detection tree, which makes text drawn using
Times New Roman, 12 pt, bold font as top-level items. And items drawn by the same font, but not
bold - as second level items. Also items drawn using Arial, bold, 14 pt, will be added as top level item
and will be dispalayed using red color.
VB
Dim parent as Long
parent = PXCPrinter.AddBookmakrkItem(-1, 7, "Times New Roman", 1, 120, 5, 0, 0,
0)
PXCPrinter.AddBookmakrkItem(parent, 7, "Times New Roman", 0, 120, 5, 0, 0, 0)
PXCPrinter.AddBookmakrkItem(-1, 7, "Arial", 1, 140, 5, 0, 0, 255)
3.2.5 Method AddTextWatermark
This method is used to define a new text watermark to be added to the document. This methods
parameters correspond to the parameters available in the PDF-XChange Driver V 4.x GUI during the
adding/editing of a Text Watermark (topic Watermarks; Add… button).
Declaration:
C#
void AddTextWatermark(
string sName,
string sText,
string sFontName,
int dwFontWeight,
int bItalic,
int bOutline,
int nFontSize,
int nLineWidth,
int nTextcolor,
int dwAlign,
int xOffset,
int yOffset,
int nAngle,
int dwOpacity,
int dwFlags,
int dwPlaceType,
string sRange);
C++
HRESULT AddTextWatermark(
[in] BSTR sName,
[in] BSTR sText,
[in] BSTR sFontName,
[in] long dwFontWeight,
[in] long bItalic,
[in] long bOutline,
[in] long nFontSize,
[in] long nLineWidth,
[in] long nTextcolor,
Interface IPXCPrinter 48
sText
Specifies the watermark text.
sFontName
Specifies the font (by name) to use when drawing the watermark. N.B. Required !
dwFontWeight
Specifies the weight of the font. Possible values are: 400 for Normal and 700 for Bold.
bItalic
When True, specifies the italic variant of the font identified by the sFontName parameter.
bOutline
When True, the text will be drawn as an outline; when False, as solid filled text.
nFontSize
Specifies the font size of the text. Font size is specified in tenths of a point (1 pt = 1/72 inch).
When this parameter is 0 (zero), the font size will be adjusted to fit the entire page.
49 PDF-XChange Driver API SDK
nLineWidth
Specifies the line width for outlining the contour of the text. Line width is specified in tenths of
points. Used only when bOutline is TRUE.
nTextcolor
Specifies the text color of the watermark.
dwAlign
Specifies the text alignment on the page. When nFontSize is 0 (zero) this parameter is ignored and
the watermark will be centered vertically and horizontally (value 9).
dwAlign may be a combination any of the following values:
1 2 Right Align: Cannot be set when bit 0 (Horizontal center align is set)
When both bits 0 and 1 is not set, Left align used.
xOffset, yOffset
Specify Horizontal and Vertical offsets for the watermark relative to the top-left corner of the
page. Values are specified in tenths of millimeters.
nAngle
Specifies the Rotation angle for the watermark. Possible values are from -90 to 90 degrees.
Positive values mean counterclockwise rotation.
dwOpacity
Specifies the Opacity level of the watermark. Value must be in the range of 0 (fully transparent) to
100 (fully opaque).
dwFlags
Bit combination integer value which defines how the watermark should be placed and when it
should be visible, may be a combination of the following flags:
dwPlaceType
Defines on which pages the watermark should be placed. May be any of the following values:
Value Meaning
sRange
A String defining the page range(s) onto which the watermark should be placed. Each range can
be: page number, or range of pages in the form [p1]-[p2], which means from p1 to p2 inclusive.
One of p1 or p2 may be omitted. In this case all pages prior to p2 or all pages after p1 will be
included into the range. Ranges should be separated by a comma(,) or semicolon (;).
Example of range string: "-3, 5, 7-11, 15-". This decodes as "pages 1, 2, 3, 5, 7, 8, 9, 10, 11, 15 to
the end of the document."
This method is used to define a new image watermark to be added to the document. The parameters
of this method correspond to the parameters available in the PDF-XChange Driver V 4.x UI during
the adding/editing of a text watermark (page Watermarks; Add… button).
Declaration:
C#
void AddImageWatermark(
string sName,
string sImageFileName,
int dwTranscolor,
int dwWidth,
int dwHeight,
int dwAlign,
int xOffset,
int yOffset,
int nAngle,
51 PDF-XChange Driver API SDK
int dwOpacity,
int dwFlags,
int dwPlaceType,
string sRange);
C++
HRESULT AddImageWatermark(
[in] BSTR sName,
[in] BSTR sImageFileName,
[in] long dwTranscolor,
[in] long dwWidth,
[in] long dwHeight,
[in] long dwAlign,
[in] long xOffset,
[in] long yOffset,
[in] long nAngle,
[in] long dwOpacity,
[in] long dwFlags,
[in] long dwPlaceType,
[in] BSTR sRange);
VB
Sub AddImageWatermark(
sName As String,
sImageFileName As String,
dwTranscolor As Long,
dwWidth As Long,
dwHeight As Long,
dwAlign As Long,
xOffset As Long,
yOffset As Long,
nAngle As Long,
dwOpacity As Long,
dwFlags As Long,
dwPlaceType As Long,
sRange As String)
sName
Specifies the name of the newly created watermark item. This name may be used in the
Watermarks property. If there is already an existing watermark with the same name, it will be
over written.
sImageFileName
Specifies the fully qualified path name to the image file to be used as a watermark. The image
may be in any of the following supported image formats: BMP, PNG, JNG, JPEG, JPEG 2000, TIFF,
JBIG, JBIG2, GIF, PCX, DCX, EMF, WMF. If the image is a multipage image, only the first page will
be used as a watermark.
dwTranscolor
Specifies the transparent color for the image. If this parameter is anything other than -1, each
pixel in the sImageFileName image which has a color specified by the dwTranscolor parameter
will be transparent in the PDF file generated.
dwWidth, dwHeight
Specifies the dimensions of the watermark. The image specified by the sImageFileName
Interface IPXCPrinter 52
parameter will be resized to 'fit' within the specified area and will retain its aspect ratio.
All other parameters of this method have the same meaning as the corresponding parameters of
AddTextWatermark method.
Return value
The method returns S_OK if successful, or an error code if it fails.
3.2.7 Method StorePrinterOptions
This method is used to store all printer options into any external storage method supporting an
IStream interface.
Declaration:
C#
void StorePrinterOptions(IStream pStream);
C++
HRESULT StorePrinterOptions(IStream* pStream);
VB
Sub StorePrinterOptions(pStream As IStream)
pStream
Pointer to the IStream object into which all printer properties will be serialized.
Return value
The method returns S_OK if successful; otherwise an error code is returned.
This method restores all original printer options previously saved using the method
StorePrinterOptions to save to an external storage method supporting an IStream interface.
Declaration:
C#
void ReStorePrinterOptions(IStream pStream);
C++
HRESULT ReStorePrinterOptions(IStream* pStream);
VB
Sub ReStorePrinterOptions(pStream As IStream)
pStream
Pointer to the IStream object where the printer properties are to be stored.
Return value
The method returns S_OK if successful; otherwise an error code is returned.
53 PDF-XChange Driver API SDK
This method sets the printer associated with the IPXCPrinter object as the system default printer.
The original system default printer can be restored later using the method RestoreDefaultPrinter.
The original system default printer will be restored automatically when releasing the IPXCPrinter
object.
Declaration:
C#
void SetAsDefaultPrinter();
C++
HRESULT SetAsDefaultPrinter();
VB
Sub SetAsDefaultPrinter()
Return value
The method returns S_OK if successful; otherwise an error code is returned.
This method restores the original system default printer modified when calling SetAsDefaultPrinter
method. If the method SetAsDefaultPrinter was not previously called this method is ignored.
Declaration:
C#
void RestoreDefaultPrinter();
C++
HRESULT RestoreDefaultPrinter();
VB
Sub RestoreDefaultPrinter()
Return value
The method returns S_OK if successful; otherwise an error code is returned.
This method adds the parameters of a defined SMTP server, which may then be used for sending PDF
files via email.
For more details see description of EMail section.
Declaration:
C#
void AddSMTPServer(
string sName,
int nPort,
int bNeedAuth,
Interface IPXCPrinter 54
string sUser,
string sPassword,
long bSecureConnection);
C++
HRESULT AddSMTPServer(
[in] BSTR sName,
[in] long nPort,
[in] long bNeedAuth,
[in] BSTR sUser,
[in] BSTR sPassword,
[in] long bSecureConnection);
VB
Sub AddSMTPServer(
sName As String,
nPort As Long,
bNeedAuth As Long,
sUser As String,
sPassword As String,
bSecureConnection As Long)
sName
Specifies the name or IP address of the SMTP server.
nPort
Specifies the port number to be used to communicate with the SMTP server. The usual SMTP
default is port 25.
bNeedAuth
Set to True if the specified server requires authorization for sending email.
sUser
User name used for authorization on the server. Not used when bNeedAuth is False.
sPassword
Password used for access authorization to the server. Not used when bNeedAuth is False.
bSecureConnection
Set to True if the server requires a secure connection or False otherwise.
Return value
Method returns S_OK if success, and other values on fail.
3.3 Events
The IPXCPrinter interface provides events which can be used by a Developer's applications to
determine the stage of the PDF creation process. Some events are fired during document spooling
and these events are asynchronous to prevent dead-locking. Events which are fired during the
generation of PDF documents are synchronous.
An asynchronous event means that PDF-XChange fires the event and will not wait while application
receives this event and returns from it. It also means that the application will receive these events
immediately when they are fired.
55 PDF-XChange Driver API SDK
When a synchronous event is fired, PDF-XChange will wait until the application has finished this
event.
All events have a JobID parameter which specifies an internal Job identifier of the printed document.
This ID can be used when multiple documents are printing to determine from which document the
event was fired.
The following events are supported in PDF-XChange Driver v4.
· Asynchronous Events:
o Event OnStartDoc is fired when a new document starts to print.
o Event OnStartPage is fired for each page when it starts to print.
o Event OnEndPage is fired for each page after it prints.
o Event OnEndDoc is fired when the complete document is spooled by the GDI.
· Synchronous Events:
o Event OnDocSpooled is fired immediately when PDF-XChange starts processing the document
that was printed by the GDI.
o Event OnFileSaved is fired when the PDF file is saved.
o Event OnFileSent is fired when emailing of the PDF file was enabled and after the email was
sent. If emailing is not enabled this event will not fire.
o Event OnError is fired when an error occurs during the processing of the PDF file.
3.3.1 Asynchronous Events
C#
event OnStartDoc(int JobID, string lpszDocName, string lpszAppName);
C++
HRESULT OnStartDoc(LONG JobID, BSTR lpszDocName, BSTR lpszAppName);
VB
Event OnStartDoc(JobID As Long, lpszDocName As String, lpszAppName As String)
JobID
Internal Job identifier.
Interface IPXCPrinter 56
lpszDocName
Specifies the document name as it was passed from the printing application.
lpszAppName
Specifies the module name of the printing application.
Return value
PDF-XChange ignores returned values from this event.
3.3.1.2 Event OnStartPage
C#
event OnStartPage(int JobID, int nPageNumber);
C++
HRESULT OnStartPage(LONG JobID, LONG nPageNumber);
VB
Event OnStartPage(JobID As Long, nPageNumber As Long)
JobID
Internal Job identifier.
nPageNumber
Zero based page number when spooling.
Return value
PDF-XChange ignores returned values from this event.
3.3.1.3 Event OnEndPage
C#
event OnEndPage(int JobID, int nPageNumber);
C++
HRESULT OnEndPage(LONG JobID, LONG nPageNumber);
VB
Event OnEndPage(JobID As Long, nPageNumber As Long)
JobID
Internal Job identifier.
nPageNumber
Zero based page number spooled.
57 PDF-XChange Driver API SDK
Return value
PDF-XChange ignores returned values from this event.
3.3.1.4 Event OnEndDoc
This event is fired when the complete document has been spooled by the GDI.
Declaration:
C#
event OnEndDoc(int JobID, int bOK);
C++
HRESULT OnEndDoc(LONG JobID, LONG bOK);
VB
Event OnEndDoc(JobID As Long, bOK As Long)
JobID
Internal Job identifier.
bOK
When this parameter is True, the document has fully spooled and PDF-XChange will continue to
process this document to produce the PDF file. If there was an error during printing (e.g. printing
cancelled) there will be no further document processing.
Return value
PDF-XChange ignores returned values from this event.
This event is fired immediately PDF-XChange begins processing the document printed by the GDI.
Declaration:
C#
event OnDocSpooled(int JobID, string lpszDocName, string lpszAppName);
C++
HRESULT OnDocSpooled(LONG JobID, BSTR lpszDocName, BSTR lpszAppName);
Interface IPXCPrinter 58
VB
Event OnDocSpooled(JobID As Long, lpszDocName As String, lpszAppName As String)
These event parameters are identical to the parameters for the OnStartDoc event.
During handling for this event the application can set document specific properties (for example, the
path where the PDF document should be stored as defined by the printing application).
The application should return S_OK from this event handler.
This event is fired when the PDF file is saved. This allows the application to perform any
application-based processing to this file.
Declaration:
C#
event OnFileSaved(int JobID, string lpszFileName);
C++
HRESULT OnFileSaved(LONG JobID, BSTR lpszFileName);
VB
Event OnFileSaved(JobID As Long, lpszFileName As String)
JobID
Internal Job identifier.
lpszFileName
Specifies the fully qualified path name for where the PDF document has been saved.
Return value
PDF-XChange ignores returned values from this event.
3.3.2.3 Event OnFileSent
This event is fired when emailing of a PDF file is enabled and after the email has been sent. If
emailing is not enabled, this event will not be fired.
Declaration:
C#
event OnFileSent(int JobID, string lpszFileName);
C++
HRESULT OnFileSent(LONG JobID, BSTR lpszFileName);
VB
Event OnFileSent(JobID As Long, lpszFileName As String)
Parameters for this event are the same as the parameters for the OnFileSaved event.
59 PDF-XChange Driver API SDK
This event is fired when an error occurs during the processing of the PDF file. It further indicates that
the events OnFileSaved and/or OnFileSent will not be fired for this document and processing of the
document is terminated.
Declaration:
C#
event OnError(int JobID, int dwErrorCode);
C++
HRESULT OnError(LONG JobID, LONG dwErrorCode);
VB
Event OnError(JobID As Long, dwErrorCode As Long)
JobID
Internal Job identifier.
dwErrorCode
Specifies an error (code) occurred during document processing.
Return value
PDF-XChange ignores the returned values from this event.
4.1 Contact Us
North America
All this information and a good deal more is available via our web site and the links provided.
Magazine reviews and press requests.
We are keen to assist in any way possible - please contact our sales department for any information
or help you may require.
4.2 Products
Products Offered By Tracker Software Products Updates Can be downloaded from our Downloads
page at our Web site
Trial Versions
All of our products are available as fully functional evaluation downloads for you to try before you
Tracker Software Products 62
buy - usually printing a demo watermark/stamp to differentiate between output created with the
evaluation or licensed versions. We recommend that all users test the product they wish to buy first -
thus ensuring you only buy when you are satisfied that the product meets your needs.
Refunds will not be issued except in exceptional circumstances once your license codes have been
issued.
Trial versions are available from our web site - www.docu-track.com
The PDF-XChange Drivers API SDK allows a developer to distribute their application with the
Developers version of the PDF-XChange Drivers - Royalty Free to up to 100,000 users desktops
without further cost - subject to our standard terms and conditions as outlined in the license
agreement below.
Should you need a greater number of distribution licenses than outlined above - please do contact us
and we will do all we can to provide a workable solution to suit your needs.
Please note a developer's license information should always be kept private and no developer key
should ever be entered or used in the PDF-XChange Drivers GUI. Further a developer license never
entitles the distribution of the End User version of the PDF-XChange drivers with an end user license
key, this must always be specifically licensed for such purposes by our OEM sales department and a
separate OEM License agreement is completed.
Once Licensed
Once you have purchased the PDF-XChange Drivers API SDK, you will receive your REG.KEY and
DEV.CODE and these must be embedded in your project code and your project recompiled for 'Live'
use before distribution to your Clients, otherwise all PDF pages created will bear the evaluation
watermarks placed on the top corners of each page.
License Agreement.
License Agreement : PDF-XChange & PDF-Tools Software Developer Kits (SDK’s) from Tracker Software Products Ltd
2001-8
PRINTED BELOW IN ITS ENTIRETY IS THE LICENSE AGREEMENT GOVERNING YOUR USE OF THE SOFTWARE. PLEASE
READ THE LICENSE AGREEMENT.
IMPORTANT
TRACKER SOFTWARE PRODUCTS LTD. IS WILLING TO LICENSE THE ENCLOSED SOFTWARE TO YOU ONLY UPON THE
CONDITION THAT YOU ACCEPT ALL OF THE TERMS CONTAINED IN THE LICENSE AGREEMENT PRINTED BELOW. PLEASE
READ THE TERMS CAREFULLY BEFORE OPENING THE PACKAGE CONTAINING THE DISKETTE(S)/CD-R(S), Electronic File OR
CLICKING THE ACCEPT BUTTON DURING INSTALLATION, AS SUCH CONDUCT INDICATES YOUR ACCEPTANCE TO ALL OF
THE TERMS OF THIS LICENSE AGREEMENT. IF YOU DO NOT AGREE TO THE TERMS, TRACKER SOFTWARE PRODUCTS LTD
IS UNWILLING TO LICENSE THE SOFTWARE TO YOU, IN WHICH CASE YOU MUST IMMEDIATELY RETURN THE PACKAGE
AND ALL ACCOMPANYING MATERIAL TO TRACKER SOFTWARE PRODUCTS LTD. OR YOUR AUTHORIZED DEALER FOR A
FULL REFUND.
This License Agreement ("Agreement") is a legal agreement between Tracker Software Products Ltd, (Tracker), a
Company registered in England, principally located in Turners Hill, West Sussex, England, and you, the user ("Licensee"),
and is effective the date Licensee opens the package containing the diskette(s)/CD-R(s) or otherwise uses the enclosed
63 PDF-XChange Driver API SDK
software product.
This Agreement covers all materials associated with Tracker’s PDF-XChange API/SDK developer’s toolkit products
including the enclosed software product ("Software") with the exception of the PDF-XChange PDF Viewer SDK for which
there is a specific and separate license agreement.
1. GRANT OF DEVELOPMENT LICENSE
TRACKER grants Licensee a non-exclusive, non-transferable, worldwide license for one (1) programmer to install the
Software on a single personal computer and use the Software and one copy of the associated user documentation
contained in the accompanying user manual, "online" help and Acrobat files ("Documentation") in the development of
End User software application’s as contemplated in section 2 below (herein, the "Application Software"). If additional
programming seats are needed, Licensee should contact TRACKER for discounted license pricing. The license granted
hereunder applies only to the designated version of the enclosed Software. If the Software is an upgrade or cross grade,
it, and the product that was upgraded/cross graded constitute a single copy of the Software for purposes hereof and the
new version and product that was upgraded/cross graded cannot be used by two people at the same time.
2. END USER APPLICATION
The Application Software developed by Licensee must be an "End User Application." An "end user application" is a
specific application program that is licensed to a person or firm for business or personal use and not with a view toward
redistributing the application or any part of the application, and may be either an application that is used by Licensee
internally, or an application that is commercially distributed to end users for their use. A user of an end user application
may not modify or redistribute the application and may not copy it (other than for archival purposes). Licensee’s license
agreement covering the Application Software must contain restrictions prohibiting redistribution, modification and
copying of the Application Software. The license rights hereunder do not apply to the development and deployment of
software products such as Printer Drivers, ActiveX controls, plug-ins, authoring tools, development toolkits, compilers,
operating systems and also software products where a primary or significant function is to generate or view ‘PDF’
format files (as defined by Adobe Systems Inc’) and other file formats from 3rd party software applications not
developed by the licensee, indirectly or otherwise, - such as Microsoft’s ‘Office’ suite and component applications other
than for the purpose of creating and then storing such files within a structured application for the archival and
management of documents that is developed by the licensee and any other software not falling within the definition of
an end user application. If Licensee wishes to develop a product outside the scope of this license, Licensee should
contact TRACKER’S OEM Sales department to see if a special license is available.
3. GRANT OF DUPLICATION AND DISTRIBUTION LICENSE
The Software includes certain runtime libraries and files intended for duplication and distribution by Licensee within the
Application Software to the user of Application Software ("Redistributable's"). The Redistributable components of the
Software are those files specifically designated as being distributable in the "Files to be Included with Your Application"
section of the Online Help file, the terms of which are hereby incorporated herein by reference. Licensee should refer to
the Documentation and specifically the "Online Help" file for additional information regarding the Redistributable's.
Under TRACKER’S copyright, and subject to all the restrictions and conditions set forth in this Agreement and the
Documentation, TRACKER hereby grants Licensee (and only Licensee) a non-exclusive, non-transferable, worldwide
license to reproduce exact copies of the Redistributable's and include such files in the Application Software, and to
deploy the Application Software internally and/or distribute the Application Software, directly or through customary
distribution channels, to end users on a royalty free basis. (The foregoing sentence does not apply if Licensee has
licensed Tracker’s PDF-XChange Printer Driver for Windows – for ‘End User’ use (as Opposed to the API/SDK Toolkit
Licensed products. This product requires additional run time licensing based on use/distribution of the Application
Software: see Section 4, "Duplication and Distribution of Royalty Bearing Versions " below.) If Licensee wishes to use an
OEM who will modify the Application Software and copy it, Licensee must first obtain an OEM distribution license from
TRACKER or must require the OEM to obtain a license from TRACKER. Duplication or Redistribution of the Application
Software, or any portion thereof, by the users of the Application Software, without a separate written redistribution
license from TRACKER is prohibited. If the enclosed Software is packaged "For Evaluation Only," no right to copy and/or
distribute the Redistributable's is granted. No rights to copy or redistribute the Application Software are granted until
such time as Licensee has properly registered the Software with TRACKER and otherwise complied with this Agreement.
Unless otherwise agreed in writing by Tracker, developer must distribute any Print drivers included using the Tracker
Installation executable file provided for this purpose to ensure correct distribution and licensing adherence.
Once licensed, you may create and distribute a maximum of 100,000 end user application licenses incorporating any part
of the allowed elements of this developer’s kit - should the number of licenses you intend to distribute (or have already
distributed) exceed this figure (other than for demonstration, evaluation or publicity purposes) then you must contact
Tracker Software Products immediately and prior to (further) distribution or as soon as it becomes known to you that
this figure has or will exceed this number, to discuss alternative licensing options. Further you agree at any time, on
request and within 30 days of such request, to supply a duly audited and notarised account of application licenses
delivered/sold where components of this licensed developer kit have been used and distributed – other than for
Tracker Software Products 64
prohibited by the ACT and the regulations there under or will be used for any purpose prohibited by the same. Licensee
acknowledges that the Software may include "technical data" subject to export and re-export restrictions imposed by
U.S. law. Licensee bears all responsibility for export law compliance and will indemnify TRACKER against all claims based
on Licensee’s exporting of the Application Software.
9. U.S. GOVERNMENT RESTRICTED RIGHTS LEGEND
Use, duplication or disclosure by the Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the
Rights in Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR 52.227-19, as applicable.
Manufacturer/Contractor is TRACKER SOFTWARE PRODUCTS LTD, Units 1-3, Burleigh Oaks, East Street, Turners Hill, West
Sussex. England.RH10 4PZ
10. TERM
The license granted hereby is effective until terminated. Licensee may terminate the license by returning the Software
and Documentation to TRACKER, without refund, and destroying all copies thereof in any form. TRACKER may terminate
the licenses if Licensee fails to comply with any term or condition of this Agreement or any corresponding duplication
and distribution agreement for Printer Driver Products. Upon such termination, Licensee shall cease using the Software
and cease using or distributing the Application Software containing the Redistributable's. All restrictions prohibiting
Licensee’s use of the Software and intellectual property provisions relating to Software running to the benefit of
TRACKER will survive termination of the license pursuant hereto. Termination will not affect properly granted end user
licenses of the Application Software distributed by Licensee prior to termination.
11. EXCLUSION OF WARRANTIES
TRACKER and its suppliers offer and Licensee accepts the Software "AS IS." TRACKER and its suppliers do not warrant the
Software will meet Licensee’s requirements or will operate uninterrupted or error-free. ALL WARRANTIES, EXPRESS OR
IMPLIED, ARE EXCLUDED FROM THIS AGREEMENT AND SHALL NOT APPLY TO ANY SOFTWARE LICENSED UNDER THIS
AGREEMENT, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT.
12. LICENSEE’S REMEDIES: LIMITATIONS
LICENSEE’S SOLE AND EXCLUSIVE REMEDIES AGAINST TRACKER ON ANY AND ALL LEGAL OR EQUITABLE THEORIES OF
RECOVERY SHALL BE, AT TRACKER’S SOLE DISCRETION, (A) REPAIR OR REPLACEMENT OF DEFECTIVE SOFTWARE; OR (B)
REFUND OF THE LICENSE FEE PAID BY LICENSEE.
13. NO LIABILITY FOR CONSEQUENTIAL DAMAGES
In no event shall TRACKER, or its suppliers, be liable for any damages whatsoever (including, without limitation, damages
for loss of business profits, business interruption, loss of business information or other pecuniary loss) arising out of use
of or inability to use the Software, even if TRACKER or its dealer have been advised of the possibility of such damages.
Some states do not allow the exclusion or limitation of certain implied warranties or the exclusion or limitation of
incidental or consequential damages, in which case and to the extent such exclusion or limitation is not allowed, some of
the foregoing limitations and exclusions may not apply to Licensee.
14. GENERAL
This Agreement shall be interpreted, construed, and enforced according to the laws of England. In the event of any
action under this Agreement, the parties agree that courts located in England will have exclusive jurisdiction and that a
suit may only be brought in England, and Licensee submits itself for the jurisdiction and venue of the courts located in
England. This Agreement constitutes the entire agreement and understanding of the parties and may be modified only in
writing signed by both parties. No officer, salesman, or agent has any authority to obligate TRACKER by any terms,
stipulations or conditions not expressed in the Agreement. All previous representations and agreements, if any, either
verbal or written, referring to the subject matter of this Agreement are void. If any portion of this Agreement is
determined to be legally invalid or unenforceable, such portion will be severed from this Agreement and the remainder
of the Agreement will continue to be fully enforceable and valid. This Agreement, and the rights hereunder, may not be
transferred or assigned by Licensee, whether by oral or written assignment, sale of assets, merger, consolidation or
otherwise, without the express written consent of TRACKER. Licensee agrees to be responsible for any and all losses or
damages arising out of or incurred in connection with the Application Software. Licensee agrees to defend, indemnify
and hold TRACKER harmless from any such loss or damage, including attorney’s fees, arising from the use, operation or
performance of the Application Software or Licensee’s breach of any terms of this Agreement. Licensee shall be
responsible for paying all state and federal use, sales or value added taxes, duties or governmental charges, whether
presently in force or which come into force in the future, related to the distribution and sale of the Application Software
and will indemnify TRACKER against any claim made against TRACKER relating to any such taxes or assessments.
Tracker Software Products 66
Copyright © 2001-8 Tracker Software Products Ltd, Units 1-3, Burleigh Oaks, East Street, Turners Hill, West Sussex.
England.RH10 4PZ
ALL RIGHTS RESERVED. All Other Trademark’s acknowledged & are the property of their respective owners.
PDF-XChange Templates & Classes for Clarion for Windows (PDF-XChange-API/SDK customers only)
PDF-XChange API/SDK (PDF-XChange-API/SDK customers only)
PDF-XChange SDK Printer Driver (PDF-XChange-Print Driver customers only)
PDF-Tools SDK Templates & Classes for Clarion for Windows (PDF-Tools-API/SDK customers only)
Delphi Components for PDF-XChange and/or PDF-Tools SDK products.
All Demo/Evaluation components and examples for PDF-XChange and/or PDF-Tools SDK products.
Windows and MS Office are trademarks of Microsoft Inc. All other trademarks recognised and acknowledged.
Please note – no rights to use the PDF-XChange PDF Viewer SDK are contained herein, there is a specific and separate
license agreement for the PDF-XChange Viewer SDK to which you must specifically complete and return prior to use for
anything other than evaluation use.
67 PDF-XChange Driver API SDK
Index
-C-
Contact 60
Contact Us 60
-N-
Notes - Clarion Developers 1
-O-
Other Products 61
-P-
Property Printer 5
-T-
Tracker Software Products 60
-W-
Watermarks 29