pdf library c# free : Vb extract data from pdf SDK application API .net windows wpf sharepoint PDFlib-7-tutorial22-part1854

9.6  Tagged PDF 221
Generating page contents in visual order. The »logical order« approach forces the cre-
ator to construct the page contents in logical order even if it might be easier to create it 
in visual order: header, left column upper part, table, left column lower part, insert, 
right column, footer. Using PDF_activate_item( ) this ordering can be implemented as 
follows:
/* create page layout in visual order */
id_header = p.begin_item("Artifact", "");
/* 1 create header */
p.set_text_pos(x_header, y_header);
...
p.end_item(id_header);
id_art = p.begin_item("Art", "Title=Article");
id_sect1 = p.begin_item("Sect", "Title = {First Section}");
/* 2 create top part of left column */
p.set_text_pos(x1_left, y1_left_top);
...
String optlist = "Title=Table parent=" + id_art;
id_table = p.begin_item("Table", optlist);
/* 3 create table structure and content */
p.set_text_pos(x_start_table, y_start_table);
...
p.end_item(id_table);
/* continue with first section */
p.activate_item(id_sect1);
/* 4 create bottom part of left column */
p.set_text_pos(x1_left, y1_left_bottom);
...
Fig. 9.1
Creating a complex
page layout in logical
structure order (left)
and in visual order
(right). The right vari-
ant uses item activa-
tion for the first sec-
tion before continuing
fragments 4 and 6.
1
2
3
4
5
6
7
2
4
6
7
3
5
1
8
8
Vb extract data from pdf - extract form data from PDF in C#.net, ASP.NET, MVC, Ajax, WPF
Help to Read and Extract Field Data from PDF with a Convenient C# Solution
how to save editable pdf form in reader; extract table data from pdf to excel
Vb extract data from pdf - VB.NET PDF Form Data Read library: extract form data from PDF in vb.net, ASP.NET, MVC, Ajax, WPF
Convenient VB.NET Solution to Read and Extract Field Data from PDF
extract data from pdf c#; pdf data extraction
222
Chapter 9:  Generating various PDF Flavors
optlist = "Title=Insert parent=" + id_art;
id_insert = p.begin_item("P", optlist);
/* 5 create insert structure and content */
p.set_text_pos(x_start_table, y_start_table);
...
p.end_item(id_insert);
/* still more contents for the first section */
p.activate_item(id_sect1);
/* 6 create top part of right column */   
p.set_text_pos(x1_right, y1_right_top);
...
p.end_item(id_sect1);
id_sect2 = p.begin_item("Sect", "Title={Second Section}");
/* 7 create bottom part of right column */
p.set_text_pos(x2_right, y2_right);
...
/* second section may be continued on next page(s) */
p.end_item(id_sect2);
id_footer = p.begin_item("Artifact", "");
/* 8 create footer */
p.set_text_pos(x_footer, y_footer);
...
p.end_item(id_footer);
/* article may be continued on next page(s) */
...
p.end_item(id_art);
With this ordering of structure elements the main text (which spans one and a half col-
umns) is interrupted twice for the table and the insert. Therefore it must also be activat-
ed twice using PDF_activate_item( ).
The same technique can be applied if the content spans multiple pages. For example, 
the header or other inserts could be created first, and then the main page content ele-
ment is activated again.
9.6.4 Using Tagged PDF in Acrobat
This section mentions observations which we made while testing Tagged PDF output in 
Adobe Acrobat 7/8/9. The observations below are mostly related to bugs or inconsistent 
behavior in Acrobat. Unless mentioned otherwise the observation relate to Acrobat 7, 8, 
and 9. A workaround is provided in cases where we found one.
Acrobat’s Reflow Feature. Acrobat allows Tagged PDF documents to reflow, i.e. to ad-
just the page contents to the current window size. While testing Tagged PDF we made 
several observations regarding the reflow feature in Acrobat:
>The order of content on the page should follow the desired reflow order.
>Symbol (non-Unicode fonts) can cause Reflow in Acrobat 7 and 8 to crash, and can 
disable Reflow in Acrobat 9. For this reason it is recommended to put the text in a 
Figure element.
>BLSEs may contain both structure children and direct content elements. In order for 
Reflow feature (as well as Accessibility checker and Read Aloud) to work it is recom-
VB.NET PDF Text Extract Library: extract text content from PDF
PDF ›› VB.NET PDF: Extract PDF Text. VB.NET PDF - Extract Text from PDF Using VB. How to Extract Text from PDF with VB.NET Sample Codes in .NET Application.
can reader edit pdf forms; exporting data from pdf to excel
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
Home ›› XDoc.PDF ›› VB.NET PDF: Extract PDF Image. VB.NET PDF - Extract Image from PDF Document in VB.NET. VB.NET: Extract All Images from PDF Document.
vb extract data from pdf; html form output to pdf
9.6  Tagged PDF 223
mended to put the direct elements before the first child elements.
Structure items with mixed types of children (i.e., both page content sequences and 
non-inline structure elements) should be avoided since otherwise Reflow may fail.
>The BBox option should be provided for tables and illustrations. The BBox should be 
exact; however, for tables only the lower left corner has to be set exactly. As an alter-
native to supplying a BBox entry, graphics could also be created within a BLSE tag, 
such as P, H, etc. However, vector graphics will not be displayed when Reflow is active. 
If the client does not provide the BBox option (and relies on automatic BBox genera-
tion instead) all table graphics, such as cell borders, should be drawn outside the ta-
ble element.
>Table elements should only contain table-related elements (TR, TD, TH, THead, TBody, 
etc.) as child elements, but not any others. For example, using a Caption element 
within a table could result in reflow problems, although it would be correct Tagged 
PDF.
>Content covered by the Private tag will not be exported to other formats. However, 
they are subject to Reflow and Read Aloud, and illustrations within the Private tag 
must therefore have alternate text.
>Reflow seems to have problems with PDF documents generated with the topdown 
option.
>Structure items with mixed types of children (i.e., both page content sequences and 
non-inline structure elements) should be avoided since otherwise Reflow may fail.
>If an activated item contains only content, but no structure children, Reflow may 
fail, especially if the item is activated on another page. This problem can be avoided 
by wrapping the activated item with a non-inline Span tag.
>Acrobat cannot reflow pages with form fields, and will display a warning in this case.
>Acrobat 9 cannot reflow pages with digital signature fields, and will display a warn-
ing in this case.
>Every reflow problem disables the reflow feature and disables its menu item.
Acrobat’s Accessibility Checker. Acrobat’s accessibility checker can be used to deter-
mine the suitability of Tagged PDF documents for consumption with assisting technol-
ogy such as a screenreader. Some hints:
>In order to make form fields accessible, use the tooltip option of PDF_create_field( ) 
and PDF_create_fieldgroup( ).
>Acrobat 7: If the Lbl tag is set within the TOCI tag (as actually described in Adobe’s PDF 
reference) the Accessibility Checker in Acrobat 7 will warn that the Lbl tag is not set 
within an LI tag.
>If a page contains annotations, Acrobat reports that »tab order may be inconsistent 
with the structure order«.
Export to other formats with Acrobat. Tagged PDF can significantly improve the re-
sult of saving PDF documents in formats such as XML or RTF with Acrobat. 
>If an imported PDF page has the Form tag, the text provided with the ActualText op-
tion will be exported to other formats in Acrobat, while the text provided with the 
Alt tag will be ignored. However, the Read Aloud feature works for both options.
>The content of a NonStruct tag will not be exported to HTML 4.01 CSS 1.0 (but it will be 
used for HTML 3.2 export).
>Alternate text should be supplied for ILSEs (such as Code, Quote, or Reference). If the 
Alt option is used, Read Aloud will read the provided text, but the real content will be 
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
VB.NET: Extract PDF Pages and Save into a New PDF File. You VB.NET: Extract PDF Pages and Overwrite the Original PDF File. Instead
how to save filled out pdf form in reader; how to make pdf editable form reader
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
Image: Extract Image from PDF. |. Home ›› XDoc.PDF ›› C# PDF: Extract PDF Image. How to C#: Extract Image from PDF Document.
pdf form field recognition; extract pdf data to excel
224
Chapter 9:  Generating various PDF Flavors
exported to other formats. If the ActualText option is used, the provided text will be 
used both for reading and exporting.
Acrobat’s Read Aloud Feature. Tagged PDF will enhance Acrobat’s capability to read 
text aloud.
>When supplying Alt or ActualText it is useful to include a space character at the begin-
ning. This allows the Read Aloud feature to distinguish the text from the preceding 
sentence. For the same reason, including a ’.’ character at the end may also be useful. 
Otherwise Read Aloud will try to read the last word of the preceding sentence in 
combination with the first word of the alternate text.
C# PDF Text Extract Library: extract text content from PDF file in
XDoc.PDF ›› C# PDF: Extract PDF Text. C# PDF - Extract Text from PDF in C#.NET. Feel Free to Extract Text from PDF Page, Page Region or the Whole PDF File.
extract data from pdf to excel; extract data from pdf file to excel
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
External cross references. Private data of other applications. Flatten visible layers. VB.NET Demo Code to Optimize An Exist PDF File in Visual C#.NET Project.
edit pdf form in reader; java read pdf form fields
10.1  Installing the PDFlib Block Plugin 225
10 Variable 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 single- or 
multi-line text, images, or PDF graphics which can be pulled from an external source. 
This can be used to easily implement applications which require customized PDF docu-
ments, for example:
>mail merge
>flexible direct mailings
>transactional and statement processing
>business card personalization
Note Block processing requires the PDFlib Personalization Server (PPS). Although PPS is contained in 
all commercial 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.
10.1 Installing the PDFlib Block Plugin
The Block plugin and the PDF form field conversion plugin work with Acrobat 7/8/9 
Standard and Professional on Windows and Mac as well as Acrobat 9 Pro Extended on 
Windows. The plugins don’t work with Acrobat Elements or any version of Acrobat 
Reader/Adobe Reader.
Note The plugins contain multiple language versions of the user interface, and will automatically 
use the same interface language as the Acrobat application if possible. If the plugin does not 
support the native Acrobat language the English user interface will be used instead.
Installing the PDFlib Block plugins for Acrobat on Windows. To install the PDFlib Block 
plugin and the PDF form field conversion plugin in Acrobat 7/8/9, the plugin files must 
be copied to a subdirectory of the Acrobat plugin folder. This is done automatically by 
the plugin installer, but can also be done manually. The plugin files are called Block.api 
and AcroFormConversion.api. A typical location of the plugin folder looks as follows:
C:\Program Files\Adobe\Acrobat 9.0\Acrobat\plug_ins\PDFlib Block Plugin
Installing the PDFlib Block plugins for Acrobat 7/8/9 on the Mac. With Acrobat 7/8/9 
the plugin folder will not be 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 Acrobat application icon in the Finder. It is usually located in a folder 
which has a name similar to the following:
/Applications/Adobe Acrobat 9.0 Professional
>Single-click on the Acrobat application icon and select File, Get Info.
>In the window that pops up click the triangle next to Plug-ins.
VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
VB.NET Components to combine various scanned images to PDF, such as tiff, jpg, png, gif, bmp, etc. Merge Microsoft Office Word, Excel and PowerPoint data to PDF
extract data from pdf; save data in pdf form reader
VB.NET PDF Convert to HTML SDK: Convert PDF to html files in vb.
Embed converted html files in html page or iframe. Export PDF form data to html form in .NET WinForms and ASP.NET. Turn PDF images to HTML images in VB.NET.
export pdf data to excel; pdf data extractor
226
Chapter 10:  Variable Data and Blocks
>Click Add... and select the PDFlib Block Plugin Acro X folder (where X designates your 
Acrobat version) from the folder which has been created in the first step. Note that 
after installation this folder will not immediately show up in the list of plugins, but 
only when you open the info window next time.
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 will not be loaded if Acrobat is running in Certi-
fied 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 PDF’s in-
ternal 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.
10.2  Overview of the PDFlib Block Concept 227
10.2 Overview of the PDFlib Block Concept
10.2.1 Complete Separation of Document Design and Program Code
PDFlib data blocks make it easy to place variable text, images, or graphics on 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 dynamic information, e.g., database fields. The program-
mer 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 inde-
pendent 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« – 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.
10.2.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 one or more lines of textual data. Multi-line 
text will be formatted with the Textflow feature. Textflow blocks can be linked so 
that one block holds the overflow text of the previous block (see Section , »Linking 
multiple Textflow blocks«, page 238).
>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. Properties 
can be created and modified with the PDFlib Block Plugin (see Section 10.3.2, »Editing 
Block Properties«, page 232). A full list of standard block properties can be found in Sec-
tion 10.5, »Standard Properties for Automated Processing«, page 240. For example, a text 
block may specify the font and size of the text, an image or PDF block may specify the 
228
Chapter 10:  Variable Data and Blocks
scaling factor or rotation. For each type of block the PDFlib API offers a dedicated func-
tion 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, raster im-
age, or PDF page) on the new page according to the corresponding block properties.
Cookbook A full code sample for querying the properties of blocks contained in an imported PDF can be 
found in the Cookbook topic blocks/query_block_properties.
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.
10.2.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, while 
PDFlib blocks are targeted at automated filling. Applications which need both interac-
tive and automated filling can easily achieve this by using a feature which automatical-
ly converts form fields to blocks (see Section 10.3.4, »Converting PDF Form Fields to 
PDFlib Blocks«, page 234).
Although there are many parallels between both concepts, PDFlib blocks offer sever-
al advantages over PDF form fields as detailed in Table 10.1.
Table 10.1 Comparison of PDF form fields and PDFlib blocks
feature
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/
overline/strikeout
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
yes
merged result is integral part of PDF 
page description
yes
users can edit merged field contents yes
no
10.2  Overview of the PDFlib Block Concept 229
extensible set of properties
yes (custom block properties)
use image files for filling
BMP, CCITT, GIF, PNG, JPEG, JPEG 2000, TIFF
color support
RGB
grayscale, RGB, CMYK, Lab, spot color (HKS and 
Pantone spot colors integrated in the Block plugin)
PDF/X- and PDF/A-conforming
PDF/X: no; PDF/A: restricted yes (both template with blocks and merged results)
graphics and text properties can be 
overridden upon filling
yes
Text blocks can be linked
yes
Table 10.1 Comparison of PDF form fields and PDFlib blocks
feature
PDF form fields
PDFlib blocks
230
Chapter 10:  Variable Data and Blocks
10.3 Using the PDFlib Block Plugin to create Blocks
10.3.1 Creating Blocks interactively
Activating the PDFlib Block tool. The PDFlib 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 present. You can activate the block tool in several ways:
>by clicking the block icon 
in Acrobat’s Advanced Editing toolbar;
>via the menu item PDFlib Blocks, PDFlib Block Tool;
>by using the keyboard shortcut P; make sure to enable Edit, Preferences, [General...], 
General, Use single key accelerators to access tools, which is disabled by default (not re-
quired in Acrobat 5)
Creating and modifying blocks. Once you activated 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 10.3.2, »Editing Block Properties«, page 232). The 
block tool will automatically create a block name which can be changed in the proper-
ties dialog. Block names must be unique within a page. You can change the block type in 
the top area 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 depend-
ing on the chosen block type. The Textflow tab will only be present for blocks of type text 
if the textflow property is true. Another tab labelled Tabs (tabulator positions) will only 
be available if the hortabmethod property in the Textflow tab has been set to ruler.
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 or moving, work with se-
lected blocks. You can select one or more blocks with the block tool as follows:
>To select a single block simply click on it with the mouse.
>Hold down the Shift key while clicking on another block to extend the selection.
>Press Ctrl-A (on Windows) or Cmd-A (on the Mac) or Edit, Select All to select all blocks 
on a page.
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 the Mac. 
For example, to delete a block, select it with the block tool and press the Delete key, or 
use Edit, Delete in the context menu.
Fine-tuning 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 
Documents you may be interested
Documents you may be interested