open pdf file in new tab in asp.net c# : Delete text pdf acrobat application Library utility html asp.net azure visual studio PDFlib-manual12-part1361

6.1  Overview of the PDFlib Block Concept 121
6Variable Data and Blocks
PDFlib supports a template-driven PDF workflow for variable data processing. Using the 
concept of blocks, imported pages can be populated with variable amounts of text, im-
ages, or PDF graphics which can be pulled from an external source. 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
Note The block processing features discussed in this chapter require the PDFlib Personalization Server 
(PPS). Although PPS is integrated in all precompiled editions of PDFlib, you must purchase a li-
cense 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.
6.1 Overview of the PDFlib Block Concept
6.1.1 Complete Separation of Document Design and Program Code
PDFlib data blocks make it easy to place variable text over imported pages. In contrast to 
simple PDF pages, pages containing data blocks intrinsically carry information about 
the required processing which will be performed later on the server side. The PDFlib 
block concept completely separates the following tasks:
> A designer creates the page layout, and specifies the location of variable text and im-
age elements 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 plug-
in for Acrobat to specify variable data blocks and their associated properties.
> A programmer writes code to connect the information contained in PDFlib blocks on 
imported PDF pages with some 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 therefore in-
dependent from any layout changes. PDFlib will take care of all block-related details 
based on the block properties found in the file.
In other words, the code written by the programmer is »data-blind«, i.e., it is generic and 
does not depend on the particulars of any block. For example, the designer may decide 
to use the first name of the addressee in a mailing instead of the last name. 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.
Example: adding variable text to a template. Adding dynamic text to a PDF template 
is a very common task. The following code fragment will open a page in an input PDF 
document (the template), place it on the output page, and fill some variable text into a 
text block called firstname:
doc = PDF_open_pdi(p, filename, "", 0);
if (doc == -1) {
printf("Couldn't open PDF template '%s'\n", filename);
Delete text pdf acrobat - delete, remove text from PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Allow C# developers to use mature APIs to delete and remove text content from PDF document
delete text pdf; delete text from pdf acrobat
Delete text pdf acrobat - VB.NET PDF delete text library: delete, remove text from PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET Programming Guide to Delete Text from PDF File
how to erase text in pdf; remove text from pdf
122
Chapter 6:  Variable Data and Blocks
return (1);
}
page = PDF_open_pdi_page(p, doc, pageno, "");
if (page == -1) {
printf("Couldn't open page %d of PDF template '%s'\n", pageno, filename);
return (2);
}
PDF_begin_page(p, width, height);
PDF_fit_pdi_page(p, page, 0.0, 0.0, "");
PDF_fill_textblock(p, page, "firstname", "Serge", 0, "encoding winansi");
PDF_close_pdi_page(p, page);
PDF_end_page(p);
6.1.2 Block Properties
The behavior of blocks can be controlled with block properties. The properties are as-
signed to a block with the PDFlib Block plugin for Acrobat.
Standard block properties. PDFlib blocks are defined as rectangles on the page which 
are assigned a name, a type, and an open set of properties which will later be processed 
on the server side. The name is an arbitrary string which identifies the block, such as 
firstname, lastname, or zipcode. PDFlib supports the following kinds of blocks:
> Type Text means that the block will hold some textual data.
> Type Image means that the block will hold a raster image. This is similar to importing 
a TIFF or JPEG file in a DTP application.
> Type PDF means that the block will hold arbitrary PDF graphics imported from a page 
in another PDF document. This is similar to importing an EPS graphic in a DTP appli-
cation.
A block may carry a number of standard properties depending on its type. For example, 
a text block may specify the font and size of the text, an image or PDF block may specify 
the scaling factor or rotation. For each type of block the PDFlib API offers a dedicated 
function for processing the block. These functions search an imported PDF page for a 
block by its name, analyze its properties, and place some client-supplied data (text, ras-
ter image, or PDF page) on the new page according to the corresponding block proper-
ties.
Custom block properties. Standard block properties make it possible to quickly imple-
ment variable data processing applications, but these are limited to the set of properties 
which are internally known to PDFlib and can automatically be processed. In order to 
provide more flexibility, the designer may also assign custom properties to a block. 
These can be used to extend the block concept in order to match the requirements of 
the most demanding variable data processing applications.
There are no rules for custom properties since PDFlib will not process custom prop-
erties in any way, except making them available to the client. The client code can exam-
ine the custom properties and act in whatever way it deems appropriate. Based on some 
custom property of a block the code may make layout-related or data-gathering deci-
sions. For example, a custom property for a scientific application could specify the 
number of digits for numerical output, or a database field name may be defined as a 
custom block property for retrieving the data corresponding to this block.
.NET PDF Document Viewing, Annotation, Conversion & Processing
Redact text content, images, whole pages from PDF file. Annotate & Comment. Edit, update, delete PDF annotations from PDF file. Print.
delete text from pdf with acrobat; how to delete text in pdf file
C# PDF Converter Library SDK to convert PDF to other file formats
Allow users to convert PDF to Text (TXT) file. can manipulate & convert standard PDF documents in other external third-party dependencies like Adobe Acrobat.
how to erase in pdf text; erase text from pdf file
6.1  Overview of the PDFlib Block Concept 123
Overriding block properties. In certain situations the programmer would like to use 
only some of the properties provided in a block definition, but override some other 
properties with custom values. This can be useful in various situations:
> The scaling factor for an image or PDF page will be calculated instead of taken from 
the block definition.
> Change the block coordinates programmatically, for example when generating an 
invoice with a variable number of data items.
> Individual spot color names could be supplied in order to match the requirements of 
individual customers in a print shop application.
Property overrides can be achieved by supplying property names and the correspond-
ing values in the option list of all PDF_fill_*block( ) functions as follows:
PDF_fill_textblock(p, page, "firstname", "Serge", 0, "fontsize 12");
This will override the block’s internal fontsize property with the supplied value 12. Al-
most all names of general properties can be used as options, as well as those specific to a 
particular block type. For example, the underline option is only allowed for PDF_fill_
textblock( ), while the scale option is allowed for both PDF_fill_imageblock( ) and PDF_fill_
pdfblock( ) since scale is a valid property for both image and PDF blocks.
Property overrides apply only to the respective function calls; they will not be stored 
in the block definition.
Coordinate systems. The coordinates describing a block reference the PDF default co-
ordinate system. When the page containing the block is placed on the output page, sev-
eral positioning and scaling options may be supplied to PDF_fit_pdi_page( ). These pa-
rameters are taken into account when the block is being processed. This makes it 
possible to place a template page on the output page multiply, every time filling its 
blocks with data. For example, a business card template may be placed four times on an 
imposition sheet. The block functions will take care of the coordinate system transfor-
mations, and correctly place the text for all blocks in all invocations of the page. The 
only requirement is that the client must place the page and then process all blocks on 
the placed page. Then the page can be placed again at a different location on the output 
page, followed by more block processing operations referring to the new position, and 
so on.
Note The Block plugin will display the block coordinates differently from what is stored in the PDF 
file. The plugin uses Acrobat’s convention which has the coordinate origin in the top left corner 
of the page, while the internal coordinates (those stored in the block) use PDF’s convention of 
having the origin in the bottom left corner of the page.
6.1.3 Why not use PDF Form Fields?
Experienced Acrobat users may ask why we implemented a new block concept for 
PDFlib, instead of relying on the established form field scheme available in PDF. The pri-
mary distinction is that PDF form fields are optimized for interactive filling, and PDFlib 
blocks are targeted at automated filling. Applications which need both interactive and 
automated filling can easily achieve this by using a feature which automatically con-
verts form fields to blocks (see Section 6.2.3, »Converting PDF Form Fields to PDFlib 
Blocks«, page 128).
C# powerpoint - PowerPoint Conversion & Rendering in C#.NET
documents in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat. PowerPoint to PDF Conversion.
pdf editor online delete text; delete text from pdf
C# Word - Word Conversion in C#.NET
Word documents in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat. Word to PDF Conversion.
delete text pdf file; how to delete text in pdf using acrobat professional
124
Chapter 6:  Variable Data and Blocks
Although there are many parallels between both concepts, PDFlib blocks offer sever-
al advantages over PDF form fields as detailed in Table 6.1.
Table 6.1 Comparison of PDF form fields and PDFlib blocks
Feature
PDF form fields
PDFlib blocks
design objective
designed for interactive use designed for automated filling
typographic features (beyond 
choice of font and font size)
kerning, word and character spacing, 
underline/overline/strikeout
font control
font embedding
font embedding and subsetting, encoding
merged result is integral part of PDF 
page description
no
yes
users can edit merged field contents yes
no
extensible set of properties
no
yes (custom block properties)
color support
RGB
grayscale, RGB, CMYK, spot color, Lab
PDF/X compatible
no
yes (both template with blocks and merged 
results)
VB.NET PDF: How to Create Watermark on PDF Document within
create a watermark that consists of text or image (such And with our PDF Watermark Creator, users need no external application plugin, like Adobe Acrobat.
how to edit and delete text in pdf file online; how to delete text in pdf converter
C# Windows Viewer - Image and Document Conversion & Rendering in
standard image and document in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat. Convert to PDF.
delete text pdf acrobat professional; how to delete text from a pdf reader
6.2  Creating Variable Data Blocks 125
6.2 Creating Variable Data Blocks
PDFlib blocks can be created with the PDFlib Block plugin for Adobe Acrobat 5 or above. 
The Block plugin and its sibling, the PDF form field conversion plugin, work only with 
the full version of Acrobat, and not with Acrobat Reader.
6.2.1 Creating Blocks in Acrobat with the PDFlib Block Plugin
Installing the PDFlib plugins for Acrobat. To install the PDFlib Block plugin and the 
PDF form field conversion plugin (see Section 6.2.3, »Converting PDF Form Fields to 
PDFlib Blocks«, page 128) simply copy the plugin files to a subdirectory in the Acrobat 
plugin folder. On Windows these are the files Block.api and AcroFormConversion.api, and a 
typical location of the PDFlib plugin folder looks as follows:
C:\Program Files\Adobe\Acrobat 5.05\Acrobat\Plug_ins\PDFlib
On Mac OS X the files are called Block and AcroFormConversion, and a typical plugin loca-
tion looks as follows:
/Applications/Adobe Acrobat 5.05/Plug-Ins/PDFlib
Note If the PDFlib Block plugin doesn’t seem to work make sure that in Edit, Preferences, General..., 
Options the »Certified Plug-ins Only« box is unchecked.
Using the PDFlib Block tool. The PDFlib Block plugin to create PDFlib blocks is similar 
to the form tool in Acrobat. You can activate the block tool by clicking the block icon 
in the Acrobat toolbar, via the menu item PDFlib Blocks, Block Tool, or by using the 
keyboard shortcut B. 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, although they are still 
present.
Creating and modifying blocks. Once you selected the block tool you can simply drag 
the cross-hair pointer to create a block at the desired position on the page and the de-
sired size. Blocks will always be rectangular with edges parallel to the page edges. When 
you create a new block the block properties dialog appears where you can edit various 
properties of the block (see Section 6.2.2, »Editing Block Properties«, page 127). The block 
tool will automatically create a block name which can be changed in the properties dia-
log. Block names must be unique within a page. You can change the block type in the 
General tab to one of Text, Image, or PDF. The General and Custom tabs will always be 
available, while only one of the Text, Image, and PDF tabs will be active at a time de-
pending on the chosen block type.
To delete one or more blocks, select it with the block tool and press the Delete key.
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.
Fine-tuning block size and position. Using the block tool you can select an existing 
block by clicking on it, and move it to a different position. 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 blocks, select two or more blocks and use the 
C# Excel - Excel Conversion & Rendering in C#.NET
Excel documents in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat. Excel to PDF Conversion.
delete text pdf preview; how to delete text in pdf file online
VB.NET PowerPoint: VB Code to Draw and Create Annotation on PPT
other documents are compatible, including PDF, TIFF, MS free hand, free hand line, rectangle, text, hotspot, hotspot more plug-ins needed like Acrobat or Adobe
acrobat delete text in pdf; how to remove text watermark from pdf
126
Chapter 6:  Variable Data and Blocks
Align, Center, Distribute, or Size commands from the PDFlib Blocks menu. The position of 
one or more blocks can also be changed by using the arrow keys.
Creating blocks by selecting an image or graphic. As an alternative to manually drag-
ging block rectangles you can use some page content to define the block size. First, make 
sure that the menu item PDFlib Blocks, Click Object to define Block is active. Now you can 
use the block tool to click on an image on the page in order to create a block with the size 
of the image. You can also click on other graphical objects, 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 resize the block you can do so after-
wards without any restriction. The block will not be locked to the image or graphics ob-
ject which was used as a positioning and sizing aid.
The Click Object feature will try 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-
erated block rectangle. The end result is that the Click Object feature will try to select 
complete graphics, and not only individual lines.
The Click Object feature isn’t perfect: it will not always select what you want due to 
the nature of the page content. Keep in mind that this feature is only intended as a posi-
tioning aid for quickly placing rectangles.
Importing and exporting blocks. Using the export and import features for blocks it is 
possible to share block definitions for a particular page among multiple PDF files. This 
is useful for updating the page contents while maintaining existing block definitions. 
To export block definitions to a separate file proceed as follows:
> Select the block tool.
> Select the blocks you want to export. Press Ctrl-A to select all blocks.
> Choose PDFlib Blocks, Import and Export, Export..., and enter a file name.
Fig. 6.1
Editing block properties
6.2  Creating Variable Data Blocks 127
You can import block definitions via PDFlib Blocks, Import and Export, Import... . Upon im-
porting blocks you can choose whether to apply the imported blocks to all pages in the 
document, or only to one or more selected pages. If more than one page is selected the 
block definitions will be copied unmodified to the selected pages.
Locking blocks. Blocks can be locked to protect them against accidental moving, resiz-
ing, or deleting. With the block tool active, select the block, activate its context menu 
(using the right mouse button on Windows, or ctrl-click on the Mac), and select Lock. 
While a block is locked you cannot move, resize, or delete it, nor display its properties 
dialog.
Using Blocks with PDF/X. Unlike PDF form fields, PDFlib blocks are PDF/X-compatible. 
Both the input document containing blocks, as well as the generated output PDF can be 
made PDF/X conforming. However, in preparing block files for a PDF/X workflow you 
may run into the following problem:
> PDF/X-1, PDF/X-1a, and PDF/X-3 are based on PDF 1.3, and do not support Acrobat 5 
files;
> The PDFlib Block plugin requires Acrobat 5 or above.
In order to work around this potential deadlock use the PDFlib Block plugin installed in 
Acrobat 5. For saving the generated PDF with blocks in the PDF/X-conforming PDF ver-
sion 1.3 use an additional plugin by callas software called pdfSaveAsPDF1.3. Fully func-
tional demo versions are available from the callas web site
1
.
6.2.2 Editing Block Properties
When you create a new block or double-click an existing one the properties dialog will 
appear where you can edit a block’s properties (see Figure 6.1). As detailed in Section 6.3, 
»Standard Properties for automated Processing«, page 130, there are several types of 
properties:
> Properties in the General tab apply to all blocks.
> Properties in the Text, Image, and PDF tabs apply only to the respective block type. 
Only the tab corresponding to the current block’s type will be active, while the other 
two tabs are inactive.
> Properties in the Custom tab can be defined by the user, and apply to any block type.
To change a property’s value, select it in the property list, change its value in the lower 
part of the dialog, and click Apply. For some properties you can also click the »...« symbol 
in order to define the value using a dedicated dialog box. When you are done editing 
properties click OK to close the properties dialog. The properties just defined will be 
stored in the PDF file as part of the block definition.
Default properties. In order to save some amount of typing and clicking the block tool 
will remember the property values which have been entered into the previous block’s 
properties dialog. These values will be reused when you create a new block. Of course 
you can override these values with different ones at any time.
Shared properties. By holding the shift key and using the block tool to select several 
blocks you can select an arbitrary number of blocks. The Enter key will display the prop-
1. See http://www.callassoftware.com 
128
Chapter 6:  Variable Data and Blocks
erties dialog which now applies to all selected blocks. However, since not all properties 
can be shared among multiple blocks, only a subset of all properties will be available for 
editing. Section 6.3, »Standard Properties for automated Processing«, page 130, details 
which properties can be shared among multiple blocks.
6.2.3 Converting PDF Form Fields to PDFlib Blocks
As an alternative to creating PDFlib blocks manually you can automatically convert PDF 
form fields to blocks. This is especially convenient if you have complicated PDF forms 
which you want to fill automatically with PDFlib, or need to convert a large number of 
existing PDF forms for automated filling. In order to convert all form fields on a page to 
PDFlib blocks choose PDFlib Blocks, Convert Form Fields, Current Page. To convert all form 
fields in a document choose All Pages instead. Finally, you can convert only selected 
form fields (choose Acrobat’s form tool to select form fields) with All Active Form Fields.
Form field conversion details. Automatic form field conversion will convert form 
fields of the types selected in the PDFlib Blocks, Convert Form Fields, Conversion Options... 
dialog to blocks of type Text. By default all form field types will be converted. Attributes 
of the converted fields will be transformed to the corresponding block properties ac-
cording to Table 6.2.
Table 6.2 Conversion of PDF form fields to PDFlib blocks
PDF form field attribute...
...will be converted to the PDFlib block property
all fields
Position
General, Rect
Name
General, Name
Short Description
General, Description
Appearance, Text, Font
Text, fontname
Appearance, Text, Size
Text, fontsize; »auto« font size will be converted to a fixed font size 
of 2/3 of the block height, and the fitmethod will be set to »auto«
Appearance, Text, Text Color
Text, textcolor and Text, fillcolor
Appearance, Border, Border Color
General, bordercolor
Appearance, Border, Background Color
General, backgroundcolor
Appearance, Border, Width
General, linewidth: Thin=1, Medium=2, Thick=3
Appearance, Common Properties, Form 
Field is...
General, Status: Visible=active, Hidden=ignore, Visible but doesn’t 
print=ignore, Hidden but printable=active
Appearance, Common Prop., Orientation
General, orientate: 0=north, 90=west, 180=south, 270=east
text fields
Options, Default
Text, defaulttext
Options, Alignment
General, position: Left={0 50}, Center={50 50}, Right={100, 50}
radio buttons and check boxes
If »Default is Checked« is selected:
Options, Radio Style and
Options, Check Style
Text, defaulttext: Check=4, Circle=l, Cross=8, Diamond=u, 
Square=n, Star=H (these characters represent the respective 
symbols in the ZapfDingbats font)
List boxes and combo boxes
Options, Selected (default) item
Text, defaulttext
buttons
Options, Button Face Attributes, Text
Text, defaulttext
6.2  Creating Variable Data Blocks 129
Binding blocks to the corresponding form fields. In order to keep PDF form fields and 
the generated PDFlib blocks synchronized, the generated blocks can be bound to the cor-
responding form fields. This means that the block tool will internally maintain the rela-
tionship of form fields and blocks. When conversion process is activated again, bound 
blocks will be updated to reflect the attributes of the corresponding PDF form fields. 
Bound blocks are useful to avoid duplicate work: when a form is updated for interactive 
use, the corresponding blocks can automatically be updated, too.
If you do not want to keep the converted form fields after blocks have been generat-
ed you can choose the option Delete converted Form Fields in the PDFlib Blocks, Convert 
Form Fields, Conversion Options... dialog. This option will permanently remove the form 
fields after the conversion process. Any actions (e.g., JavaScript) associated with the af-
fected fields will also be removed from the document.
130
Chapter 6:  Variable Data and Blocks
6.3 Standard Properties for automated Processing
PDFlib supports general properties which can be assigned to any type of block. In addi-
tion there are properties which are specific to the block types Text, Image, and PDF. Some 
properties are shared, which means that they can be assigned to multiple blocks at once 
using the Block plugin.
Properties support the same data types as option lists (see Section 3.1.4, »Option 
Lists«, page 43) except handles, plus the additional data type color which contains a color 
space description and one or more color values.
Many block properties have the same name as options for PDF_fit_image( ) (e.g., 
fitmethod) and other functions, or as PDFlib parameters (e.g., charspacing). In these cases 
the behavior is exactly the same as the one documented for the respective option or pa-
rameter.
Property processing in PDFlib. The PDFlib Block functions PDF_fill_*block( ) will process 
block properties in the following order:
> If the backgroundcolor property is present, the block rectangle will be filled with the 
specified color.
> All other properties except bordercolor and linewidth will be processed.
> If the bordercolor property is present the block rectangle will be stroked with the 
specified color and linewidth.
There will be no clipping; if you want to make sure that the block contents do not ex-
ceed the block rectangle choose fitmethod clip.
If a separation color is used in a block property the specified spot color name must 
either be known to PDFlib internally (see Section 3.3.3, »Spot Colors«, page 58), or must 
have been specified earlier in the PDFlib client program using PDF_makespotcolor( ). Oth-
erwise the block functions will fail.
General properties. General properties apply to all kinds of blocks (Text, Image, PDF). 
They are required for block administration, describe the appearance of the block rectan-
gle itself, and manage how the contents will be placed within block. Table 6.3 lists the 
general properties.
Table 6.3 General block properties
keyword
type
possible values and explanation
block administration
Name
1
string
Name of the block; maximum length is 127 bytes. Block names must be 
unique within a page, but not within a document.
Description
string
Human-readable description of the block’s function, coded in PDFDocEn-
coding or Unicode (in the latter case starting with a BOM). This property is 
for user information only, and will be ignored when processing the block.
Locked
2
boolean
If true, the block and its properties can not be edited with the Block plugin. 
This property will be ignored when processing the block. Default: false.
Rect
1
float list
Four coordinates of the block (lower left and upper right corner). The 
origin of the coordinate system is in the lower left corner of the page. 
However, the Block plugin will display the coordinates in Acrobat’s 
notation, i.e., with the origin in the upper left corner of the page.
Documents you may be interested
Documents you may be interested