c# pdf to tiff pdfsharp : Adding a signature to a pdf Library software class asp.net winforms html ajax PDFlib-7-tutorial-Windows4-part564

2.11  RPG Binding 41
2.11 RPG Binding
(This section is only included in the general edition of the PDFlib manual.)
Adding a signature to a pdf - C# PDF File Permission Library: add, remove, update PDF file permission in C#.net, ASP.NET, MVC, WPF
Tell C# users how to set PDF file permissions, like printing, copying, modifying, extracting, annotating, form filling, etc
add signature to pdf acrobat; create a pdf signature file
Adding a signature to a pdf - VB.NET PDF File Permission Library: add, remove, update PDF file permission in vb.net, ASP.NET, MVC, WPF
VB.NET Tutorial for How to Set PDF File Access Permissions Using XDoc.PDF for .NET
pdf secure signature; add signature pdf
42
Chapter 2:  PDFlib Language Bindings (Edition for COM, .NET, and REALbasic)
2.12 Ruby Binding
(This section is only included in the general edition of the PDFlib manual.)
C# PDF Digital Signature Library: add, remove, update PDF digital
Help to Improve the Security of Your PDF File by Adding Digital Signatures. Overview. XDoc.PDF also allows PDF security setting via digital signature.
pdf signature; add a signature to a pdf file
C# Create PDF Library SDK to convert PDF from other file formats
PDF file. What's more, you can also protect created PDF file by adding digital signature (watermark) on PDF using C# code. Create
adding a signature to a pdf document; pdf sign in
2.13  Tcl Binding 43
2.13 Tcl Binding
(This section is only included in the general edition of the PDFlib manual.)
C# HTML5 Viewer: Load, View, Convert, Annotate and Edit PowerPoint
for C# .NET, users can convert PowerPoint to PDF (.pdf) online, convert Users can perform text signature adding, freehand signature creation and date signature
pdf signature field; sign pdf online
C# HTML5 Viewer: Load, View, Convert, Annotate and Edit PDF
Viewer for C# .NET provides permanent annotations adding feature, all enables you to create signatures to PDF, including freehand signature, text and
click to sign pdf; pdf signatures
44
Chapter 2:  PDFlib Language Bindings (Edition for COM, .NET, and REALbasic)
C# PDF insert image Library: insert images into PDF in C#.net, ASP
scanned signature or logo into PDF document page in C#.NET class application? To help you solve this technical problem, we provide this C#.NET PDF image adding
adding signature to pdf in preview; pdf converter sign in
VB.NET PDF Digital Signature Library: add, remove, update PDF
the Security of Your PDF File by Adding Digital Signatures in VB to be respected, XDoc.PDF also allows PDF such security setting via digital signature.
add signature pdf online; create signature pdf
3.1  General Programming 45
3PDFlib Programming
3.1 General Programming
Cookbook Code samples regarding general programming issues can be found in the general category of 
the PDFlib Cookbook.
3.1.1 Exception Handling
Errors of a certain kind are called exceptions in many languages for good reasons – they 
are mere exceptions, and are not expected to occur very often during the lifetime of a 
program. The general strategy is to use conventional error reporting mechanisms (i.e. 
special error return codes such as -1) for function calls which may often fail, and use a 
special exception mechanism for those rare occasions which don’t warrant cluttering 
the code with conditionals. This is exactly the path that PDFlib goes: Some operations 
can be expected to go wrong rather frequently, for example:
>Trying to open an output file for which one doesn’t have permission
>Trying to open an input PDF with a wrong file name
>Trying to open a corrupt image file
PDFlib signals such errors by returning a special value (usually – 1) as documented in 
the PDFlib Reference. This error code must be checked by the application developer for 
all functions which are documented to return -1 on error.
Other events may be considered harmful, but will occur rather infrequently, e.g.
>running out of virtual memory
>scope violations (e.g., closing a document before opening it)
>supplying wrong parameters to PDFlib API functions (e.g., trying to draw a circle with 
negative radius), or supplying wrong options.
When PDFlib detects such a situation, an exception will be thrown instead of passing a 
special error return value to the caller. It is important to understand that the generated 
PDF document cannot be finished when an exception occurred. The only methods 
which can safely be called after an exception are get_apiname( ), get_errnum( ), and get_
errmsg( ). Calling any other PDFlib method after an exception may lead to unexpected 
results. The exception will contain the following information:
>A unique error number;
>The name of the PDFlib API function which caused the exception;
>A descriptive text containing details of the problem.
Querying the reason of a failed function call. As noted above, the generated PDF out-
put document must always be abandoned when an exception occurs. Some clients, 
however, may prefer to continue the document by adjusting the program flow or sup-
plying different data. For example, when a particular font cannot be loaded most clients 
will give up the document, while others may prefer to work with a different font. In this 
case it may be desirable to retrieve an error message which describes the problem in 
more detail. In this situation the functions get_errnum( ), get_errmsg( ), and get_
apiname( ) can be called immediately after a failed function call, i.e., a function call 
which returned a -1 error value.
VB.NET PDF Library SDK to view, edit, convert, process PDF file
Capable of adding PDF file navigation features to your VB.NET program. How To Tutorials. Password, digital signature and PDF text, image and page redaction
adding a signature to a pdf form; export pdf to word sign in
.NET PDF SDK - Description of All PDF Processing Control Feastures
Add signature image to PDF file. PDF Hyperlink Edit. Support adding and inserting hyperlink (link) to PDF document; Allow to create, edit, and remove PDF bookmark
add signature field to pdf; add signature pdf online
46
Chapter 3:  PDFlib Programming (Edition for COM, .NET, and REALbasic)
Error policies. When PDFlib detects an error condition, it will react according to one of 
several strategies which can be configured with the errorpolicy parameter. All functions 
which can return error codes also support an errorpolicy option. The following error pol-
icies are supported:
>errorpolicy=legacy: this setting ensures behavior which is compatible to earlier ver-
sions of PDFlib, where exceptions and error return values are controlled by parame-
ters and options such as fontwarning, imagewarning, etc. This is only recommended 
for applications which require source code compatibility with PDFlib 6. It should not 
be used for new applications. The legacy setting is the default error policy.
>errorpolicy=return: when an error condition is detected, the respective function will 
return with a -1 error value regardless of any warning parameters or options. The ap-
plication developer must check the return value to identify problems, and must re-
act on the problem in whatever way is appropriate for the application. This is the 
recommended approach since it allows a unified approach to error handling.
>errorpolicy=exception: an exception will be thrown when an error condition is detect-
ed. However, the output document will be unusable after an exception. This can be 
used for lazy programming without any error conditionals at the expense of sacrific-
ing the output document even for problems which may be fixable by the applica-
tion.
The following code fragments demonstrate different strategies with respect to excep-
tion handling. The examples try to load a font which may or may not be available.
If errorpolicy=return the return value must be checked for an error. If it indicates fail-
ure, the reason of the failure can be queried in order to properly deal with the situation:
font = p.load_font("MyFontName", "unicode", "errorpolicy=return");
if (font == -1)
{
/* font handle is invalid; find out what happened. */
errmsg = p.get_errmsg());
/* Try a different font or give up */
...
}
/* font handle is valid; continue */
If errorpolicy=exception the document must be abandoned if an error occurs:
font = p.load_font("MyFontName", "unicode", "errorpolicy=exception");
/* Unless an exception was thrown the font handle is valid;
* if an exception occurred, the PDF output cannot be continued
*/
Cookbook A full code sample can be found in the Cookbook topic general/error_handling.
Warnings. Some problem conditions can be detected by PDFlib internally, but do not 
justify interrupting the program flow by throwing an exception. While earlier versions 
of PDFlib supported the concept of non-fatal exceptions which can be disabled, PDFlib 7 
never throws an exception for non-fatal conditions. Instead, a description of the condi-
tion will be logged (if logging is enabled). Logging can be enabled as follows:
p.set_parameter("logging", "filename=private.log");
We recommend the following approach with respect to warnings:
XDoc.HTML5 Viewer for .NET, All Mature Features Introductions
to search text-based documents, like PDF, Microsoft Office typing new signature, deleting added signature from the After adding such a control button, with a
create pdf signature; pdf signature field
VB.NET TIFF: Add New Image to TIFF File in Visual Basic .NET
". When you want to copy an image, graphics, signature or logo document processing SDK can offer you the reliable and extensive TIFF page image adding tool that
pdf sign; add signature field to pdf
3.1  General Programming 47
>Enable warning logging in the development phase, and carefully study any warning 
messages in the log file. They may point to potential problems in your code or data, 
and you should try to understand or eliminate the reason for those warnings.
>Disable warning logging in the production phase, and re-enable it only in case of 
problems.
3.1.2 The PDFlib Virtual File System (PVF)
Cookbook A full code sample can be found in the Cookbook topic general/starter_pvf.
In addition to disk files a facility called PDFlib Virtual File System (PVF) allows clients to di-
rectly supply data in memory without any disk files involved. This offers performance 
benefits and can be used for data fetched from a database which does not even exist on 
an isolated disk file, as well as other situations where the client already has the required 
data available in memory as a result of some processing.
PVF is based on the concept of named virtual read-only files which can be used just 
like regular file names with any API function. They can even be used in UPR configura-
tion files. Virtual file names can be generated in an arbitrary way by the client. Obvious-
ly, virtual file names must be chosen such that name clashes with regular disk files are 
avoided. For this reason a hierarchical naming convention for virtual file names is rec-
ommended as follows (filename refers to a name chosen by the client which is unique in 
the respective category). It is also recommended to keep standard file name suffixes:
>Raster image files: /pvf/image/filename
>font outline and metrics files (it is recommended to use the actual font name as the 
base portion of the file name): /pvf/font/filename
>ICC profiles: /pvf/iccprofile/filename
>Encodings and codepages: /pvf/codepage/filename
>PDF documents: /pvf/pdf/filename
When searching for a named file PDFlib will first check whether the supplied file name 
refers to a known virtual file, and then try to open the named file on disk.
Lifetime of virtual files. Some functions will immediately consume the data supplied 
in a virtual file, while others will read only parts of the file, with other fragments being 
used at a later point in time. For this reason close attention must be paid to the lifetime 
of virtual files. PDFlib will place an internal lock on every virtual file, and remove the 
lock only when the contents are no longer needed. Unless the client requested PDFlib to 
make an immediate copy of the data (using the copy option in create_pvf( )), the virtual 
file’s contents must only be modified, deleted, or freed by the client when it is no longer 
locked by PDFlib. PDFlib will automatically delete all virtual files in delete( ). However, 
the actual file contents (the data comprising a virtual file) must always be freed by the 
client.
Different strategies. PVF supports different approaches with respect to managing the 
memory required for virtual files. These are governed by the fact that PDFlib may need 
access to a virtual file’s contents after the API call which accepted the virtual file name, 
but never needs access to the contents after close( ). Remember that calling delete_pvf( ) 
does not free the actual file contents (unless the copy option has been supplied), but 
only the corresponding data structures used for PVF file name administration. This 
gives rise to the following strategies:
48
Chapter 3:  PDFlib Programming (Edition for COM, .NET, and REALbasic)
>Minimize memory usage: it is recommended to call delete_pvf( ) immediately after 
the API call which accepted the virtual file name, and another time after close( ). The 
second call is required because PDFlib may still need access to the data so that the 
first call refuses to unlock the virtual file. However, in some cases the first call will al-
ready free the data, and the second call doesn’t do any harm. The client may free the 
file contents only when delete_pvf( ) succeeded.
>Optimize performance by reusing virtual files: some clients may wish to reuse some 
data (e.g., font definitions) within various output documents, and avoid multiple 
create/delete cycles for the same file contents. In this case it is recommended not to 
call delete_pvf( ) as long as more PDF output documents using the virtual file will be 
generated.
>Lazy programming: if memory usage is not a concern the client may elect not to call 
delete_pvf( ) at all. In this case PDFlib will internally delete all pending virtual files in 
delete( ).
In all cases the client may free the corresponding data only when delete_pvf( ) returned 
successfully, or after delete( ).
3.1.3 Resource Configuration and File Searching
In most advanced applications PDFlib needs access to resources such as font file, encod-
ing definition, ICC color profiles, etc. In order to make PDFlib’s resource handling plat-
form-independent and customizable, a configuration file can be supplied for describing 
the available resources along with the names of their corresponding disk files. In addi-
tion to a static configuration file, dynamic configuration can be accomplished at run-
time by adding resources with set_parameter( ). For the configuration file we dug out a 
simple text format called Unix PostScript Resource (UPR) which came to life in the era of 
Display PostScript, and is still in use on several systems. However, we extended the orig-
inal UPR format for our purposes. The UPR file format as used by PDFlib will be de-
scribed below. There is a utility called makepsres (often distributed as part of the X Win-
dow System) which can be used to automatically generate UPR files from PostScript font 
outline and metrics files.
Resource categories. The resource categories supported by PDFlib are listed in Table 
3.1. Other resource categories will be ignored. The values are treated as name strings; 
they can be encoded in ASCII or UTF-8 (with BOM). Unicode values may be useful for lo-
calized font names with the HostFont resource.
Table 3.1 Resource categories supported in PDFlib
category
format
explanation
SearchPath
value
Relative or absolute path name of directories containing data files
CMap
key=value
CMap file for CJK encoding
FontAFM
key=value
PostScript font metrics file in AFM format
FontPFM
key=value
PostScript font metrics file in PFM format
FontOutline
key=value
PostScript, TrueType or OpenType font outline file
Encoding
key=value
text file containing an 8-bit encoding or code page table
HostFont
key=value
Name of a font installed on the system
3.1  General Programming 49
Redundant resource entries should be avoided. For example, do not include multiple 
entries for a certain font’s metrics data. Also, the font name as configured in the UPR file 
should exactly match the actual font name in order to avoid confusion (although 
PDFlib does not enforce this restriction).
The UPR file format. UPR files are text files with a very simple structure that can easily 
be written in a text editor or generated automatically. To start with, let’s take a look at 
some syntactical issues:
>Lines can have a maximum of 255 characters.
>A backslash ’\’ escapes newline characters. This may be used to extend lines. Use two 
backslashes in order to create a single literal backslash.
>An isolated period character ’ . ’ serves as a section terminator.
>All entries are case-sensitive.
>Comment lines may be introduced with a percent ’%’ character, and terminated by 
the end of the line. A preceding backslash can be used to create literal percent charac-
ters which do not start a comment.
>Whitespace is ignored everywhere except in resource names and file names.
UPR files consist of the following components:
>A magic line for identifying the file. It has the following form:
PS-Resources-1.0
>An optional section listing all resource categories described in the file. Each line de-
scribes one resource category. The list is terminated by a line with a single period 
character. Available resource categories are described below.
>A section for each of the resource categories listed at the beginning of the file. Each 
section starts with a line showing the resource category, followed by an arbitrary 
number of lines describing available resources. The list is terminated by a line with a 
single period character. Each resource data line contains the name of the resource 
(equal signs have to be quoted). If the resource requires a file name, this name has to 
be added after an equal sign. The SearchPath (see below) will be applied when PDFlib 
searches for files listed in resource entries.
File searching and the SearchPath resource category. PDFlib reads a variety of data 
items, such as raster images, font outline and metrics information, encoding defini-
tions, PDF documents, and ICC color profiles from disk files. In addition to relative or ab-
solute path names you can also use file names without any path specification. The 
SearchPath resource category can be used to specify a list of path names for directories 
containing the required data files. When PDFlib must open a file it will first use the file 
name exactly as supplied and try to open the file. If this attempt fails, PDFlib will try to 
open the file in the directories specified in the SearchPath resource category one after 
another until it succeeds. SearchPath entries can be accumulated, and will be searched in 
ICCProfile
key=value
name of an ICC color profile
StandardOutputIntent
key=value
name of a standard output condition for PDF/X (in addition to those which are al-
ready built into PDFlib, see PDFlib Reference for a complete list)
Table 3.1 Resource categories supported in PDFlib
category
format
explanation
50
Chapter 3:  PDFlib Programming (Edition for COM, .NET, and REALbasic)
reverse order (paths set at a later point in time will searched before earlier ones). This 
feature can be used to free PDFlib applications from platform-specific file system 
schemes. You can set search path entries as follows:
p.set_parameter("SearchPath", "/path/to/dir1");
p.set_parameter("SearchPath", "/path/to/dir2");
In order to disable the search you can use a fully specified path name in the PDFlib func-
tions. Note the following platform-specific features of the SearchPath resource category:
>On Windows PDFlib will initialize the SearchPath with an entry from the registry. The 
following registry entry may contain a list of path names separated by a semicolon 
’;’  character:
HKLM\SOFTWARE\PDFlib\PDFlib\7.0.5\SearchPath
>The COM and .NET installer will initialize the SearchPath registry entry with the fol-
lowing directory (or a similar one if you installed PDFlib elsewhere):
C:\Program Files\PDFlib\PDFlib 7.0.5\resource
Sample UPR file. The following listing gives an example of a UPR configuration file:
PS-Resources-1.0
SearchPath
/usr/local/lib/fonts
C:/psfonts/pfm
C:/psfonts
/users/kurt/my_images
.
FontAFM
Code-128=Code_128.afm
.
FontPFM
Corporate-Bold=corpb___.pfm
Mistral=c:/psfonts/pfm/mist____.pfm
.
FontOutline
Code-128=Code_128.pfa
ArialMT=Arial.ttf
.
HostFont
Wingdings=Wingdings
.
Encoding
myencoding=myencoding.enc
.
ICCProfile
highspeedprinter=cmykhighspeed.icc
.
Searching for the UPR resource file. If only the built-in resources (e.g., PDF core font, 
built-in encodings, sRGB ICC profile) or system resources (host fonts) are to be used, a 
UPR configuration file is not required, since PDFlib will find all necessary resources 
without any additional configuration.
If other resources are to be used you can specify such resources via calls to set_
parameter( ) (see below) or in a UPR resource file. PDFlib reads this file automatically 
when the first resource is requested. The detailed process is as follows:
Documents you may be interested
Documents you may be interested