pdf library c# free : Extract data from pdf into excel Library software class asp.net winforms web page ajax PDFlib-7-tutorial13-part1844

6.2  Importing PDF Pages with PDI (PDF Import Library) 131
not possible. Instead, all required fonts must be configured in PDFlib. If multiple im-
ported documents contain embedded font data for the same font, PDI will not remove 
any duplicate font data. On the other hand, if fonts are missing from some imported 
PDF, they will also be missing from the generated PDF output file. As an optimization 
you should keep the imported document open as long as possible in order to avoid the 
same fonts to be embedded multiple times in the output document.
PDI does not change the color of imported PDF documents in any way. For example, 
if a PDF contains ICC color profiles these will be retained in the output document.
PDFlib uses the template feature for placing imported PDF pages on the output page. 
Since some third-party PDF software does not correctly support the templates, restric-
tions in certain environments other than Acrobat may apply (see Section 3.2.4, »Tem-
plates«, page 58). 
PDFlib-generated output which contains imported pages from other PDF documents 
can be processed with PDFlib+PDI again. However, due to restrictions in PostScript 
printing the nesting level should not exceed 10.
Code fragments for importing PDF pages. Dealing with pages from existing PDF docu-
ments is possible with a very simple code structure. The following code snippet opens a 
page from an existing document, and copies the page contents to a new page in the out-
put PDF document (which must have been opened before):
int
doc, page, pageno = 1;
String filename = "input.pdf";
if (p.begin_document(outfilename, "") == -1) {...}
...
doc = p.open_pdi_document(infilename, "");
if (doc == -1)
throw new Exception("Error: " + p.get_errmsg());
page = p.open_pdi_page(doc, pageno, "");
if (page == -1)
throw new Exception("Error: " + p.get_errmsg());
/* dummy page size, will be modified by the adjustpage option */
p.begin_page_ext(20, 20, "");
p.fit_pdi_page(page, 0, 0, "adjustpage");
p.close_pdi_page(page);
...add more content to the page using PDFlib functions...
p.end_page_ext("");
p.close_pdi_document(doc);
The last argument to PDF_fit_pdi_page( ) is an option list which supports a variety of op-
tions for positioning, scaling, and rotating the imported page. Details regarding these 
options are discussed in Section 7.3, »Placing Images and Imported PDF Pages«, page 158.
Dimensions of imported PDF pages. Imported PDF pages are regarded similarly to im-
ported raster images, and can be placed on the output page using PDF_fit_pdi_page( ). By 
default, PDI will import the page exactly as it is displayed in Acrobat, in particular:
>cropping will be retained (in technical terms: if a CropBox is present, PDI favors the 
CropBox over the MediaBox; see Section 3.2.2, »Page Size«, page 56);
>rotation which has been applied to the page will be retained.
Extract data from pdf into excel - 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 extract data from pdf file using java; extract data from pdf
Extract data from pdf into excel - 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
how to save a filled out pdf form in reader; pdf form save with reader
132
Chapter 6:  Importing Images and PDF Pages
Alternatively, you can use the pdiusebox option to explicitly instruct PDI to use any of 
the MediaBox, CropBox, BleedBox, TrimBox or ArtBox entries of a page (if present) for 
determining the size of the imported page.
Imported PDF pages with layers. Acrobat 6 (PDF 1.5) introduced the layer functionality 
(technically known as optional content). PDI will ignore any layer information which 
may be present in a file. All layers in the imported page, including invisible layers, will 
be visible in the generated output.
Imported PDF with OPI information. OPI information present in the input PDF will be 
retained in the output unmodified.
Optimization across multiple imported documents. While PDFlib itself creates highly 
optimized PDF output, imported PDF may contain redundant data structures which can 
be optimized. In addition, importing multiple PDFs may bloat the output file size when 
multiple files contain identical resources, e.g. fonts. In this situation you can use the 
optimize option of PDF_begin_document( ). It will detect redundant objects in imported 
files, and remove them without affecting the visual appearance or quality of the gener-
ated output.
6.2.3 Acceptable PDF Documents
Generally, PDI will happily process all kinds of PDF documents which can be opened 
with Acrobat, regardless of PDF version number or features used within the file. In order 
to import pages from encrypted documents (i.e., files with permission settings or pass-
word) the corresponding master password must be supplied.
PDI implements a repair mode for damaged PDFs so that even certain kinds of dam-
aged documents can be opened. However, in rare cases a PDF document or a particular 
page of a document may be rejected by PDI.
If a PDF document or page can’t be imported successfully PDF_open_pdi_document( ) 
and PDF_open_pdi_page( ) will return an error code. If you need to know more details 
about the failure you can query the reason with PDF_get_errmsg( ). Alternatively, you 
can set the errorpolicy option or parameter to true, which will result in an exception if 
the document cannot be opened.
The following kinds of PDF documents will be rejected by default; however, they can 
be opened for querying information with pCOS (as opposed to importing pages) by set-
ting the infomode option to true:
>PDF documents which use a higher PDF version number than the PDF output docu-
ment that is currently being generated can not be imported with PDI. The reason is 
that PDFlib can no longer make sure that the output will actually conform to the re-
quested PDF version after a PDF with a higher version number has been imported. 
Solution: set the version of the output PDF to the required level using the compatibi-
lity option in PDF_begin_document( ).
>Encrypted PDF documents without the corresponding password (exception: PDF 1.6 
documents created with the Distiller setting »Object Level Compression: Maxi-
mum«; these cannot be opened even in info mode).
>Tagged PDF when the tagged option in PDF_begin_document( ) is true.
>PDF/A or PDF/X documents which don’t conform to the PDF/A or PDF/X level of the 
current output document.
C# Create PDF from Excel Library to convert xlsx, xls to PDF in C#
Turn all Excel spreadsheet into high quality PDF without losing formatting. Evaluation library and components for PDF creation from Excel in C#.NET framework.
extract data from pdf to excel; how to extract data from pdf file using java
C# PDF insert text Library: insert text into PDF content in C#.net
Parameters: Name, Description, Valid Value. value, The char wil be added into PDF page, 0
edit pdf form in reader; cannot save pdf form in reader
7.1  Placing and Fitting Single-Line Text 133
7Formatting Features
7.1 Placing and Fitting Single-Line Text
The function PDF_fit_textline( ) for placing a single line of text on a page offers a wealth 
of formatting options. The most important options will be discussed in this section us-
ing some common application examples. A complete description of these options can 
be found in the PDFlib Reference. Most options for PDF_fit_textline( ) are identical to those 
of PDF_fit_image( ). Therefore we will only use text-related examples here; it is recom-
mended to take a look at the examples in Section 7.3, »Placing Images and Imported PDF 
Pages«, page 158, for an introduction to image formatting.
The examples below demonstrate only the relevant call of PDF_fit_textline( ), assum-
ing that the required font has already been loaded and set in the desired font size.
PDF_fit_textline( ) uses a hypothetical text box to determine the positioning of the 
text: the width of the text box is identical to the width of the text, and the box height is 
identical to the height of capital letters in the font. The text box can be extended to the 
left and right or top and bottom using the margin option. The margin will be scaled 
along with the text line.
In the examples below, the coordinates of the reference point are supplied as x, y pa-
rameters of PDF_fit_textline( ). The fitbox for text lines is the area where text will be 
placed. It is defined as the rectangular area specified with the x, y parameters of PDF_fit_
textline( ) and appropriate options (boxsize, position, rotate).
Cookbook Code samples regarding text output issues can be found in the text_output category of the 
PDFlib Cookbook.
7.1.1 Simple Text Placement
Positioning text at the reference point. By default, the text will be placed with the low-
er left corner at the reference point. However, in this example we want to place the text 
with the bottom centered at the reference point. The following code fragment places 
the text box with the bottom centered at the reference point (30, 20).
p.fit_textline(text, 30, 20, "position={center bottom}");
Figure 7.1 illustrates centered text placement. Similarly, you can use the position option 
with another combination of the keywords left, right, center, top, and bottom to place 
text at the reference point. 
x
Kraxi
y
Kraxi
x
y
Fig. 7.2
Simple text with
orientation west
Fig. 7.1
Centered text
VB.NET Create PDF from Excel Library to convert xlsx, xls to PDF
Data. Data: Auto Fill-in Field Data. Field: Insert & pages edit, C#.NET PDF pages extract, copy, paste all Excel spreadsheet into high quality PDF without losing
exporting pdf form to excel; fill in pdf form reader
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
pdf"; doc.Save(outputFilePath); C#.NET Sample Code: Extract PDF Pages and Save into a New PDF File in C#.NET. You can easily get
how to save a filled out pdf form in reader; extract pdf form data to xml
134
Chapter 7:  Formatting Features
Placing text with orientation. Our next goal is to rotate text while placing its lower 
left corner (after the rotation) at the reference point. The following code fragment ori-
entates the text to the west (90˚ counterclockwise) and then translates the lower left 
corner of the rotated text to the reference point (0, 0).
p.fit_textline(text, 0, 0, "orientate=west");
Figure 7.2 illustrates simple text placement with orientation.
7.1.2 Positioning Text in a Box
In order to position the text, an additional box with predefined width and height can be 
used, and the text can be positioned relative to this box. Figure 7.3 illustrates the general 
behaviour.
Positioning text in the box. We define a rectangular box and place the text within this 
box on the top right. The following code fragment defines a box with a width of 50 units 
and a height of 22 units at reference point (30, 20). In Figure 7.4a, the text is placed on the 
top right of the box.
Similarly, we can place the text at the center of the bottom. This case is illustrated in 
Figure 7.4b.
To achieve some distance between the text and the box we can add the margin option 
(see Figure 7.4c).
Note that the blue box or line depicted for visualizing the box size in the figures is 
not part of the actual output.
Fig. 7.4 Placing text in a box subject to various positioning options
Generated output
Option list for PDF_fit_textline( )
a)
boxsize={50 22} position={right top}
b)
boxsize={50 22} position={center bottom}
c)
boxsize={50 22} position={center bottom} margin={0 3}
d)
boxsize={50 0} position={center bottom}
20
20
Kraxi
box 50 wide, 0 high
text at bottom center of the box 
30
20
Kraxi
box 50 wide, 22 high
text on top right of the box
Fig. 7.3 Positioning text in a box
Kraxi
Kraxi
Kraxi
Kraxi
C# PDF insert image Library: insert images into PDF in C#.net, ASP
Import graphic picture, digital photo, signature and logo into PDF document. Merge several images into PDF. Insert images into PDF form field.
extract data from pdf file; how to save filled out pdf form in reader
C# PDF File Split Library: Split, seperate PDF into multiple files
Divide PDF File into Two Using C#. This is an C# example of splitting a PDF to two new PDF files. Split PDF Document into Multiple PDF Files in C#.
extract data from pdf form to excel; how to save a pdf form in reader
7.1  Placing and Fitting Single-Line Text 135
Aligning text at a horizontal or vertical line. Positioning text along a horizontal or 
vertical line (i.e. a box with zero height or width) is a somewhat extreme case which may 
be useful nevertheless. In Figure 7.4d the text is placed with the bottom centered at the 
box. With a width of 50 and a height of 0, the box resembles to a horizontal line. 
To align the text centered along a vertical line we will orientate it to the west and po-
sition it at the left center of the box. This case is shown in Figure 7.4e.
7.1.3 Fitting Text into a Box
In this section we use various fit methods to fit the text into the box. The current font 
and font size are assumed to be the same in all examples so that we can see how the font 
size and other properties will implicitly be changed by the different fit methods. 
Let’s start with the default case: no fit method will be used so that no clipping or scal-
ing occurs. The text will be placed in the center of the box which is 100 units wide and 35 
units high (see Figure 7.5a).
Decreasing the box width from 100 to 50 units doesn’t have any effect on the output. 
The text will remain in its original font size and will exceed beyond the box (see Figure 
7.5b).
Proportionally fitting text into a small box. Now we will completely fit the text into 
the box while maintaining its proportions. This can be achieved with the 
fitmethod=auto option. In Figure 7.5c the box is wide enough to keep the text in its origi-
nal size completely so that the text will be fit into the box unchanged. 
When scaling down the width of the box from 100 to 58, the text is too long to fit 
completely. The auto fit method will try to condense the text horizontally, subject to the 
shrinklimit option (default: 0.75). Figure 7.5d shows the text being shrunk down to 75 per-
cent of its original length.
When decreasing the box width further down to 30 units the text will not fit even if 
shrinking is applied. Then the meet method will be applied. The meet method will de-
crease the font size until the text fits completely into the box. This case is shown in Fig-
ure 7.5e.
Fitting the text into the box with increased font size. You might want to fit the text so 
that it covers the whole width (or height) of the box but maintains its proportions. Us-
ing fitmethod=meet with a box larger than the text, the text will be increased until its 
width matches the box width. This case is illustrated in Figure 7.5f.
Completely fitting text into a box. We can further fit the text so that it completely fills 
the box. In this case, fitmethod=entire is used. However, this combination will rarely be 
used since the text will most probably be distorted (see Figure 7.5g).
Fitting text into a box with clipping. In another rare case you might want to fit the 
text in its original size and clip the text if it exceeds the box. In this case, fitmethod=clip 
e)
boxsize={0 35} position={left center} orientate=west
Generated output
Option list for PDF_fit_textline( )
Kraxi
C# PDF Page Insert Library: insert pages into PDF file in C#.net
from the ability to inserting a new PDF page into existing PDF PDF page or pages from various file formats, such as PDF, Tiff, Word, Excel, PowerPoint, Bmp
extract pdf form data to excel; online form pdf output
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
Help to extract single or multiple pages from adobe PDF file and save into a new PDF file. VB.NET: Extract PDF Pages and Save into a New PDF File.
exporting data from pdf to excel; pdf data extraction tool
136
Chapter 7:  Formatting Features
can be used. In Figure 7.5h the text is placed at the bottom left of a box which is not 
broad enough. The text will be clipped on the right.
Fig. 7.5 Fitting text into a box on the page subject to various options
Vertically centering text. The text height in PDF_fit_textline( ) is the capheight, i.e. the 
height of the capital letter H, by default. If the text is positioned in the center of a box it 
will be vertically centered according to its capheight (see Figure 7.6a).
To specify another height for the text line we can use the Matchbox feature (see also 
Section 7.5, »Matchboxes«, page 177). The matchbox option of PDF_fit_textline( ) define 
the height of a textline which is the capheight of the given font size, by default. The 
height of the matchbox is calculated according to its boxheight suboption. The boxheight 
suboption determines the extent of the text above and below the baseline. 
matchbox={boxheight={capheight none}} is the default setting, i.e. the top border of the 
matchbox will touch the capheight above the baseline, and the bottom border of the 
matchbox will not extend below the baseline.
Generated output
Option list for PDF_fit_textline( )
a)
boxsize={100 35} position=center fontsize=12
b)
boxsize={50 35} position=center fontsize=12
c)
boxsize={100 35} position=center fontsize=12 
fitmethod=auto
d)
boxsize={58 35} position=center fontsize=12 
fitmethod=auto
e)
boxsize={30 35} position=center fontsize=12 
fitmethod=auto
f)
boxsize={100 35} position=center fontsize=12 
fitmethod=meet
g)
boxsize={100 35} position=center fontsize=12 
fitmethod=entire
h)
boxsize={50 35} position={left center}
fontsize=12 fitmethod=clip
Kraxi Systems
Kraxi Systems
Kraxi Systems
Kraxi Systems
Kraxi Systems
Kraxi Systems
Kraxi Systems
Kraxi Sys
7.1  Placing and Fitting Single-Line Text 137
To illustrate the size of the matchbox we will fill it with red color (see Figure 7.6b). 
Figure 7.6c vertically centers the text according to the xheight by defining a matchbox 
with a corresponding box height.
Figure 7.6d–f shows the matchbox (red) with various useful boxheight settings to de-
termine the height of the text to be centered in the box (blue).
Fig. 7.6 Fitting text proportionally into a box according to different box heights
7.1.4 Aligning Text at a Character
You might want to align text at a certain character, e.g. at the decimal point in a num-
ber. As shown in Figure 7.7a, the text is positioned at the center of the fitbox. Using PDF_
fit_textline( ) with the alignchar=. option the numbers are aligned at the dot character.
You can omit the position option which places the dots in the center of the box. In 
this case, the default position={left bottom} will be used which places the dots at the ref-
erence point (see Figure 7.7b). In general, the alignment character will be placed with the 
lower right corner at the reference point.
Fig. 7.7 Aligning a textline to the dot character
Generated output
Option list for PDF_fit_textline( )
a)
boxsize={80 20} position=center fitmethod=auto
b)
boxsize={80 20} position=center fitmethod=auto 
matchbox={boxheight={capheight none} 
fillcolor={rgb 1 0.8 0.8}}
c)
boxsize={80 20} position=center fitmethod=auto 
matchbox={boxheight={xheight none}
fillcolor={rgb 1 0.8 0.8}}
d)
boxsize={80 20} position=center fitmethod=auto 
matchbox={boxheight={ascender none} 
fillcolor={rgb 1 0.8 0.8}}
e)
boxsize={80 20} position=center fitmethod=auto 
matchbox={boxheight={ascender descender}
fillcolor={rgb 1 0.8 0.8}}
f)
boxsize={80 20} position=center fitmethod=auto 
matchbox={boxheight={fontsize none}
fillcolor={rgb 1 0.8 0.8}}
Generated output
Option list for PDF_fit_textline( )
a)
boxsize={70 8} position={center bottom} alignchar=.
b)
boxsize={70 8} position={left bottom} alignchar=.
Kraxi Systems
Kraxi Systems
Kraxi Systems
Kraxi Systems
Kraxi Systems
Kraxi Systems
127.123
12.01
123.0
4025.20
127.123
12.01
123.0
4025.20
138
Chapter 7:  Formatting Features
7.1.5 Placing a Stamp
Cookbook A full code sample can be found in the Cookbook topic text_output/simple_stamp.
As an alternative to rotated text, the stamp feature offers a convenient method for plac-
ing text diagonally in a box. The stamp function will automatically perform some so-
phisticated calculations to determine a suitable font size and rotation so that the text 
covers the box. To place a diagonal stamp, e.g. in the page background, use PDF_fit_
textline( ) with the stamp option. With stamp=ll2ur the text will be placed from the lower 
left to the upper right corner of the fitbox. However, with stamp=ul2lr the text will be 
placed from the upper left to the lower right corner of the fitbox. As shown in Figure 7.8, 
showborder=true is used to illustrate the fitbox and the bounding box of the stamp.
Fig. 7.8 Fitting a text line like a stamp from the lower left to the upper right
7.1.6 Using Leaders
Leaders can be used to fill the space between the borders of the fitbox and the text. For 
example, dot leaders are often used as a visual aid between the entries in a table of con-
tents and the corresponding page numbers.
Leaders in a table of contents. Using PDF_fit_textline( ) with the leader option and the 
alignment={none right} suboption, leaders are appended to the right of the text line, and 
repeated until the right border of the text box. There will be an equal distance between 
the rightmost leader and the right border, while the distance between the text and the 
leftmost leader may differ (see Figure 7.9a).
Cookbook A full code sample demonstrating the usage of dot leaders in a text line can be found in the 
Cookbook topic text_output/leaders_in_textline.
Cookbook A full code sample demonstrating the usage of dot leaders in a Textflow can be found in the 
Cookbook topic text_output/dot_leaders_with_tabs.
Leaders in a news ticker. In another use case you might want to create a news ticker ef-
fect. In this case we use a plus and a space character »+ « as leaders. The text line is 
placed in the center, and the leaders are printed before and after the text line 
(alignment={left right}). The left and right leaders are aligned to the left and right border, 
and might have a varying distance to the text (see Figure 7.9b).
Generated output
Option list for PDF_fit_textline( )
fontsize=8 boxsize={160 50} stamp=ll2ur showborder=true
Giant Wing
7.1  Placing and Fitting Single-Line Text 139
Fig. 7.9 Fitting a text line using leaders
Generated output
Option list for PDF_fit_textline( )
a)
boxsize={200 10}
leader={alignment={none right}}
b)
boxsize={200 10}
position={center bottom}
leader={alignment={left right}
text={+ }}
Features of Giant Wing ....................................................
Description of Long Distance Glider.................................
Benefits of Cone Head Rocket.........................................
Giant Wing in purple!
+ + + + + + + + + 
+ + + + + + + + + 
Long Distance Glider with sensational range!
+ + 
+ + 
Cone Head Rocket incredibly fast!
+ + + + + 
+ + + + + 
140
Chapter 7:  Formatting Features
7.2 Multi-Line Textflows
In addition to placing single lines of text on the page, PDFlib supports a feature called 
Textflow which can be used to place arbitrarily long text portions. The text may extend 
across any number of lines, columns, or pages, and its appearance can be controlled 
with a variety of options. Character properties such as font, size, and color can be ap-
plied to any part of the text. Textflow properties such as justified or ragged text, para-
graph indentation and tab stops can be specified; line breaking opportunities designat-
ed by soft hyphens in the text will be taken into account. Figure 7.10 and Figure 7.11 
demonstrate how various parts of an invoice can be placed on the page using the Text-
flow feature. We will discuss the options for controlling the output in more detail in the 
following sections.
leading
=140%
parindent
=7%
leftindent
=55
alignment
=left
rightindent
=60
alignment
=justify
minlinecount
=2
17, Aviation Road
Paperfield
Phone7079-4301
Fax 7079-4302
www.kraxi.com
info@kraxi.com
Kraxi Systems, Inc.
Paper Planes
KraxiSystems,Inc. 17,AviationRoad
Paperfield
John Q.Doe
255Customer Lane
SuiteB
12345 User Town
Everland
INVOICE
14.03.2004
ITEM
DESCRIPTION
QUANTITY
PRICE
AMOUNT
1
Super Kite
2
20,00
40,00
2
Turbo Flyer
5
40,00
200,00
3
Giga Trash
1
180,00
180,00
4
Bare Bone Kit
3
50,00
150,00
5
Nitty Gritty
10
20,00
200,00
6
Pretty Dark Flyer
1
75,00
75,00
7
Free Gift
1
0,00
0,00
845,00
Terms of payment: 30 days net. 30 days warranty starting at the day ofsale. This
warranty covers defects in workmanship only.Kraxi Systems, Inc., at its option, repairs or
replaces the product under warranty. This warranty is not transferable.Returns or
exchanges arenot possible for wet products.
Havea look at our newpaper plane models!
Our paper planes arethe idealway of passing the time.We offer revolutionary
new developments of the traditional common paper planes. If your lesson,
conference, or lecture turn out to be deadly boring, you can have a wonderful time
with our planes. All our models arefolded from one paper sheet.
They are exclusively folded without using any adhesive. Several models are
equipped with afolded landinggear enabling asafelandingon theintended location
provided that you have aimed well. Other models areable to fly loops or cover long
distances. Let them start from a vista point in the mountains and see where they
touch the ground.
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.
GiantWing
An unbelievable sailplane! It is amazingly robust and can even do
hortabmethod
ruler
tabalignment
left
right
right
right
right
ruler
30
45
475
375
275
leftindent =75
leftindent = 105
Fig. 7.10
Formatting
Textflows
Documents you may be interested
Documents you may be interested