mvc open pdf file in new window : Convert pdf to text Library SDK class asp.net .net web page ajax msmanual7-part1873

xmlpdfusermanualpage66of101
XMLPDF5.5.7ProgrammersGuide
November2006
22:Merging Data
Any valid XPath test can be used in the xpath attribute, for example to test if the
age attribute is present just use an @ and the attribute name like this:
<if xpath='@age' root='student-itr'>
age is present
</if>
22.3.8 Formatting Merged Values
Thisiscurrently only in .NETversion 4.0.3 and above.
Avalue merged into the PDF file using a <merge> element can be formatted
before insertion into the PDF. This is done using the format and format-type
attributes.
Within XMLPDF formatting is done using the StringBuilder.AppendFormat()
method. The value returned by the XPath expression is converted to the type
specified by the format-type attribute (which defaults to 'string')and then passed
to the AppendFormat method.
The format attribute specifies the formatting of the values returned from the
XPath expression. Thisfollowsthe standard .NET formatting rules.
The valid values of the format-type attribute are: 'string','date','double','integer'.
Note that .NET formatting requires that the format match the type. Specifying a
numeric format like '##.##'with a string type will not automatically convert the
string to a number and so will not work.
Examples:
Date Formatting:
Given a date such as '2003-01-12T14:07:41.277'we can format it as dd/mm/yyyy
like this:
<merge xpath="/coursedata/term-start"
format='{0:dd/mm/yyyy}' format-type='date'/>
Number Formatting:
Given a number such as'100.20'can format it to 5 decimal placeslike this:
<merge xpath="/coursedata/term-start" format='{0:###.####0}'
format-type='double'/>
Hexadecimal Formatting:
Given a number such as'34'can format it ashex like this:
<merge xpath="/coursedata/integer" format='0x{0:x}'
format-type='integer'/>
22.3.9 Merging Image File Names
Thisiscurrently only in .NETversion 4.7 and above.
It is possible to merge image file names from the data XML using a nested
<file-name> element like this:
<document>
<image image-name='im1'>
<file-name>
<merge xpath='data/image/@name'/>
</file-name>
</image>
<show-image image-name='im1'/>
</document>
In this example the image-name attribute of the image element isset to the name
attribute of the image element in the data XML.
www.xmlpdf.com
Convert pdf to text - Library SDK class:C# PDF Convert to Text SDK: Convert PDF to txt files in C#.net, ASP.NET MVC, WinForms, WPF application
C# PDF to Text (TXT) Converting Library to Convert PDF to Text
www.rasteredge.com
Convert pdf to text - Library SDK class:VB.NET PDF Convert to Text SDK: Convert PDF to txt files in vb.net, ASP.NET MVC, WinForms, WPF application
VB.NET Guide and Sample Codes to Convert PDF to Text in .NET Project
www.rasteredge.com
xmlpdf user manual page 67 of 101
XMLPDF5.5.7 ProgrammersGuide
November 2006
22: Merging Data
An example ofdata XMLwhich would work with this template is:
<data>
<image name='clouds.jpg'/>
</data>
22.4
Integration with ADO.NET
This section describes how iterate over a .NET DataTable object to insert values
fromdatabase recordsinto the PDF file.
ADataTable object represents data extracted from a database. The DataTable is
created using a SqlDataAdapter object. XMLPDF is able to iterate over the
DataTable using the <foreach> element and to extract individual fields from the
DataTable using the <merge> merthod.
22.4.1 Creating the DataTable
The following code showsa method which creates and returns a DataTable. The
table returned is the 'sales'table from the 'pubs'database which is part of the
SQL Server default installation.
using System;
using System.Text;
using System.IO;
using System.Diagnostics;
using System.Collections;
// recordset related
using System.Data;
using System.Data.SqlClient;
public DataTable RetrieveRowsWithDataTable() {
string CONNECTIONSTRING
= "server=(local);Integrated Security=SSPI;database=pubs";
SqlConnection conn = null;
try {
conn = new SqlConnection(CONNECTIONSTRING);
SqlCommand cmd = new SqlCommand("select * from sales", conn);
cmd.CommandType = CommandType.Text;
SqlDataAdapter da = new SqlDataAdapter( cmd );
DataTable dt = new DataTable("sales");
da.Fill(dt);
return dt;
}
finally {
if( conn != null ) {
conn.Close();
}
}
}
22.4.2 Creating the PDF File
The following code calls the RetrieveRowsWithDataTable method and creates
the PDF file:
PDFDocument doc = new PDFDocument();
DataTable reader = RetrieveRowsWithDataTable();
doc.addNamedObject( "sales_datatable", reader );
doc.generate( "testrecordset.xml", "testrecordset.pdf" );
The source code for this article is in file testrecordset.cs
. The file is called
testrecordset.cs_,you will need to rename it to testrecord.cs.
The key thing in this code isthe call to doc.addNamedObject(). Thisassociates a
logical name 'sales_datatable'with the recordset.
Within the template XML in file testrecordset.xml
this name is used in the
<foreach>tag to tell XMLPDF which object to iterate over.
The full content of the XML template is:
www.xmlpdf.com
Library SDK class:Online Convert PDF to Text file. Best free online PDF txt
Download Free Trial. Convert a PDF to Text. Easy converting! We try to make it as easy as possible to convert your PDF files to Text.
www.rasteredge.com
Library SDK class:VB.NET PDF Text Extract Library: extract text content from PDF
PDF ›› VB.NET PDF: Extract PDF Text. Advanced Visual Studio .NET PDF text extraction control, built in .NET framework 2.0 and compatible with Windows system.
www.rasteredge.com
xmlpdf user manual page 68 of 101
XMLPDF5.5.7 ProgrammersGuide
November 2006
22: Merging Data
<?xml version="1.0" encoding="utf-8" ?>
<document>
<table space-before='1cm' width='40%'
block-align='center' border-width-all='.1'
widths='20%,30%,*' padding-all='2'>
<header widths='20%,30%,*' padding-all='2'>
<row background-gray="90">
<cell>Store</cell>
<cell align='center'>Date</cell>
<cell align='right'>Quantity</cell>
</row>
</header>
<foreach iterator='itr' list='sales_datatable'>
<row>
<cell><merge method='itr.stor_id'/></cell>
<cell align='center'><merge method='itr.ord_date'
format="dd/mm/yyyy"/></cell>
<cell align='right'><merge method='itr.qty'
format='N'/></cell>
</row>
</foreach>
</table>
</document>
Key thingsto note in the template XML are:
(a) the <foreach> element has a 'list'attribute which has a value equal to the
logical name given to the recordset in the call to doc.addNamedObject()
(b) the <merge> element has a 'method'attribute which has a value which is the
name of the iterator (in thiscase 'itr')followed by a '.'followed by the field name
in the recordset.
(c) the 'format'attribute of the <merge> element is passed to a call to
System.Text.StringBuilder.AppendFormat(), so any value which is a valid format
string for thismethod can be specified.
Thisproduces testrecordset.pdf
showing all the recordsin the database.
www.xmlpdf.com
Library SDK class:C# PDF Text Extract Library: extract text content from PDF file in
Text: Extract Text from PDF. |. Home ›› XDoc.PDF ›› C# PDF: Extract PDF Text. Enable extracting PDF text to another PDF file, TXT and SVG formats.
www.rasteredge.com
Library SDK class:VB.NET PDF Convert to Jpeg SDK: Convert PDF to JPEG images in vb.
Convert PDF to HTML. Convert PDF to SVG. Convert PDF to Text. Convert PDF to JPEG. Convert PDF to Png, Gif, Bitmap Images. File &
www.rasteredge.com
xmlpdf user manual page 69 of 101
XMLPDF5.5.7 ProgrammersGuide
November 2006
23: Links
CHAPTER 23
Links
23.1
Basics
XMLPDF supports URL'sin the PDF document so that when the user clicks on
the link their browser is started and the linked web page is retrieved.
For example click on www.xmlpdf.com
to go to the XMLPDF web site.
Asample document with one link looks like this:
<document>
<style name='link' decoration='underline'/>
<block>
The link is <link url='http://www.sun.com'>
The Sun Site</link>
</block>
</document>
Note the use of the style named 'link'which is automatically applied to all link
elements and makes them underlined. The example creates a link which looks
like this:
The link isThe Sun Site
The attributes ofthe <link> element are:
Attribute
Description
url
Thisindicates which web site or file will be displayed
when the user clicks on the link. Links to web pages
should start with http:// as shown in the example above.
Mailto linksare implemented like this:
<link
url='mailto:test@xmlpdf.com'>test@xmlpdf.com</link
>
url-show-border
Setting url-show-border='true'will draw a box around
the URL, which isuseful for showing where the hit
region is when you are developing the document.
Alink with a border looks like this:
<document>
<style name='link' decoration='underline'/>
<block>
The link is
<link url='http://www.sun.com'
url-show-border='true'>
The Sun Site
</link>
</block>
</document>
to display the link inside a border like this:
The link isThe Sun Site
Alink can also refer to a local file. To do this set the url attribute to the file
name. For instance to link to the local file 'unicode.pdf'you would do this:
<document>
<block>
The link is
<link url='unicode.pdf'>
unicode.pdf
</link>
</block>
</document>
www.xmlpdf.com
Library SDK class:C# PDF Convert to Jpeg SDK: Convert PDF to JPEG images in C#.net
C# PDF - Convert PDF to JPEG in C#.NET. C#.NET PDF to JPEG Converting & Conversion Control. Convert PDF to JPEG Using C#.NET. Add necessary references:
www.rasteredge.com
Library SDK class:VB.NET PDF Convert to HTML SDK: Convert PDF to html files in vb.
Convert PDF to HTML. |. Home ›› XDoc.PDF ›› VB.NET PDF: PDF to HTML. Convert PDF to HTML in VB.NET Demo Code. Add necessary references:
www.rasteredge.com
xmlpdf user manual page 70 of 101
XMLPDF5.5.7 ProgrammersGuide
November 2006
23: Links
23.2
Merging the URL Value
An alternate syntax can be used to provide the value for the url attribute. By
using a separate nested <url> element it becomes possible to merge the value of
the url attribute from the data XML. The <url> element should contain only
characters and which will be treated as if they had been specified for the url
attribute.
<document>
<block>
The link is
<link>
<url><merge root='invoice-itr' xpath='linkTC'/>.</url>
information
</link>
</block>
</document>
This example will create a link with the text 'information'and when clicked will
go to whatever value isreturned fromthe <merge> operation.
www.xmlpdf.com
Library SDK class:C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net
easy for C# developers to convert and transform style that are included in target PDF document file original formatting and interrelation of text and graphical
www.rasteredge.com
Library SDK class:VB.NET PDF Convert to Word SDK: Convert PDF to Word library in vb.
VB.NET PDF - Convert PDF to MS Office Word in VB.NET. VB.NET Tutorial for How to Convert PDF to Word (.docx) Document in VB.NET. Best
www.rasteredge.com
xmlpdf user manual page 71 of 101
XMLPDF5.5.7 ProgrammersGuide
November 2006
24: Positioning Output
CHAPTER 24
Positioning Output
24.1
Absolute Positioning
Any block element, such as a <block>, <table> or <show-image> element can be
positioned at an absolute location on the page using the following attributes:
Attribute
Description
ax
The absolute x location on the page in points of the top
left corner of the block.
ay
The absolute y location on the page in points of the top
left corner of the block.
Using the following XML we can position the image at location 480, 750, where
the units are points (at 72 points per inch) and the bottom left corner of the page
is location (0,0) and the top right is (595,841) so x=480 y=750 isin the top right
quarter of the page.
<show-image image-name='ferret' scale-width='50' ax='480' ay='750'/>
(480,750)
Absolutely positioned elements are outside the normal flow of the document and
so are not paginated. You are responsible for making sure they fit on the page.
24.2
Relative Positioning
Any block element, such as a <block>, <table> or <show-image> element can be
positioned relative to another block element using the following attributes:
Attribute
Description
rx
The relative x location on the page in points of the top
left corner of the block.
ry
The relative y location on the page in points of the top
left corner of the block.
relative-to
The name given to the block which we are relative to
using the relative-name attribute on that otherblock.
For example this block of text has the attribute relative-name='101'. We can
position the image to the left of this block using XML. Setting ry='0'means the
image will be at the same height on the page asthe text, and setting rx='-72'will
positioning the image one inch (72 points)to the left of the text.
The XMLfor positioning the image lookslike this:
<show-image relative-to='101' ry='0' rx='-72'
image-name='ferret' scale-width='50' />
By using relative positioning the image will be located adjacent to the named
block regardlessof where that block appears in the document.
Relatively positioned elements are outside the normal flow of the document and
so are not paginated. You are responsible for making sure they fit on the page.
www.xmlpdf.com
xmlpdf user manual page 72 of 101
XMLPDF5.5.7 ProgrammersGuide
November 2006
25: Creating a Table of Contents
CHAPTER 25
Creating a Table of Contents
25.1
Creating a Table Of Contents
Atable of contents is created using the <toc> element. This element creates a set
of pageswhich contain the table of contents.
Alists of items which will appear in the table of content is created from all the
auto-sequence-get-name elements which have outline="true" specified. So any
item which appears in the bookmarks will also appear in the table of contents.
Internally XMLPDF creates a collection of these items and the table of contents
iscreated by iterating over this collection using a <foreach> element.
For example if we have the following content:
<auto-sequence-inc level="1" name="Introduction"/>
<auto-sequence-get-name level="1" outline="true">
<block>the introduction text</block>
<auto-sequence-inc level="1" name="Advanced"/>
<auto-sequence-get-name level="1" outline="true">
<block>the advanced text</block>
Thiscreates two outline entries and two entriesin the table of contents collection
which is called 'contents'. We can then iterate over this collection to output the
table of contents in the same way we can iterate over any other collection of
objects. Each entry in the collection has the following fields:
number
the number of the outline entry which created thistable of
contents entry, such as1.2
text
the text of the outline entry which created thistable of contents
entry
page
the page number the outline entry which created thistable of
contents entry appears on
contents
the collection of lowerlevel table of contents entries, created
fromoutline entries which are children of the current entry.
www.xmlpdf.com
xmlpdf user manual page 73 of 101
XMLPDF5.5.7 ProgrammersGuide
November 2006
25: Creating a Table of Contents
Given this collection of entries we can use XML like this to iterate over the
collection and create the table of contents:
<toc>
<-- insert some text before the table of contents itself -->
<block indent-left='-2.5cm' font-name="helvetica" font-size="24"
align="center">Contents</block>
<-- create a table -->
<table widths='5%,10%,*' width='85%' block-align='center'>
<-- iterate over the top level elements -->
<foreach list='contents' iterator='itr'>
<-- create a row for each element -->
<row padding-top='12' padding-bottom='6'
destination-page='itr.page'>
<-- a cell for the element number -->
<cell>
<merge method='itr.number'/>
</cell>
<-- a cell for the element text and page number -->
<cell font-size='10' colspan='2'>
<span font-name='helvetica-bold'>
<merge method='itr.text'/></span>
<merge method='itr.page'/>
</cell>
</row>
<-- iterate over the child elements -->
<foreach list='itr.contents' iterator='level2'>
<row destination-page='level2.page' >
<cell/>
<cell>
<merge method='level2.number'/>
</cell>
<cell>
<merge method='level2.text'/>
<merge
method='level2.page'/>
</cell>
</row>
</foreach>
</foreach>
</table>
</toc>
The XML above will create a two-level table of contents. If we wanted another
levelswe could have another nested foreach element contained within the second
foreach loop.
25.2
Table Of Contents Page Layout
The toc element can contain page-header and page-footer elements to define the
page header and footer for the table of content pages. This allows you to have
different headersand footers on the table of contents pages. The table of contents
pages in thismanual have the following elementsto create their page headersand
footers:
www.xmlpdf.com
xmlpdf user manual page 74 of 101
XMLPDF5.5.7 ProgrammersGuide
November 2006
25: Creating a Table of Contents
<toc>
<page-header space-after="1cm" indent-left="-2.75cm"
indent-right="1.5cm">
<row>
<cell align="left" font-name="helvetica" font-size="8"
text-color="blue">
XMLPDF
<info field="version" flags="independent"/>
Programmers Guide
</cell>
<cell align="right" font-name="helvetica" font-size="8"
text-color="blue">
<info field="date" flags="MMMMM yyyy"></info>
</cell>
</row>
</page-header>
<page-footer space-before="0.5cm" indent-left="-2.75cm"
indent-right="1.5cm">
<row>
<cell align="middle" font-name="gara" font-size="10">
<link url="http://www.xmlpdf.com">www.xmlpdf.com</link>
</cell>
</row>
</page-footer>
...
www.xmlpdf.com
xmlpdf user manual page 75 of 101
XMLPDF5.5.7 ProgrammersGuide
November 2006
26: Reference
CHAPTER 26
Reference
26.1
<auto-sequence-get>
Summary of attributes
Attribute
Description
level
The level ofthe hierarchy forwhich to retrieve the
number.
XMLPDF automatically maintains a document outline which is used to number
headingsand subheadings and to generate the outline which Acrobat displayson
the left side of the screen. Use of this feature is optional. Each heading in the
document is created using anauto-sequence-inc element which (a) defines the
heading for a given level in the outline hierarchy and (b) increments the current
heading number for the level specified.
The <auto-sequence-get> element retrieves the current heading number (not
name) for the specified level. Use the auto-sequence-get-name element to
retrieve the heading text for a speficied level.
For example at the start of the document we might call the first chapter
'Introduction'.Because this is a chapter level heading its level attribute will be 1.
Below the Introduction we want a second level header called 'Overview'.This is
done as follows:
...
<auto-sequence-inc level='1' name='Introduction'/>
<auto-sequence-inc level='2' name='Overview/>
...
Thiscreatesa hierarchy like this:
1Introduction
1.1 Overview
Having set the title for the current level of the outline we can retrieve its number
and insert it into the document using the auto-sequence-get element. Specifying
the level attribute on the element determines which heading number is inserted
into document.
For instance the element <auto-sequence-get level='1'/>would insert the string
'1'into the document. If we change the level to '2',as in <auto-sequence-get
level='2'/>we would insert the string '1.1'into the document. The maximum
level is10.
26.2
<auto-sequence-get-name>
Summary of attributes
Attribute
Description
level
The level ofthe hierarchy from which to retrieve the
name.
uid
The unique identifier which can then be used to
generate a cross reference to this heading by using the
Section 26.42, "<xref>"element.
outline
The should be set to 'true'if you want the heading
retrieved to appear in the document outline.
www.xmlpdf.com
Documents you may be interested
Documents you may be interested