6.5  PDFlib Block Specification n 141
Example. The following fragment shows the PDF code for two blocks, a text block 
called job_title and an image block called logo. The text block contains a custom property 
called format:
<<
/Contents 12 0 R
/Type /Page
/Parent 1 0 R
/MediaBox [ 0 0 595 842 ]
/PieceInfo << /PDFlib 13 0 R >>
>>
13 0 obj
<<
/Private <<
/Blocks <<
/job_title 14 0 R
/logo 15 0 R
>>
/Version 2
/PluginVersion (1.1.0)
>>
/LastModified (D:20030913200730)
>>
endobj
14 0 obj
<<
/Type /Block
/Rect [ 70 740 200 800 ]
/Name /job_title
/Subtype /Text
/fitmethod /auto
/fontname (Helvetica)
/fontsize 12
/Custom << /format 5 >>
>>
endobj
15 0 obj
<<
/Type /Block
/Rect [ 250 700 400 800 ]
/Name /logo
/Subtype /Image
/fitmethod /auto
>>
Custom
dict
(Optional) A dictionary containing key/value pairs for custom properties accor-
ding to Table 6.7.
Internal
dict
(Optional) This key is reserved for private use, and applications should not depend 
on its presence or specific behavior. Currently it is used for maintaining the 
relationship between converted form fields and corresponding blocks.
Table 6.10 0 Entries in a block dictionary
Key
type
value
Pdf to tiff quality - Convert PDF to tiff images in C#.net, ASP.NET MVC, Ajax, WinForms, WPF
Online C# Tutorial for How to Convert PDF File to Tiff Image File
convert pdf to tiff online; print pdf to tiff
Pdf to tiff quality - VB.NET PDF Convert to Tiff SDK: Convert PDF to tiff images in vb.net, ASP.NET MVC, Ajax, WinForms, WPF
Free VB.NET Guide to Render and Convert PDF Document to TIFF
open source convert pdf to tiff; how to convert pdf to tiff on
142
Chapter 6:  Variable Data and Blocks
6.5.2Generating PDFlib Blocks with pdfmarks
As an alternative to creating PDFlib blocks with the plugin, blocks can be created by in-
serting appropriate pdfmark commands into a PostScript stream, and distilling it to 
PDF. Details of the pdfmark operator are discussed in the Acrobat documentation. The 
following fragment shows pdfmark operators which can be used to generate the block 
definition in the preceding section:
% ---------- Setup for the blocks on a page ----------
[/_objdef {B1} /type /dict /OBJ pdfmark
% Blocks dict
[{ThisPage} <<
/PieceInfo <<
/PDFlib <<
/LastModified (D:20030913200730)
/Private <<
/Version 2
/pdfmark true
/Blocks {B1}
>>
>>
>>
>> /PUT pdfmark
% ---------- text block ----------
[{B1} <<
/job_title <<
/Type /Block
/Name /job_title
/Subtype /Text
/Rect [ 70 740 200 800 ]
/fitmethod /auto
/fontsize 12
/fontname (Helvetica)
/Custom << /format 5 >>
>>
>> /PUT pdfmark
% ---------- image block ----------
[{B1} <<
/logo <<
/Type /Block
/Name /logo
/Subtype /Image
/Rect [ 250 700 400 800 ]
/fitmethod /auto
>>
>> /PUT pdfmark
C# PDF File Compress Library: Compress reduce PDF size in C#.net
easily and quickly complete a high-quality PDF document compression compressing & decompression method, TIFF files compression C#.NET PDF Document Optimization.
convert pdf to grayscale tiff; .net pdf to tiff
Online Convert PDF file to Tiff. Best free online PDF Tif
Using this .NET PDF to TIFF conversion control, C# developers can render and convert PDF document to TIFF image file with no loss in original file quality.
converting pdf to tiff format; batch convert pdf to tiff
7.1  Data Types and Naming Conventions s 143
7API Reference for PDFlib, PDI, and PPS
The API reference documents all supported functions of PDFlib, PDI (PDF Import) and 
PPS (PDFlib Personalization Server).
7.1Data Types and Naming Conventions
PDFlib data types. The exact syntax to be used for a particular language binding may 
actually vary slightly from the C syntax shown here in the reference. This especially 
holds true for the PDF document parameter (PDF * in the API reference) which has to be 
supplied as the first argument to almost all PDFlib functions in the C binding, but not 
those bindings which hide the PDF document parameter in an object created by the lan-
guage wrapper.
Table 7.1 details the use of the PDF document type and the string type in all language 
bindings. The data types integer, long, and float are not mentioned since there is an obvi-
ous mapping of these types in all bindings. Please refer to the respective language sec-
tion and the examples in Chapter 2 for more language-specific details.
Naming conventions for PDFlib functions. In the C binding, all PDFlib functions live in 
a global namespace and carry the common PDF_ prefix in their name in order to mini-
mize namespace pollution. In contrast, several language bindings hide the PDF docu-
ment parameter in an object created by the language wrapper. For these bindings, the 
function name given in this API reference must be changed by omitting the PDF_ prefix 
and the PDF * parameter used as first argument. For example, the C-like API description
PDF *p;
PDF_open_file(PDF *p, const char *filename);
translates to the following when the function is used from Java:
pdflib p;
p.open_file(String filename);
Table 7.1Data types in the language bindings
language binding
p parameter?
PDF_ prefix?
string data type
binary data type
C (also used in
this API reference)
yes
yes
const char * 
1
1. C language NULL string values and empty strings are considered equivalent.
const char *
C++
no
no
string
2
2. NULL string values must not be used in the C++ binding.
char *
Java
no
no
String
byte[]
Perl
yes
yes
string
string
PHP
yes
yes
string
string
Python
yes
yes
string
string
RPG
yes
yes
string, but must add x’00’
data
Tcl
yes
yes
string
byte array
VB.NET Image: Robust OCR Recognition SDK for VB.NET, .NET Image
Once images and documents are loaded in VB.NET project, input quality will be enhanced with Images exported can be Png, Jpeg, Tiff, image-only PDF or Bmp.
how to convert pdf file to tiff; pdf to tiff batch conversion
C# PDF Convert to Jpeg SDK: Convert PDF to JPEG images in C#.net
library component toolkit, C# developers can easily and quickly convert a large-size multi-page PDF document to a group of high-quality separate JPEG image
pdf to multipage tiff converter; program to automatically convert pdf to tiff
144
Chapter 7:  API Reference for PDFlib, PDI, and PPS
7.2General Functions
7.2.1Setup
Table 7.2 lists relevant parameters and values for this section.
Table 7.2 2 Parameters and values for the setup functions
function
key
explanation
set_parameter compatibility Set PDFlib’s compatibility mode to one of the strings »1.3«, »1.4«, or »1.5« for 
Acrobat 4, 5, or 6. See Section 1.4, »Acrobat Versions and PDFlib Features«, page 16 
for details. This parameter must be set before the first call to PDF_open_*(). It will 
be ignored if the pdfx parameter is used. Scope: object. Default: »1.4«.
set_parameter
pdfx
Set the PDF/X conformance level to one of »PDF/X-1:2001« , »PDF/X-1a:2001«, 
»PDF/X-3:2002«, or »none« (see Section 3.4, »PDF/X Support«, page 67). Scope: 
object. Default: none
set_parameter flush
Set PDFlib’s flushing strategy to none, page, content, or heavy. See Section 3.1.7, 
»Generating PDF Documents in Memory«, page 50 for details. This parameter is 
only available in the C and C++ language bindings. Scope: any. Default: page
set_parameter
SearchPath
(Not supported on MVS) Relative or absolute path name of a directory containing 
files to be read. The SearchPath can be set multiply; the entries will be 
accumulated and used in least-recently-set order (see Section 3.1.6, »Resource 
Configuration and File Searching«, page 47). Scope: any.
set_parameter prefix
(Deprecated) Resource file name prefix as used in a UPR file. The prefix can be set 
multiply. It contains a slash character plus a path name, which in turn may start 
with a slash. Scope: any.
set_parameter
resourcefile
Relative or absolute file name of the PDFlib UPR resource file. The resource file will 
be loaded immediately. Existing resources will be kept; their values will be 
overridden by new ones if they are set again. Scope: any.
set_parameter asciifile
(Only supported on iSeries and zSeries). Expect text files (PFA, AFM, UPR, enco-
dings) in ASCII encoding. Default: true on iSeries; false on zSeries. Scope: any.
set_parameter
license
Set the license key for PDFlib, PDFlib+PDI, or PPS.The license key can only be set 
once before the first call to PDF_begin_page(). Scope: object.
set_parameter licensefile
Set the name of a file containing the license keyThe license file can only be set 
once before the first call to PDF_begin_page(). Scope: object.
set_value
compress
Set the compression parameter to a value from 0–9. This parameter does not 
affect image data handled in pass-through mode. Scope: page, document.
0
no compression
1
best speed
6
default value
9
best compression
get_value
major, minor
revision
Return the major, minor, or revision number of PDFlib, respectively. Scope: any, 
null
1
.
1. May be called with a PDF * argument of NULL or 0.
get_parameter
version
Return the full PDFlib version string in the format <major>.<minor>.<revision>, 
possibly suffixed with additional qualifiers such as beta, rc, etc. Scope: any, null
1
.
get_parameter
scope
Return the name of the current scope (see Table 3.1). Scope: any.
set_parameter
trace
If true, all API function calls will be logged to a trace file. The contents of the trace 
file may be useful for debugging purposes, or may be requested by PDFlib support. 
Scope: any. Default: false.
set_parameter tracefile
Set trace file name. Scope: any, but before enabling tracing. Default: PDFlib.trace.
set_parameter
tracemsg
If tracing is enabled, the supplied message text will be written to the trace file in 
addition to API calls. This may be useful for debugging client code. Scope: any.
VB.NET PDF Convert to Jpeg SDK: Convert PDF to JPEG images in vb.
VB.NET Excel, VB.NET PowerPoint, VB.NET Tiff, VB.NET Able to Convert PDF to JPEG file in .NET WinForms Export high quality jpeg file from PDF in .NET framework.
convert pdf to tiff file online; pdf to grayscale tiff
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
3.pdf"; String outputFilePath = Program.RootPath + "\\" 3_optimized.pdf"; 'create optimizing Compression = PDFCompression.DCTDecode 'set quality level, only
convert multiple page pdf to tiff; .net convert pdf to tiff
7.2  General Functions s 145
void PDF_boot(void)
void PDF_shutdown(void)
Boot and shut down PDFlib, respectively.
Scope null
Bindings C: Recommended for the C language binding, although currently not required.
Other bindings: For all other language bindings booting and shutting down is accom-
plished automatically by the wrapper code, and these functions are not available.
PDFlib_api * PDF_boot_dll(void)
void PDF_shutdown_dll(PDFlib_api *PDFlib)
Load the PDFlib DLL at runtime and boot it, or shut down PDFlib and unload the DLL.
PDFlib A pointer to a PDFlib API structure returned by PDF_boot_dll().
Returns If PDF_boot_dll() is successful it will return a pointer to a structure filled with pointers to 
all PDFlib API functions. If the DLL cannot be loaded, or a mismatch of major or minor 
version number is detected, NULL will be returned.
Details PDF_boot_dll() will attempt to load the PDFlib DLL at runtime, and call PDF_boot()PDF_
shutdown_dll() will call PDF_shutdown(), and unload the PDFlib DLL. The members of the 
structure returned by PDF_boot_dll() have identical names with the corresponding 
PDFlib API functions, and can be used by the client. It is an error to use any of these 
pointers after calling PDF_shutdown(). This pair of functions should only be called once 
per application. The client is responsible for synchronizing calls to this function pair ap-
propriately.
Scope null
Bindings C: These functions are not part of the PDFlib core library, but are available in the auxilia-
ry module pdflibdl.c which must explicitly be linked against the application. These func-
tions are not supported on all platforms.
Other bindings: These functions are not required, and are not available.
int PDF_get_majorversion(void)
int PDF_get_minorversion(void)
Deprecated, use PDF_get_value(p, "major", 0) or PDF_get_value(p, "minor", 0) instead.
PDF *PDF_new(void)
Create a new PDFlib object with default settings.
Details This function creates a new PDFlib object, using PDFlib’s internal default error handling 
and memory allocation routines.
VB.NET Image: RasterEdge JBIG2 Codec Image Control for VB.NET
control in VB.NET is capable of embedding compressed bitonal images into PDF files and decompress images from PDF files quickly with the smallest quality loss.
pdf to tiff converter without watermark; convert pdf to multipage tiff
C# Create PDF from Tiff Library to convert tif images to PDF in C#
PDF files are created from tiff with high quality using .NET PDF SDK for C#.NET. Support to combine multiple page tiffs into one PDF file.
program convert pdf to tiff; convert pdf to tiff quality
146
Chapter 7:  API Reference for PDFlib, PDI, and PPS
Returns A handle to a PDFlib object which is to be used in subsequent PDFlib calls. If this func-
tion doesn’t succeed due to unavailable memory it will return NULL (in C) or throw an 
exception.
Scope null; this function start object scope, and must always be paired with a matching PDF_
delete() call.
Bindings The data type used for the opaque PDFlib object handle varies among language bind-
ings. This doesn’t really affect PDFlib clients, since all they have to do is pass the PDF 
handle as the first argument to all functions.
C++: this function is not available since it is hidden in the PDF constructor. 
COM, Java: this function is automatically called by the wrapper code, and therefore not 
available.
PDF *PDF_new2(void (*errorhandler)(PDF *p, int errortype, const char *msg),
void* (*allocproc)(PDF *p, size_t size, const char *caller),
void* (*reallocproc)(PDF *p, void *mem, size_t size, const char *caller),
void  (*freeproc)(PDF *p, void *mem),
void   *opaque)
Create a new PDFlib object with client-supplied error handling and memory allocation 
routines.
errorhandler Pointer to a user-supplied error-handling function. The error handler 
will be ignored in PDF_TRY/PDF_CATCH blocks.
allocproc Pointer to a user-supplied memory allocation function.
reallocproc Pointer to a user-supplied memory reallocation function.
freeproc Pointer to a user-supplied free function.
opaque Pointer to some user data which may be retrieved later with PDF_get_
opaque().
Returns A handle to a PDFlib object which is to be used in subsequent PDFlib calls. If this func-
tion doesn’t succeed due to unavailable memory it will return NULL (in C) or throw an 
exception.
Details This function creates a new PDFlib object with client-supplied error handling and mem-
ory allocation routines. Unlike PDF_new(), the caller may optionally supply own proce-
dures for error handling and memory allocation. The function pointers for the error 
handler, the memory procedures, or both may be NULL. PDFlib will use default routines 
in these cases. Either all three memory routines must be provided, or none. 
Scope null; this function starts object scope, and must always be paired with a matching PDF_
delete() call. No other PDFlib function with the same PDFlib object must be called after 
calling this function.
Bindings C++: this function is indirectly available via the PDF constructor. Not all function argu-
ments must be given since default values of NULL are supplied. All supplied functions 
must be »C« style functions, not C++ methods.
7.2  General Functions s 147
void PDF_delete(PDF *p)
Delete a PDFlib object and free all internal resources.
Details This function deletes a PDF object and frees all document-related PDFlib-internal re-
sources. Although not necessarily required for single-document generation, deleting 
the PDF object is heavily recommended for all server applications when they are done 
producing PDF. This function must only be called once for a given PDF object. PDF_
delete() should also be called for cleanup when an exception occurred. PDF_delete() it-
self is guaranteed to not throw any exception. If more than one PDF document will be 
generated it is not necessary to call PDF_delete() after each document, but only when 
the complete sequence of PDF documents is done.
Scope any; this function starts null scope, i.e., no more API function calls are allowed.
Bindings C++: this function is indirectly available via the PDF destructor.
Java: this function is automatically called by the wrapper code. However, it can explicit-
ly be called from client code in order to overcome shortcomings in Java’s finalizer sys-
tem.
7.2.2Document and Page
Table 7.3 lists relevant parameters and values for this section. Section 7.9.1, »Document 
Open Action and Open Mode«, page 201 presents additional relevant parameters.
Table 7.3 3 Parameters and values for the document and page functions
function
key
explanation
set_parameter openwarning
Enable or suppress warnings related to opening the PDF output file. Possible 
values are true and false. Scope: any. Default: false.
set_value
pagewidth
pageheight
Change the page size of the current page. Scope: page, path.
set_parameter topdown
If true, the origin of the coordinate system at the beginning of a page, pattern, or 
template will be assumed in the top left corner of the page, and y coordinates will 
increase downwards; otherwise the default coordinate system will be used (see 
Section 3.2.1, »Coordinate Systems«, page 53). Scope: document. Default: false.
get_value
pagewidth
pageheight
Get the page size of the current page. Scope: page, path.
set_value
CropBox,
BleedBox,
ArtBox,
TrimBox
Change one of the box parameters of the current page. The parameter name 
must be followed by a slash ’/’ character and one of llx, lly, urx, ury, for example: 
CropBox/llx (see Section 3.2.2, »Page Sizes and Coordinate Limits«, page 55 for 
details). Scope: page.
set_parameter
userpassword
Set the user password to the supplied string. Scope: object. Default: none.
set_parameter master-
password
Set the master password to the supplied string. Scope: object. Default: none.
set_parameter
permissions
Set the master password to a combination of the keywords given in Table 3.12. 
Scope: object. Default: none.
148
Chapter 7:  API Reference for PDFlib, PDI, and PPS
int PDF_open_file(PDF *p, const char *filename)
Create a new PDF file using the supplied file name.
filename Absolute or relative name of the PDF output file to be generated. Only 8-bit 
characters are supported in the file name; Unicode or embedded null characters are not 
supported.
If filename is empty, the PDF document will be generated in memory instead of on 
file, and the generated PDF data must be fetched by the client with the PDF_get_buffer() 
function. PDF_open_file() will always succeed in this case, and never return the -1 (in 
PHP: 0) error value.
The special file name »–« can be used for generating PDF on the stdout channel (this 
obviously does not apply to environments which don’t support the notion of a stdout 
channel, such as Mac OS 9). On Windows it is OK to use UNC paths or mapped network 
drives.
Returns -1 (in PHP: 0) on error, and 1 otherwise. If the openwarning parameter is set to true this 
function will throw an exception if the PDF output file cannot be opened for writing.
Details This function creates a new PDF file using the supplied filename. PDFlib will attempt to 
open a file with the given name, and close the file when the PDF document is finished.
Scope object; this function starts document scope if the file could successfully be opened, and 
must always be paired with a matching PDF_close() call.
Params openwarning
Bindings C, C++, Java, JScript: take care of properly escaping the backslash path separator. For ex-
ample, the following denotes a file on a network drive: \\\\malik\\rp\\foo.pdf.
int PDF_open_fp(PDF *p, FILE *fp)
Open a new PDF file, using the supplied file handle.
fp Pointer to a C-style FILE structure to which the generated output PDF will be writ-
ten. On Mac, Windows, and AS/400 the fp file handle must have been opened in binary 
mode, which is necessary for PDF output. On Windows PDFlib changes the output mode 
of the supplied file handle to binary mode itself.
Returns -1 on error, and 1 otherwise.
Scope object; this function starts document scope if fp is not NULL, and must always be paired 
with a matching PDF_close() call.
Bindings This function is deprecated, and will be removed in the future. It is only available in the 
C and C++ bindings.
void PDF_open_mem(PDF *p, size_t (*writeproc)(PDF *p, void *data, size_t size))
Open a new PDF in memory, and install a callback for fetching the data.
writeproc Callback function which will be called by PDFlib in order to submit (portions 
of) the generated PDF data.
7.2  General Functions s 149
Details This function opens a new PDF document in memory, without writing to a disk file. The 
callback function must return the number of bytes written. If the return value doesn’t 
match the size argument supplied by PDFlib, an exception will be thrown, and PDF gen-
eration stops. The frequency of writeproc calls is configurable with the flush parameter. 
The default value of the flush parameter is page (see Section 3.1.7, »Generating PDF Docu-
ments in Memory«, page 50 for details).
Scope object; this function starts document scope, and must always be paired with a matching 
PDF_close() call.
Bindings This function is only available in the C and C++ bindings.
C++: writeproc must be a C-style function, not a C++ method.
Other bindings: use PDF_open_file() with an empty file name in order to create PDF doc-
uments in memory.
const char * PDF_get_buffer(PDF *p, long *size)
Get the contents of the PDF output buffer. The result must be used by the client before 
calling any other PDFlib function.
size C-style Pointer to a memory location where the length of the returned data in 
bytes will be stored.
Returns A buffer full of binary PDF data for consumption by the client. It returns a language-spe-
cific data type for binary data according to Table 7.1. The returned buffer can be used un-
til the end of the surrounding object scope or until the next call to PDF_get_buffer(), de-
pending on what happens first.
Details Fetch the full or partial buffer containing the generated PDF data. If this function is 
called between page descriptions, it will return the PDF data generated so far. If it is 
called after PDF_close() it returns the remainder of the PDF document. If there is only a 
single call to this function which happens after PDF_close() the returned buffer is guar-
anteed to contain the complete PDF document in a contiguous buffer.
Since PDF output contains binary characters, client software must be prepared to ac-
cept non-printable characters including null values.
Scope object, document (in other words: after PDF_end_page() and before PDF_begin_page(), or 
after PDF_close() and before PDF_delete(). This function can only be used if an empty 
filename has been supplied to PDF_open_file().
Bindings C and C++: the size parameter is only used for C and C++ clients.
Other bindings: an object of appropriate length will be returned, and the size parameter 
must be omitted.
void PDF_close(PDF *p)
Close the generated PDF file, and release all document-related resources.
Details This function finishes the generated PDF document, free all document-related resourc-
es, and close the output file if the PDF document has been opened with PDF_open_file()
This function must be called when the client is done generating pages, regardless of the 
method used to open the PDF document.
150
Chapter 7:  API Reference for PDFlib, PDI, and PPS
When the document was generated in memory (as opposed to on file), the document 
buffer will still be kept after this function is called (so that it can be fetched with PDF_
get_buffer()), and will be freed in the next call to PDF_open(), or when the PDFlib object 
goes out of scope in PDF_delete().
Scope document; this function terminates document scope, and must always be paired with a 
matching call to one of the PDF_open_*() functions.
void PDF_begin_page(PDF *p, float width, float height)
Add a new page to the document.
width, height The width and height parameters are the dimensions of the new page in 
points. Acrobat’s page size limits are documented in Section 3.2.1, »Coordinate Sys-
tems«, page 53. A list of commonly used page formats can be found in Table 3.5. The 
page size can be changed after calling PDF_begin_page() with the pagewidth and 
pageheight parameters. In order to produce landscape pages use width > height. PDFlib 
uses width and height to construct the page’s MediaBox. You can use several parameters 
to set other box entries in the PDF (see Table 7.2).
Scope document; this function starts page scope, and must always be paired with a matching 
PDF_end_page() call.
Params pagewidth, pageheight, CropBox, BleedBox, ArtBox, TrimBox
void PDF_end_page(PDF *p)
Finish the page.
Details This function must be used to finish a page description.
Scope page; this function terminates page scope, and must always be paired with a matching 
PDF_begin_page() call.
7.2.3Parameter Handling
PDFlib maintains a number of internal parameters which are used for controlling 
PDFlib’s operation and the appearance of the PDF output. Four functions are available 
for setting and retrieving both numerical and string parameters. All parameters (both 
keys and values) are case-sensitive. The descriptions of available parameters can be 
found in the respective sections in this chapter.
float PDF_get_value(PDF *p, const char *key, float modifier)
Get the value of some PDFlib parameter with numerical type.
key The name of the parameter to be queried.
modifier An optional modifier to be applied to the parameter. Whether a modifier is 
required and what it relates to is explained in the various parameter tables. If the modi-
fier is unused it must be 0.
Returns The numerical value of the parameter.
Documents you may be interested
Documents you may be interested