pdf viewer control in asp net c# : How to add image to pdf SDK application API .net windows asp.net sharepoint PDFlib-blocks-E0-part2450

12.1  Installing the PDFlib Block Plugin 341
12 PPS and the PDFlib Block Plugin
The PDFlib Personalization Server (PPS) supports a template-driven PDF workflow for 
variable data processing. Using the Block concept, imported pages can be populated 
with variable amounts of single- or multi-line text, images, PDF pages or vector graph-
ics. This can be used to easily implement applications which require customized PDF 
documents, for example:
>mail merge
>flexible direct mailings
>transactional and statement processing
>business card personalization
You can create and edit Blocks interactively with the PDFlib Block Plugin, convert exist-
ing PDF form fields to PDFlib Blocks with the form field conversion Plugin. Blocks can be 
filled with PPS. The results of Block filling with PPS can be previewed in Acrobat since 
the Block Plugin contains an integrated version of PPS.
Note Block processing requires the PDFlib Personalization Server (PPS). Although PPS is contained in 
all PDFlib packages, you must purchase a license key for PPS; a PDFlib or PDFlib+PDI license key 
is not sufficient. The PDFlib Block Plugin for Adobe Acrobat is required for creating Blocks in PDF 
templates interactively.
Cookbook Code samples regarding variable data and Blocks can be found in the blocks category of the 
PDFlib Cookbook.
12.1 Installing the PDFlib Block Plugin
The Block Plugin works with the following Acrobat versions:
>Acrobat 8/9/X/XI/DC on Windows
>Acrobat 8/9/X/XI/DC on OS X
The Plugin doesn’t work with Adobe Reader/Acrobat Reader.
Installing the PDFlib Block Plugin on Windows. To install the PDFlib Block Plugin and 
the PDF form field conversion plugin in Acrobat, the plugin files must be placed in a 
subdirectory of the Acrobat plugin folder. This is done automatically by the plugin in-
staller, but can also be done manually. The plugin files are called Block.api and AcroForm-
Conversion.api. A typical location of the plugin folder looks as follows:
C:\Program Files\Adobe\Acrobat XXX\Acrobat\plug_ins\PDFlib Block Plugin
For 32-bit versions of Acrobat running on 64-bit Windows the first part should be
C:\Program Files (x86)\...
Installing the PDFlib Block Plugin for Acrobat X/XI/DC on OS X. Proceed as follows to 
install the plugin for all users:
>Double-click the disk image to mount it. A folder with the plugin files will be visible.
>Copy the plugin folder to the following path in the system’s Library folder:
/Library/Application Support/Adobe/Acrobat/XXX/Plug-ins
How to add image to pdf - insert images into PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sample C# code to add image, picture, logo or digital photo into PDF document page using PDF page editor control
how to add image to pdf; add photo to pdf in preview
How to add image to pdf - VB.NET PDF insert image library: insert images into PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Guide VB.NET Programmers How to Add Images in PDF Document
add png to pdf preview; how to add an image to a pdf in acrobat
Chapter 12:  PPS and the PDFlib Block Plugin
Alternatively you can install the plugin only for a single user as follows:
>Click the desktop to make sure you’re in the Finder, hold down the Option key, and 
choose Go, Library to open the user’s Library folder.
>Copy the plugin folder to the following path in the user’s Library folder:
/Users/<username>/Library/Application Support/Adobe/Acrobat/XXX/Plug-ins
Installing the PDFlib Block Plugin for Acrobat 8/9 on OS X. The plugin folder is not di-
rectly visible in the Finder. Instead of dragging the plugin files to the plugin folder use 
the following steps (make sure that Acrobat is not running):
>Extract the plugin files to a folder by double-clicking the disk image.
>Locate the Adobe Acrobat application icon in the Finder. It is usually located in a fold-
er which has a name similar to the following:
/Applications/Adobe Acrobat XXX
>Single-click on the Acrobat application icon, open the context menu, and select Show 
Package Contents.
>In the Finder window that pops up navigate to the folder Contents/Plug-ins and copy 
the plugin folder which has been created in the first step into this folder.
Multi-lingual Interface. The PDFlib Block Plugin supports multiple languages in the 
user interface. Depending on the application language of Acrobat, the Block Plugin 
chooses its interface language automatically. Currently English, German and Japanese 
interfaces are available. If Acrobat runs in any other language mode, the Block Plugin 
uses the English interface.
Troubleshooting. If the PDFlib Block Plugin doesn’t seem to work check the following:
>Make sure that in Edit, Preferences, [General...], General the box Use only certified plug-ins 
is unchecked. The plugins are not loaded if Acrobat runs in Certified Mode.
>Some PDF forms created with Adobe Designer may prevent the Block Plugin as well 
as other Acrobat plugins from working properly since they interfere with Acrobat’s 
internal security model. For this reason we suggest to avoid Designer’s static PDF 
forms, and only use dynamic PDF forms as input for the Block Plugin.
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
Get image information, such as its location, zonal information, metadata, and so on. Able to edit, add, delete, move, and output PDF document image.
add image to pdf in preview; adding image to pdf file
VB.NET PDF Password Library: add, remove, edit PDF file password
VB: Add Password to PDF with Permission Settings Applied. This VB.NET example shows how to add PDF file password with access permission setting.
add a jpg to a pdf; add jpg to pdf document
12.2  Overview of the Block Concept 343
12.2 Overview of the Block Concept
12.2.1 Separation of Document Design and Program Code
PDFlib Blocks make it easy to place variable text, images, PDF pages or vector graphics 
on imported pages. In contrast to simple PDF pages, pages with Blocks intrinsically car-
ry information about the required processing which will be performed later on the serv-
er side. The Block concept separates the following tasks:
>The designer creates the page layout and specifies the location of variable page ele-
ments along with relevant properties such as font size, color, or image scaling. After 
creating the layout as a PDF document, the designer uses the PDFlib Block Plugin for 
Acrobat to specify variable data Blocks and their associated properties.
>The programmer writes code to connect the information contained in PDFlib Blocks 
on imported PDF pages with dynamic information, e.g., database fields. The pro-
grammer doesn’t need to know any details about a Block (whether it contains a 
name or a ZIP code, the exact location on the page, its formatting, etc.) and is there-
fore independent from any layout changes. PPS will take care of all Block-related de-
tails based on the Block properties found in the file.
In other words, the code written by the programmer is »data-blind« – it is generic and 
does not depend on the particulars of any Block. For example, the designer can move 
the Block with name of the addressee in a mailing to a different location on the page, or 
change the font size. The generic Block handling code doesn’t need to be changed, and 
will generate correct output once the designer changed the Block properties with the 
Acrobat plugin to use the first name instead of the last name.
As an intermediate step Block filling can be previewed in Acrobat to accelerate the 
development and test cycles. Block previews are based on default data (e.g. a string or an 
image file name) which is specified in the Block definitions.
12.2.2 Block Properties
The behavior of Blocks can be controlled with Block properties. Properties are assigned 
to a Block with the Block Plugin.
Predefined Block properties. Blocks are defined as rectangles on the page which are as-
signed a name, a type, and an open set of properties which will later be processed by 
PPS. The name is an arbitrary string which identifies the Block, such as firstname, 
lastname, or zipcode. PPS supports different kinds of Blocks:
>Textline Blocks hold a single line of textual data which will be processed with the Text-
line output method in PPS.
>Textflow Blocks hold one or more lines of textual data. Multi-line text will be format-
ted with the Textflow formatter in PPS. Textflow Blocks can be linked so that one 
Block holds the overflow text of the previous Block (see »Linking Textflow Blocks«, 
page 363).
>Image Blocks hold a raster image. This is similar to placing a TIFF or JPEG file in a DTP 
>PDF Blocks hold arbitrary PDF contents imported from a page in another PDF docu-
ment. This is similar to placing a PDF page in a DTP application.
>Graphics Blocks hold vector graphics. This is similar to placing an SVG file in a layout 
C# PDF Password Library: add, remove, edit PDF file password in C#
C# Sample Code: Add Password to PDF with Permission Settings Applied in C#.NET. This example shows how to add PDF file password with access permission setting.
how to add image to pdf document; add photo to pdf
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
DLLs for PDF Image Extraction in VB.NET. In order to run the sample code, the following steps would be necessary. Add necessary references:
how to add an image to a pdf file; adding an image to a pdf file
Chapter 12:  PPS and the PDFlib Block Plugin
Blocks can carry a number of predefined properties depending on their type. Properties 
can be created and modified with the Block Plugin (see Section 12.3.2, »Editing Block 
Properties«, page 350). A full list of predefined Block properties can be found in Section 
12.6, »Block Properties«, page 367. For example, a text Block can specify the font and size 
of the text, an image or PDF Block can specify the scaling factor or rotation PPS offers 
dedicated functions for processing the Block types, e.g. PDF_fill_textblock( ). These func-
tions search a placed PDF page for a Block by its name, analyze its properties, and place 
client-supplied data (single- or multi-line text, raster image, PDF page, or vector graph-
ics) on the new page according to the specified Block properties. The programmer can 
override Block properties by specifying the corresponding options in the Block filling 
Properties for default contents. Special Block properties can be defined which hold 
the default contents of a Block, i.e. the text, image, PDF, or graphics contents that will be 
placed in the Block if no variable data is supplied to the Block filling functions, or in sit-
uations where the Block contents are currently constant, but may change in the next 
print run.
Default properties are also used by the Preview feature of the Block Plugin (see Sec-
tion 12.4, »Previewing Blocks in Acrobat«, page 357).
Custom Block properties. Predefined Block properties make it possible to quickly im-
plement variable data processing applications, but they are restricted to the set of prop-
erties which are internally known to PPS and can automatically be processed. In order to 
provide more flexibility, the designer can also assign custom properties to a Block. 
These can be used to extend the Block concept in order to match the requirements of 
more advanced variable data processing applications.
There are no rules for custom properties since PPS will not process custom proper-
ties in any way, except making them available to the client. The client code can retrieve 
the value of custom properties and process it as appropriate. Based on a custom proper-
ty of a Block the application may make layout-related or data-gathering decisions. For 
example, a custom property for a scientific application could specify the number of dig-
its for numerical output, or a database field name may be defined as a custom Block 
property for retrieving the data corresponding to this Block.
12.2.3 Why not use PDF Form Fields?
Experienced Acrobat users may ask why we implemented a new Block concept instead 
of relying on the existing form field mechanism available in PDF. The primary distinc-
tion is that PDF form fields are optimized for interactive filling, while PDFlib Blocks are 
targeted at automated filling. Applications which need both interactive and automated 
filling can combine PDF forms and PDFlib Blocks with the form field conversion plugin 
(see Section 12.3.4, »Converting PDF Form Fields to PDFlib Blocks«, page 353).
Although there are many parallels between both concepts, PDFlib Blocks offer sever-
al advantages over PDF form fields as detailed in Table 12.1.
C# Create PDF from images Library to convert Jpeg, png images to
List<Bitmap> images = new List<Bitmap>(); images.Add(new Bitmap(Program.RootPath + "\\" 1.gif")); / Build a PDF document with GIF image.
add image to pdf file; add image to pdf acrobat reader
C# PDF Sticky Note Library: add, delete, update PDF note in C#.net
C#.NET PDF SDK - Add Sticky Note to PDF Page in C#.NET. Able to add notes to PDF using C# source code in Visual Studio .NET framework.
add photo to pdf reader; add an image to a pdf with acrobat
12.2  Overview of the Block Concept 345
Table 12.1 Comparison of PDF form fields and PDFlib Blocks
PDF form fields
PDFlib Blocks
design objective
for interactive use
for automated filling
typographic features (beyond 
choice of font and font size)
kerning, word and character spacing, underline/
OpenType layout features
dozens of OpenType layout features, e.g. ligatures, 
swash characters, oldstyle figures
complex script support
shaping and bidirectional formatting, e.g. for Ara-
bic and Devanagari
font control
font embedding
font embedding and subsetting, encoding
text formatting controls
left-, center-, right-aligned
left-, center-, right-aligned, justified; various for-
matting algorithms and controls; inline options 
can be used to control the appearance of text
change font or other text attributes 
within text
merged result is integral part of PDF 
page description
users can edit merged field contents yes
extensible set of properties
yes (custom Block properties)
use image files for filling
use vector graphics for filling
color support
grayscale, RGB, CMYK, Lab, spot color (HKS and Pan-
tone spot colors integrated in the Block Plugin)
PDF standards
graphics and text properties can be 
overridden upon filling
transparent contents
Text Blocks can be linked
C# PDF remove image library: remove, delete images from PDF in C#.
C# Read: PDF Image Extract; C# Write: Insert text into PDF; C# Write: Add Image to PDF; Remove Image from PDF Page Using C#. Add necessary references:
add image pdf document; acrobat add image to pdf
VB.NET PDF remove image library: remove, delete images from PDF in
C# Read: PDF Image Extract; C# Write: Insert text into PDF; C# Write: Add Image to PDF; VB.NET: Remove Image from PDF Page. Add necessary references:
how to add an image to a pdf; add png to pdf acrobat
Chapter 12:  PPS and the PDFlib Block Plugin
12.3 Editing Blocks with the Block Plugin
12.3.1 Creating Blocks
Activating the Block tool. The Block Plugin for creating PDFlib Blocks is similar to the 
form tool in Acrobat. All Blocks on the page will be visible when the Block tool is active. 
When another Acrobat tool is selected the Blocks will be hidden, but they are still pres-
ent. You can activate the Block tool in the following ways:
>By clicking the Block icon 
which you can locate as follows:
Acrobat DC: click Tools, Advanced Editing.
Acrobat X/XI: in the Tools, Advanced Editing pane. If Acrobat does not display this tool-
bar you can enable it via View, Tools, Advanced Editing.
Acrobat 9: in the Advanced Editing toolbar. If Acrobat does not display this toolbar 
you can enable it via View, Toolbars, Advanced Editing.
>Via the menu item PDFlib Blocks, PDFlib Block Tool.
Creating and modifying Blocks. When the Block tool is active you can drag the cross-
hair pointer to create a Block at the desired position on the page and with the desired 
size. Blocks are always rectangular with edges parallel to the page edges (use the rotate 
property for Block contents which are not parallel to the page edges). After dragging a 
Block rectangle the Block properties dialog appears where you can edit the properties of 
the Block (see Section 12.3.2, »Editing Block Properties«, page 350). The Block tool auto-
matically creates a Block name which can be changed in the properties dialog. Block 
names must be unique on a page, but can be repeated on another page.
You can change the Block type in the top area to one of Textline, Textflow, Image, PDF, 
or Graphics. Different colors are used for representing the Block types (see Figure 12.1). 
The Block Properties dialog hierarchically organizes the properties in groups and sub-
groups depending on the Block type.
Note After you added Blocks or made changes to existing Blocks in a PDF, use Acrobat’s »Save as...« 
Command (as opposed to »Save«) to achieve smaller file sizes.
Note When using the Acrobat plugin Enfocus PitStop to edit documents which contain PDFlib Blocks 
you may see the message »This document contains PieceInfo from PDFlib. Press OK to continue 
editing or Cancel to abort.« This message can be ignored; it is safe to click OK in this situation.
Selecting Blocks. Several Block operations, such as copying, moving, deleting, or edit-
ing Properties, work with one or more selected Blocks. You can select Blocks with the 
Block tool as follows:
>To select a single Block simply click on it.
>To select multiple Blocks hold down the Shift key while clicking on the second and 
subsequent Block.
>Press Ctrl-A (on Windows) or Cmd-A (on OS X) or Edit, Select All to select all Blocks on a 
The context menu. When one or more Blocks are selected you can open the context 
menu to quickly access Block-related functions (which are also available in the PDFlib 
Blocks menu). To open the context menu, click on the selected Block(s) with the right 
mouse button on Windows, or Ctrl-click the Block(s) on OS X. For example, to delete a 
12.3  Editing Blocks with the Block Plugin 347
Block, select it with the Block tool and press the Delete key, or use Edit, Delete in the con-
text menu.
If you right-click (or Ctrl-click on OS X) an area on the page where no Block is located 
the context menu contains entries for creating a Block Preview and for configuring the 
Preview feature.
Block size and position. Using the Block tool you can move one or more selected 
Blocks to a different position. Hold down the Shift key while dragging a Block to restrain 
the positioning to horizontal and vertical movements. This may be useful for exactly 
aligning Blocks. When the pointer is located near a Block corner, the pointer will change 
to an arrow and you can resize the Block. To adjust the position or size of multiple 
Fig. 12.1 Visualization of Blocks
Chapter 12:  PPS and the PDFlib Block Plugin
Blocks, select two or more Blocks and use the Align, Center, Distribute, or Size commands 
from the PDFlib Blocks menu or the context menu. The position of one or more Blocks 
can also be changed in small increments by using the arrow keys.
Alternatively, you can enter numerical Block coordinates in the properties dialog. 
The origin of the coordinate system is in the upper left corner of the page. The coordi-
nates will be displayed in the unit which is currently selected in Acrobat:
>To change the display units in Acrobat 9/X/XI/DC proceed as follows: go to Edit, Pre-
ferences, [General...], Units & Guides, Page & Ruler Units and choose one of Points, Inch-
es, Millimeters, Picas, Centimeters.
>To display cursor coordinates use View, Show/Hide, Cursor Coordinates (Acrobat X/XI/
DC) or View, Cursor Coordinates (Acrobat 9).
Note that the selected unit will only affect the Rect property, but not any other numeri-
cal properties (e.g. fontsize).
Using a grid to position Blocks. You can take advantage of Acrobat’s grid feature for 
precisely positioning and resizing Blocks:
Fig. 12.2
The Block properties dialog
12.3  Editing Blocks with the Block Plugin 349
>Display the grid: View, Show/Hide, Rulers & Grids, Grid (Acrobat X/XI/DC) or View, Grid 
(Acrobat 9);
>Enable grid snapping: View, Show/Hide, Rulers & Grids, Snap to Grid (Acrobat X/XI/DC) 
or View, Snap to Grid (Acrobat 9);
>Change the grid (see Figure 12.3): go to Edit, Preferences, [General...], Units & Guides. Here 
you can change the spacing and position of the grid as well as the color of the grid 
If Snap to Grid is enabled the size and position of Blocks will be aligned with the config-
ured grid. Snap to Grid affects newly generated Blocks as well as existing Blocks which 
are moved or resized with the Block tool.
Creating Blocks by selecting an image or graphic. As an alternative to manually drag-
ging Block rectangles you can use existing page contents to define the Block size. First, 
make sure that the menu item PDFlib Blocks, Click Object to define Block is enabled. Now 
you can use the Block tool to click on an image on the page in order to create a Block 
with the same size and location as the image. You can also click on other graphical ob-
jects, and the Block tool will try to select the surrounding graphic (e.g., a logo). The Click 
Object feature is intended as an aid for defining Blocks. If you want to reposition or re-
size the Block you can do so afterwards without any restriction. The Block will not be 
locked to the image or graphics object which was used as a positioning aid.
The Click Object feature tries to recognize which vector graphics and images form a 
logical element on the page. When some page content is clicked, its bounding box (the 
surrounding rectangle) will be selected unless the object is white or very large. In the 
next step other objects which are partially contained in the detected rectangle will be 
added to the selected area, and so on. The final area will be used as the basis for the gen-
Fig. 12.3
Grid preferences
in Acrobat
Chapter 12:  PPS and the PDFlib Block Plugin
erated Block rectangle. The end result is that the Click Object feature will try to select 
complete graphics, not only individual lines.
Automatically detect font properties. The Block Plugin can analyze the underlying 
font which is present at the location where a Textline or Textflow Block is positioned, 
and can automatically fill in the corresponding properties of the Block:
fontname, fontsize, fillcolor, charspacing, horizscaling, wordspacing,
textrendering, textrise
Since automatic detection of font properties can result in undesired behavior if the 
background shall be ignored, it can be activated or deactivated using PDFlib Blocks, Detect 
underlying font and color. By default this feature is turned off.
Locking Blocks. Blocks can be locked to protect them against accidentally moving, re-
sizing, or deleting. With the Block tool active, select the Block and choose Lock from its 
context menu. While a Block is locked you cannot move, resize, or delete it, nor edit its 
12.3.2 Editing Block Properties
When you create a new Block, double-click an existing one, or choose Properties from a 
Block’s context menu, the properties dialog will appear where you can edit all settings 
related to the selected Block (see Figure 12.2). As detailed in Section 12.6, »Block Proper-
ties«, page 367, there are several groups of properties available, subject to the Block type.
The Apply button will only be enabled if you changed one or more properties in the dia-
log. The Apply button will be inactive for locked Blocks.
Note Some properties may be inactive depending on the Block type and certain property settings. 
For example, the property subgroup Ruler tabs for hortabmethod=ruler where you can edit 
tabulator settings is enabled only if the hortabmethod property in the group Text formatting, 
Tabs is set to ruler.
To change a property’s value enter the desired number or string in the property’s input 
area (e.g. linewidth), choose a value from a drop-down list (e.g. fitmethod, orientate), or se-
lect a font, color value or file name by clicking the »...« button at the right-hand side of 
the dialog (e.g. backgroundcolor, defaultimage). For the fontname property you can either 
choose from the list of fonts installed on the system or type a custom font name. Re-
gardless of the method for entering a font name, the font must be available on the sys-
tem where the Blocks will be filled with PPS.
Modified properties will in be displayed in bold face in the Block Properties dialog. If 
any of the properties in a Block has been modified, the suffix (*) will be appended to the 
displayed Block name. When you are done editing properties click the Apply button to 
update the Block. The properties just defined will be stored in the PDF file as part of the 
Block definition.
Stacked Blocks. Overlapping Blocks can be difficult to select since clicking an area will 
always select the topmost Block. In this situation the Choose Block entry in the context 
menu can be used to select one of the Blocks by name. As soon as a Block has been se-
lected this way, the next action within its area will not affect other Blocks, but only the 
selected one. For example, press Enter to edit the selected Block’s properties. This way 
Documents you may be interested
Documents you may be interested