pdf library c# free : How to extract data from pdf file using java SDK Library project wpf asp.net .net UWP PDFlib-7-tutorial14-part1845

7.2  Multi-Line Textflows 141
A multi-line Textflow can be placed into one or more rectangles (so-called fitboxes) 
on one or more pages. The following steps are required for placing a Textflow on the 
page:
>The function PDF_add_textflow( ) accepts portions of text and corresponding format-
ting options, creates a Textflow object, and returns a handle. As an alternative, the 
function PDF_create_textflow( ) analyzes the complete text in a single call, where the 
text may contain inline options for formatting control. These functions do not place 
any text on the page.
>The function PDF_fit_textflow( ) places all or parts of the Textflow in the supplied fit-
box. To completely place the text, this step must possibly be repeated several times 
where each of the function calls provides a new fitbox which may be located on the 
same or another page.
>The function PDF_delete_textflow( ) deletes the Textflow object after it has been 
placed in the document.
The functions PDF_add/create_textflow( ) for creating Textflows support a variety of op-
tions for controlling the formatting process. These options can be provided in the func-
tion’s option list, or embedded as inline options in the text when using PDF_create_
textflow( ). PDF_info_textflow( ) can be used to query formatting results and many other 
Textflow details. We will discuss Textflow placement using some common application 
examples. A complete list of Textflow options can be found in the PDFlib Reference.
Many of the options supported by PDF_add/create_textflow( ) are identical to those of 
PDF_fit_textline( ). It is therefore recommended to familiarize yourself with the exam-
ples in Section 7.1, »Placing and Fitting Single-Line Text«, page 133. In the below sections 
we will focus on options related to multi-line text.
Cookbook Code samples regarding text output issues can be found in the text_output category of the 
PDFlib Cookbook.
7.2.1 Placing Textflows in the Fitbox
The fitbox for Textflow is the area where text will be placed. It is defined as the rectan-
gular area specified with the llx, lly, urx, ury parameters of PDF_fit_textflow( ).
Placing text in a single fitbox. Let’s start with an easy example. The following code 
fragment uses two calls to PDF_add_textflow( ) to assemble a piece of bold text and a 
aerobatics. Butit is bestsuited to gliding.
3.
C
one
Hea d R
ocket
This paper arrow can be thrown with big swing.Welauncheditfrom
the roof of a hotel. It stayed in the air a long time and covered a
considerable distance.
4.
Super Dart
The super dart can fly giantloops with a radius of 4 or 5 meters and
cover very long distances. Its heavy cone point is slightly bowed
upwards to getthe liftrequired for loops.
5.
German Bi-Plane
Brand-new and ready for take-off.If you have lessons in thehistory of
aviation you can show your interestby lettingit land onyour teacher's
desk.
fillcolor,charspacing,
fontsize,fontname
Fig. 7.11
Formatting
Textflows
How to extract data from pdf file using java - 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
extract data from pdf form; how to fill out a pdf form with reader
How to extract data from pdf file using java - 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
collect data from pdf forms; extract table data from pdf to excel
142
Chapter 7:  Formatting Features
piece of normal text. Font, font size, and encoding are specified explicitly. In the first 
call to PDF_add_textflow( ), -1 is supplied, and the Textflow handle will be returned to be 
used in subsequent calls to PDF_add_textflow( ), if required. text1 and text2 are assumed 
to contain the actual text to be printed.
With PDF_fit_textflow( ), the resulting Textflow is placed in a fitbox on the page using 
default formatting options.
/* Add text with bold font */
tf = p.add_textflow(-1, text1, "fontname=Helvetica-Bold fontsize=9 encoding=unicode");
if (tf == -1) 
throw new Exception("Error: " + p.get_errmsg());
/* Add text with normal font */
tf = p.add_textflow(tf, text2, "fontname=Helvetica fontsize=9 encoding=unicode");
if (tf == -1) 
throw new Exception("Error: " + p.get_errmsg());
/* Place all text */
result = p.fit_textflow(tf, left_x, left_y, right_x, right_y, "");
if (!result.equals("_stop"))
{ /* ... */}
p.delete_textflow(tf);
Placing text in two fitboxes on multiple pages. If the text placed with PDF_fit_
textflow( ) doesn’t completely fit into the fitbox, the output will be interrupted and the 
function will return the string  _boxfull. PDFlib will remember the amount of text al-
ready placed, and will continue with the remainder of the text when the function is 
called again. In addition, it may be necessary to create a new page. The following code 
fragment demonstrates how to place a Textflow in two fitboxes per page on one or 
more pages until the text has been placed completely (see Figure 7.12).
Cookbook A full code sample can be found in the Cookbook topic text_output/starter_textflow.
/* Loop until all of the text is placed; create new pages as long as more text needs
* to be placed. Two columns will be created on all pages.
*/
Lorem ipsum dolor sit amet, consectetur
adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex
ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excep-
teur sint occaecat cupidatat non proident,
sunt in culpa qui officia deserunt mollit anim
id est laborum. 
Lorem ipsum dolor sit
amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo con-
sequat. Duis aute irure dolor in reprehenderit
in voluptate velit esse cillum dolore eu fugiat
nulla pariatur.  Excepteur  sint occaecat
cupidatat non proident, sunt in culpa qui
officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur
adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex
ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excep-
teur sint occaecat cupidatat non proident,
sunt in culpa qui officia deserunt mollit anim
id est laborum. 
Lorem ipsum dolor sit
amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo con-
sequat. Duis aute irure dolor in reprehenderit
in voluptate velit esse cillum dolore eu fugiat
nulla pariatur.  Excepteur  sint occaecat
cupidatat non proident, sunt in culpa qui
officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur
adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex
ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excep-
teur sint occaecat cupidatat non proident,
sunt in culpa qui officia deserunt mollit anim
id est laborum. 
Lorem ipsum dolor sit
amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo con-
sequat. Duis aute irure dolor in reprehenderit
in voluptate velit esse cillum dolore eu fugiat
nulla pariatur.  Excepteur  sint occaecat
cupidatat non proident, sunt in culpa qui
officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur
adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex
ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excep-
teur sint occaecat cupidatat non proident,
sunt in culpa qui officia deserunt mollit anim
id est laborum. 
Lorem ipsum dolor sit
amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo con-
sequat. Duis aute irure dolor in reprehenderit
in voluptate velit esse cillum dolore eu fugiat
nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui
officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur
adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex
ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excep-
teur sint occaecat cupidatat non proident,
sunt in culpa qui officia deserunt mollit anim
id est laborum. 
10 
Lorem ipsum dolor sit
amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo con-
sequat. Duis aute irure dolor in reprehenderit
in voluptate velit esse cillum dolore eu fugiat
nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui
officia deserunt mollit anim id est laborum.
11 
Lorem ipsum dolor sit amet, consectetur
adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex
ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excep-
teur sint occaecat cupidatat non proident,
sunt in culpa qui officia deserunt mollit anim
id est laborum. 
12 
Lorem ipsum dolor sit
amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo con-
sequat. Duis aute irure dolor in reprehenderit
in voluptate velit esse cillum dolore eu fugiat
nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui
officia deserunt mollit anim id est laborum.
13 
Lorem ipsum dolor sit amet, consectetur
adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex
ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excep-
teur sint occaecat cupidatat non proident,
sunt in culpa qui officia deserunt mollit anim
id est laborum. 
14 
Lorem ipsum dolor sit
amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo con-
sequat. Duis aute irure dolor in reprehenderit
in voluptate velit esse cillum dolore eu fugiat
nulla pariatur. Excepteur  sint occaecat
cupidatat non proident, sunt in culpa qui
officia deserunt mollit anim id est laborum.
15 
Lorem ipsum dolor sit amet, consectetur
adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex
ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excep-
teur sint occaecat cupidatat non proident,
sunt in culpa qui officia deserunt mollit anim
id est laborum. 
16 
Lorem ipsum dolor sit
amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo con-
sequat. Duis aute irure dolor in reprehenderit
in voluptate velit esse cillum dolore eu fugiat
nulla pariatur. Excepteur  sint occaecat
cupidatat non proident, sunt in culpa qui
officia deserunt mollit anim id est laborum.
17 
Lorem ipsum dolor sit amet, consectetur
adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex
ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excep-
teur sint occaecat cupidatat non proident,
sunt in culpa qui officia deserunt mollit anim
id est laborum. 
18 
Lorem ipsum dolor sit
amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo con-
sequat. Duis aute irure dolor in reprehenderit
in voluptate velit esse cillum dolore eu fugiat
nulla pariatur. Excepteur  sint occaecat
cupidatat non proident, sunt in culpa qui
officia deserunt mollit anim id est laborum.
19 
Lorem ipsum dolor sit amet, consectetur
adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex
ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excep-
teur sint occaecat cupidatat non proident,
sunt in culpa qui officia deserunt mollit anim
id est laborum. 
20 
Lorem ipsum dolor sit
amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo con-
sequat. Duis aute irure dolor in reprehenderit
in voluptate velit esse cillum dolore eu fugiat
nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui
officia deserunt mollit anim id est laborum.
21 
Lorem ipsum dolor sit amet, consectetur
adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex
ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excep-
teur sint occaecat cupidatat non proident,
sunt in culpa qui officia deserunt mollit anim
id est laborum. 
22 
Lorem ipsum dolor sit
amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo con-
sequat. Duis aute irure dolor in reprehenderit
in voluptate velit esse cillum dolore eu fugiat
nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui
officia deserunt mollit anim id est laborum.
23 
Lorem ipsum dolor sit amet, consectetur
adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex
ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excep-
teur sint occaecat cupidatat non proident,
sunt in culpa qui officia deserunt mollit anim
id est laborum. 
24 
Lorem ipsum dolor sit
amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo con-
sequat. Duis aute irure dolor in reprehenderit
in voluptate velit esse cillum dolore eu fugiat
nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui
officia deserunt mollit anim id est laborum.
25 
Lorem ipsum dolor sit amet, consectetur
adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex
ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excep-
teur sint occaecat cupidatat non proident,
sunt in culpa qui officia deserunt mollit anim
id est laborum. 
26 
Lorem ipsum dolor sit
amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo con-
sequat. Duis aute irure dolor in reprehenderit
in voluptate velit esse cillum dolore eu fugiat
nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui
officia deserunt mollit anim id est laborum.
27 
Lorem ipsum dolor sit amet, consectetur
adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua.
fitbox 1
Fig. 7.12
Placing a Textflow 
in two fitboxes
fitbox 2
fitbox 3
fitbox 4
page 1
page 2
Generate and draw Data Matrix for Java
correction is valid for all 2D barcodes like QR Code, Data Matrix and PDF 417 in Download the Java Data Matrix Generation Package and extract the file.
java read pdf form fields; extracting data from pdf forms
Generate and draw PDF 417 for Java
Error correction is valid for all 2D barcodes like QR Code, Data Matrix and PDF 417 in Download the Java PDF 417 Generation Package and extract the file
save data in pdf form reader; how to save pdf form data in reader
7.2  Multi-Line Textflows 143
do
{
String optlist = "verticalalign=justify linespreadlimit=120%";
p.begin_page_ext(0, 0, "width=a4.width height=a4.height");
/* Fill the first column */
result = p.fit_textflow(tf, llx1, lly1, urx1, ury1, optlist);
/* Fill the second column if we have more text*/
if (!result.equals("_stop"))
result = p.fit_textflow(tf, llx2, lly2, urx2, ury2, optlist);
p.end_page_ext("");
/* "_boxfull" means we must continue because there is more text;
* "_nextpage" is interpreted as "start new column"
*/
} while (result.equals("_boxfull") || result.equals("_nextpage"));
/* Check for errors */
if (!result.equals("_stop"))
{
/* "_boxempty" happens if the box is very small and doesn't hold any text at all.
*/
if (result.equals( "_boxempty"))
throw new Exception("Error: " + p.get_errmsg());
else
{
/* Any other return value is a user exit caused by the "return" option;
* this requires dedicated code to deal with.
*/
}
}
p.delete_textflow(tf);
7.2.2 Paragraph Formatting Options
In the previous example we used default settings for the paragraphs. For example, the 
default alignment is left-justified, and the leading is 100% (which equals the font size).
In order to fine-tune the paragraph formatting we can feed more options to PDF_
add_textflow( ). For example, we can indent the text 15 units from the left and 10 units 
from the right margin. The first line of each paragraph should be indented by an addi-
tional 20 units. The text should be justified against both margins, and the leading in-
creased to 140%. Finally, we’ll reduce the font size to 8 points. To achieve this, extend 
the option list for PDF_add_textflow( ) as follows (see Figure 7.13):
String optlist =
"leftindent=15 rightindent=10 parindent=20 alignment=justify " +
"leading=140% fontname=Helvetica fontsize=8 encoding=unicode";
7.2.3 Inline Option Lists and Macros
The text in Figure 7.13 is not yet perfect. The headline »Have a look at our new paper 
plane models!« should sit on a line of its own, should use a larger font, and should be 
centered. There are several ways to achieve this.
C# PowerPoint: Read, Decode & Scan Barcode Image from PowerPoint
C# PowerPoint: Data Matrix Barcode Reader, C# PowerPoint C# PowerPoint: Decode PDF-417 Barcode Image, C# PowerPoint linear barcode image from PowerPoint file in
how to make a pdf form fillable in reader; extract data out of pdf file
Data Matrix .NET Windows Forms Bar Code Control
using Rasteredge.WinForms.Barcode; // construct a linear barcode Print Data Matrix Barcodes with .NET WinForms Barcode barcode and save into image file in gif
how to make pdf editable form reader; pdf form field recognition
144
Chapter 7:  Formatting Features
Inline option lists for PDF_create_textflow( ). Up to now we provided formatting op-
tions in an option list supplied directly to the function. In order to continue the same 
way we would have to split the text, and place it in two separate calls, one for the head-
line and another one for the remaining text. However, in certain situations, e.g. with 
lots of formatting changes, this method might be pretty cumbersome.
For this reason, PDF_create_textflow( ) can be used instead of PDF_add_texflow( ). PDF_
create_textflow( ) interprets text and so-called inline options which are embedded di-
rectly in the text. Inline option lists are provided as part of the body text. By default, 
they are delimited by »<« and »>« characters. We will therefore integrate the options for 
formatting the heading and the remaining paragraphs into our body text as follows.
Note Inline option lists are colorized in all subsequent samples; end-of-paragraph characters are vi-
sualized with arrows.
<leftindent=15 rightindent=10 alignment=center fontname=Helvetica fontsize=12
encoding=winansi>Have a look at our new paper plane models! 
<alignment=justify fontname=Helvetica leading=140% fontsize=8 encoding=winansi>
Our paper planes are the ideal way of passing the time. We offer 
revolutionary new developments of the traditional common paper planes. 
<parindent=20>If your lesson, conference, or lecture 
turn out to be deadly boring, you can have a wonderful time 
with our planes. All our models are folded from one paper sheet. 
They are exclusively folded without using any adhesive. Several 
models are equipped with a folded landing gear enabling a safe 
Have a look at our new paper plane models! Our paper planes
are the ideal way of passing the time. We offer revolutionary new
developments of the traditional common paper planes.
Ifyour lesson,conference, or lectureturn out tobe deadly boring,
you can have a wonderful time with our planes. All our models are
folded from one paper sheet.
They are exclusively folded without using any adhesive.Several
modelsareequippedwithafoldedlandinggear enablingasafelanding
on the intended location provided that you have aimed well. Other
models are able to fly loops or cover long distances. Let them start
from a vista point in the mountains and see where they touch the
ground.
leading=140%
parindent = 20
leftindent = 15
rightindent = 10
alignment =
justify
Fig. 7.13
Placing a Textflow
with options
Have a look at our new paper plane models!
Our paper planes are the ideal way of passing the time. We offer
revolutionary new developments of the traditional common paper
planes.
Ifyour lesson, conference, or lectureturnouttobe deadly boring,
you can have a wonderful time with our planes. All our models are
folded from one paper sheet.
They are exclusively folded without using any adhesive. Several
modelsareequippedwithafoldedlandinggear enablingasafelanding
on the intended location provided that you have aimed well. Other
models are able to fly loops or cover long distances. Let them start
from a vista point in the mountains and see where they touch the
ground.
H1
Body
Body_indented
Fig. 7.14
Combining inline
options with macros
.NET Windows Forms GS1-128 Bar Code Control & SDK
a global standard for exchanging data between different using Rasteredge.WinForms. Barcode; // construct a linear barcode object and save into image file in gif
how to extract data from pdf to excel; how to fill out pdf forms in reader
Java Imaging SDK Library: Document Image Scan, Process, PDF
convert and compress a multitude of file formats, such as Gif, Png, Tiff, Jpeg2000, DICOM, JBIG2, PDF, MS Word & 2D barcodes, including QR Code, Data Matrix Code
exporting data from excel to pdf form; flatten pdf form in reader
7.2  Multi-Line Textflows 145
landing on the intended location provided that you have aimed well. 
Other models are able to fly loops or cover long distances. Let them 
start from a vista point in the mountains and see 
where they touch the ground.
The characters for bracketing option lists can be redefined with the begoptlistchar and 
endoptlistchar options. Supplying the keyword none for the begoptlistchar option com-
pletely disables the search for option lists. This is useful if the text doesn’t contain any 
inline option lists, and you want to make sure that »<« and »>« will be processed as reg-
ular characters.
Macros. The text above contains several different types of paragraphs, such as head-
ing or body text with or without indentation. Each of these paragraph types is format-
ted differently and occurs multiply in longer Textflows. In order to avoid starting each 
paragraph with the corresponding inline options, we can combine these in macros, and 
refer to the macros in the text via their names. As shown in Figure 7.14 we define three 
macros called H1 for the heading, Body for main paragraphs, and Body_indented for in-
dented paragraphs. In order to use a macro we place the & character in front of its name 
and put it into an option list. The following code fragment defines three macros accord-
ing to the previously used inline options and uses them in the text:
<macro {
H1 {leftindent=15 rightindent=10 alignment=center
fontname=Helvetica fontsize=12 encoding=winansi}
Body {leftindent=15 rightindent=10 alignment=justify leading=140%
fontname=Helvetica fontsize=8 encoding=winansi}
Body_indented {parindent=20 leftindent=15 rightindent=10 alignment=justify
leading=140% fontname=Helvetica fontsize=8 encoding=winansi}
}>
<&H1>Have a look at our new paper plane models! 
<&Body>Our paper planes are the ideal way of passing the time. We offer 
revolutionary new developments of the traditional common paper planes. 
<&Body_indented>If your lesson, conference, or lecture 
turn out to be deadly boring, you can have a wonderful time 
with our planes. All our models are folded from one paper sheet. 
They are exclusively folded without using any adhesive. Several 
models are equipped with a folded landing gear enabling a safe 
landing on the intended location provided that you have aimed well. 
Other models are able to fly loops or cover long distances. Let them 
start from a vista point in the mountains and see 
where they touch the ground.
Explicitly setting options. Note that all options which are not set in macros will retain 
their previous values. In order to avoid side effects caused by unwanted »inheritance« 
of options you should explicitly specify all settings required for a particular macro. This 
way you can ensure that the macros will behave consistently regardless of their order-
ing or combination with other option lists.
On the other hand, you can take advantage of this behavior for deliberately retaining 
certain settings from the context instead of supplying them explicitly. For example, a 
macro could specify the font name without supplying the fontsize option. As a result, 
the font size will always match that of the preceding text.
Data Matrix C#.NET Integration Tutorial
to print Data Matrix using C# BarCode datamatrix.generateBarcodeToByteArray(); //Generate Data Matrix barcodes & Document Imaging SDK and Java Document Imaging
exporting pdf data to excel; vb extract data from pdf
Create Data Matrix with VB.NET, Data Matrix Bar Code Generating
Rasteredge.Barcode.DataMatrix class to generate Data Matrix barcodes by using VB.NET professional .NET Document Imaging SDK and Java Document Imaging
pdf data extractor; pdf form save with reader
146
Chapter 7:  Formatting Features
Inline options or options passed as function parameters? When using Textflows it 
makes an important difference whether the text is contained literally in the program 
code or comes from some external source, and whether the formatting instructions are 
separate from the text or part of it. In most applications the actual text will come from 
some external source such as a database. In practise there are two main scenarios:
>Text contents from external source, formatting options in the program: An external 
source delivers small text fragments which are assembled within the program, and 
combined with formatting options (in the function call) at runtime.
>Text contents and formatting options from external source: Large amounts of text 
including formatting options come from an external source. The formatting is pro-
vided by inline options in the text, represented as simple options or macros. When it 
comes to macros a distinction must be made between macro definition and macro 
call. This allows an interesting intermediate form: the text content comes from an 
external source and contains macro calls for formatting. However, the macro defini-
tions are only blended in at runtime. This has the advantage that the formatting can 
easily be changed without having to modify the external text. For example, when 
generating greeting cards one could define different styles via macros to give the 
card a romantic, technical, or other touch.
7.2.4 Tab Stops
In the next example we will place a simple table with left- and right-aligned columns 
using tab characters. The table contains the following lines of text, where individual en-
tries are separated from each other with a tab character (indicated by arrows):
ITEM 
DESCRIPTION 
QUANTITY 
PRICE 
AMOUNT 
Super Kite 
20.00 
40.00 
Turbo Flyer 
40.00 
200.00 
Giga Trash 
180.00 
180.00 
TOTAL 420.00
To place that simple table use the following option list in PDF_add/create_textflow( ). The 
ruler option defines the tab positions, tabalignment specifies the alignment of tab stops, 
and hortabmethod specifies the method used to process tab stops (the result can be seen 
in Figure 7.15):
String optlist =
"ruler 
={30
150  250  350} " +
"tabalignment={left right right right} " +
"hortabmethod=ruler leading=120% fontname=Helvetica fontsize=9 encoding=winansi";
hortabmethod ruler
tabalignment left
right
right
right
ruler 30
350
250
150
ITEM
DESCRIPTION
QUANTITY
PRICE
AMOUNT
1
Super Kite
2
20.00
40.00
2
Turbo Flyer
5
40.00
200.00
3
GigaTrash
1
180.00
180.00
TOTAL 420.00
Fig. 7.15
Placing text
as a table
Data Matrix Web Server Control for ASP.NET
Server Control in IIS (without using Visual Studio Port/datamatrix/datamatrix.aspx? DATA=YourDatainDataMatrix NET Document Imaging SDK and Java Document Imaging
how to save editable pdf form in reader; extract data from pdf using java
.NET JBIG 2 SDK | Encode & Decode JBIG 2 Images
Highly-efficient data/image compression, 2-5 times than CCITT G3, CCITT G4; Simple to reduce PDF file size using JBIG2 compression within PDF;
pdf form data extraction; extract data from pdf c#
7.2  Multi-Line Textflows 147
Cookbook A full code sample can be found in the Cookbook topic text_output/tabstops_in_textflow.
Note PDFlib’s table feature is recommended for creating complex tables (see Section 7.4, »Table For-
matting«, page 164).
7.2.5 Numbered Lists and Paragraph Spacing
The following example demonstrates how to format a numbered list using the inline 
option leftindent (see Figure 7.16):
1.<leftindent 10>Long Distance Glider: With this paper rocket you can send all
your messages even when sitting in a hall or in the cinema pretty near the back. 
<leftindent 0>2.<leftindent 10>Giant Wing: An unbelievable sailplane! It is amazingly
robust and can even do aerobatics. But it is best suited to gliding. 
<leftindent 0>3.<leftindent 10>Cone Head Rocket: This paper arrow can be thrown with big
swing. We launched it from the roof of a hotel. It stayed in the air a long time and
covered a considerable distance.
Cookbook Full code samples for bulleted and numbered lists can be found in the Cookbook topics
text_output/bulleted_list and text_output/numbered_list.
Setting and resetting the indentation value is cumbersome, especially since it is re-
quired for each paragraph. A more elegant solution defines a macro called list. For con-
venience it defines a macro indent which is used as a constant. The macro definitions are 
as follows:
<macro {
indent {25}
list {parindent=-&indent leftindent=&indent hortabsize=&indent 
hortabmethod=ruler ruler={&indent}}
}>
<&list>1. 
Long Distance Glider: With this paper rocket you can send all your messages 
even when sitting in a hall or in the cinema pretty near the back. 
2. 
Giant Wing: An unbelievable sailplane! It is amazingly robust and can even do 
aerobatics. But it is best suited to gliding. 
3. 
Cone Head Rocket: This paper arrow can be thrown with big swing. We launched 
it from the roof of a hotel. It stayed in the air a long time and covered a 
considerable distance.
The leftindent option specifies the distance from the left margin. The parindent option, 
which is set to the negative of leftindent, cancels the indentation for the first line of each 
paragraph. The options hortabsize, hortabmethod, and ruler specify a tab stop which cor-
responds to leftindent. It makes the text after the number to be indented with the 
amount specified in leftindent. Figure 7.17 shows the parindent and leftindent options at 
work.
1. Long Distance Glider: With this paper rocket you can send all your
messages even when sitting in a hall or in the cinema pretty near the
back.
2. Giant Wing: An unbelievable sailplane! It is amazingly robust and can
even do aerobatics. But it is best suited to gliding.
3. Cone Head Rocket: This paper arrow can be thrown with big swing. We
launched it from the roof of a hotel. It stayed in the air a long time and
covered a considerable distance.
Fig. 7.16
Numbered list
148
Chapter 7:  Formatting Features
Setting the distance between two paragraphs. In many cases more distance between 
adjacent paragraphs is desired than between the lines within a paragraph. This can be 
achieved by inserting an extra empty line (which can be created with the nextline op-
tion), and specifying a suitable leading value for this empty line. This value is the dis-
tance between the baseline of the last line of the previous paragraph and the baseline of 
the empty line. The following example will create 80% additional space between the 
two paragraphs (where 100% equals the most recently set value of the font size):
1. 
Long Distance Glider: With this paper rocket you can send all your messages 
even when sitting in a hall or in the cinema pretty near the back.
<nextline leading=80%><nextparagraph leading=100%>2. 
Giant Wing: An unbelievable 
sailplane! It is amazingly robust and can even do aerobatics. But it is best suited to 
gliding.
7.2.6 Control Characters, Character Mapping, and Symbol Fonts
Control characters in Textflows. Various characters are given special treatment in 
Textflows. PDFlib supports symbolic character names which can be used instead of the 
corresponding character codes in the charmapping option (which replaces characters in 
the text before processing it, see below). Table 4.8 lists all control characters which are 
evaluated by the Textflow functions along with their symbolic names, and explains 
their meaning. An option must only be used once per option list, but multiple option 
lists can be provided one after the other. For example, the following sequence will cre-
ate an empty line:
<nextline><nextline>
Replacing characters or sequences of characters. The charmapping option can be used 
to replace some characters in the text with others. Let’s start with an easy case where we 
will replace all tabs in the text with space characters. The charmapping option to achieve 
this looks as follows:
charmapping={hortab space}
This command uses the symbolic character names hortab and space. You can find a list 
of all known character names in the PDFlib Reference. To achieve multiple mappings at 
once you can use the following command which will replace all tabs and line break com-
binations with space characters:
charmapping={hortab space
CRLF space
LF space
CR space}
leftindent = &indent
parindent = – &indent
1.
Long Distance Glider: With this paper rocket you can send all your
messages even when sitting in a hall or in the cinema pretty near
the back.
2.
Giant Wing: An unbelievable sailplane! It is amazingly robust and
can even do aerobatics. But it is best suited to gliding.
3.
Cone Head Rocket: This paper arrow can be thrown with big swing.
We launched it from the roof of a hotel. It stayed in the air a long
time and covered a considerable distance.
Fig. 7.17
Numbered list
with macros
7.2  Multi-Line Textflows 149
The following command removes all soft hyphens:
charmapping={shy {shy 0}}
Each tab character will be replaced with four space characters:
charmapping={hortab {space 4}}
Each arbitrary long sequence of linefeed characters will be reduced to a single linefeed 
character:
charmapping={linefeed {linefeed -1}}
Each sequence of CRLF combinations will be replaced with a single space:
charmapping={CRLF {space -1}}
We will take a closer look at the last example. Let’s assume you receive text where the 
lines have been separated with fixed line breaks by some other software, and therefore 
cannot be properly formatted. You want to replace the linebreaks with space characters 
in order to achieve proper formatting within the fitbox. To achieve this we replace arbi-
trarily long sequences of linebreaks with a single space character. The initial text looks 
as follows:
To fold the famous rocket looper proceed as follows: 
Take a sheet of paper. Fold it 
lengthwise in the middle. 
Then, fold down the upper corners. Fold the 
long sides inwards 
that the points A and B meet on the central fold.
The following code fragment demonstrates how to replace the redundant linebreak 
characters and format the resulting text:
/* assemble option list */
String optlist = 
"fontname=Helvetica fontsize=9 encoding=winansi alignment=justify " +
"charmapping {CRLF {space -1}}"
/* place textflow in fitbox */
textflow = p.add_textflow(-1, text, optlist);
if (textflow == -1)
throw new Exception("Error: " + p.get_errmsg());
result = p.fit_textflow(textflow, left_x, left_y, right_x, right_y, "");
if (!result.equals("_stop"))
{ /* ... */ }
p.delete_textflow(textflow);
Figure 7.18 shows Textflow output with the unmodified text and the improved version 
with the charmapping option.
Symbol fonts in Textflows and the textlen option. Symbol fonts, more precisely: text 
in a font which is not Unicode-compatible according to Section 5.4.4, »Unicode-compat-
ible Fonts«, page 111, deserves some special attention when used within Textflows:
150
Chapter 7:  Formatting Features
>The control characters will not be treated specially, i.e. they have no special meaning.
>Some Textflow options will be ignored since they do not make sense for symbol 
fonts, e.g. tabalignchar.
>Since inline option lists cannot be used in text portions with symbol fonts (since the 
symbols don’t have any intrinsic meaning it would be impossible to locate and inter-
pret option lists), the length of text fragments consisting of symbol characters must 
explicitly be specified using the textlen option.
>After textlen characters a new inline option list must be placed in the text. Usually 
the next option list will switch to another font/encoding combination, but this is not 
required.
Omitting the textlen option for Symbol fragments, or failing to supply another inline 
option list immediately after the Symbol fragment will result in an exception.
The following fragment contains a Greek character from the Symbol font inserted 
between Latin characters:
<fontname=Helvetica fontsize=12 encoding=winansi>The Greek letter <fontname=Symbol 
encoding=builtin textlen=1>A<fontname=Helvetica encoding=winansi> symbolizes beginning.
Using characters with codes greater than 127 (0x7F) can get a bit tricky subject to the 
syntax requirements of the programming language in use. The following examples cre-
ate a right arrow from the ZapfDingbats font. This character has glyph name a161 and 
code 0xD5 which corresponds to the character Õ in winansi
.
The following example uses PDFlib’s escape sequence syntax \xD5. If used directly in 
a C language program, the backslash must be preceded by another backslash. Processing 
escape sequences must be enabled with the escapesequence option. The length of the 
fragment (after \\ processing) is 4 bytes:
<escapesequence fontname=ZapfDingbats encoding=builtin textlen=4>\\xD5<fontname=Helvetica 
encoding=winansi>
The following example uses the \u syntax of Java and other languages. The length of the 
text fragment (after \u expansion) is 1 Unicode character:
<fontname=ZapfDingbats encoding=builtin textlen=1>\u00D5<fontname=Helvetica 
encoding=winansi>
The following example uses a literal character, assuming the source code is compiled in 
the winansi/cp1252 codepage (e.g. javac -encoding 1252). Again, the length of the text frag-
ment is 1:
To fold the famous rocket looper proceed as follows:
Take a sheet of paper. Fold it
lengthwise in the middle.
Then, fold down the upper corners. Fold the
long sides inwards
that the points A and B meet on the central fold.
To fold the famous rocket looper proceed as follows: Take a sheet of
paper. Fold it lengthwise in the middle. Then, fold down the upper
corners. Fold the long sides inwards that the points A and B meet on
the central fold.
Fig. 7.18
Top: text with redundant line 
breaks
Bottom: replacing the linebreaks 
with the charmapping option
Documents you may be interested
Documents you may be interested