asp.net pdf viewer control c# : Generate pdf thumbnail c# SDK software service wpf windows web page dnn ibex2-part1659

IbexPDFCreator
DevelopersGuide
IntroductiontoXSL-FO
15
Even without any content the footer region is still rendered on the page. Our page now
looks like the onein Figure 4-10.
Figure4-10:
Abasicpage witha
footerregion
In its current position on the page the footer region will not print on most printers
because they do not print right to the edge of the paper. We can define a margin around
the whole page by setting the margin attribute on thesimple-page-master element of
thepage-sequence as shown in Figure4-11.
Figure 4-11:
Simple page master
withmarginadded
<layout-master-set>
<simple-page-master master-name="simple"
margin="2.5cm">
<region-body margin="2.5cm" region-name="body"
background-color="#eeeeee"/>
<region-after extent="1cm" region-name="footer"
background-color="#dddddd"/>
</simple-page-master>
</layout-master-set>
The area inside the margins of thesimple-page-master is called the "content area". The
area covered by the regions (defined by theregion-body andregion-end ) is measured
from the inside of the page's content area, so when we add margins to the
simple-page-masterwereducethesizeoftheregionscorrespondingly.
Generate pdf thumbnail c# - Library control component:C# PDF Thumbnail Create SDK: Draw thumbnail images for PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
www.rasteredge.com
Generate pdf thumbnail c# - Library control component:VB.NET PDF Thumbnail Create SDK: Draw thumbnail images for PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
www.rasteredge.com
Ibex PDF Creator
Developers Guide
16
Introduction to XSL-FO
Our pagenow appears as shown in Figure 4-12.
Figure 4-12:
Afteraddingmargins
tothe
simple-page-master
Now that we have some space on the sides of the body region we can remove the side
margins from the body by changing the definition from that shown in Figure 4-13 to the
one shown in Figure 4-14, resulting in the page layout shown in Figure 4-15.
Figure 4-13:
Bodywithside
margins
<region-body margin="2.5cm" region-name="body"
background-color="#eeeeee"/>
Figure4-14:
Bodywithoutside
margins
<region-body margin-top="2.5cm" margin-bottom="2.5cm"
region-name="body"
background-color="#eeeeee"/>
Library control component:How to C#: Generate Thumbnail for Word
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel, VB.NET PowerPoint, VB.NET Tiff, VB.NET Imaging, VB.NET OCR, VB.NET How to C#: Generate Thumbnail for Word.
www.rasteredge.com
Library control component:How to C#: Generate Thumbnail for PowerPoint
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel, VB.NET PowerPoint, VB.NET Tiff, VB.NET Imaging, VB.NET OCR, VB How to C#: Generate Thumbnail for PowerPoint
www.rasteredge.com
Ibex PDF Creator
Developers Guide
Introduction to XSL-FO
17
Figure 4-15:
Afterremovingthe
leftandrightmargins
from the region-body
The last thing we need to do to get a working page layout is to make the footer region
narrower by adding side regions. The left side region is created with a region-start
element and the right side with aregion-end element as in Figure 4-16. We can also
specify thebottom-margin attribute of the body region so that it ends just where the
footer starts, by setting margin-bottom= "1cm" on theregion-body element.
Figure 4-16:
side regions
<layout-master-set>
<simple-page-master master-name="simple"
margin='2.5cm'>
<region-body margin="2.5cm" margin-bottom='1cm'
region-name="body"
background-color='#eeeeee'/>
<region-after extent='1cm' region-name="footer"
background-color='#dddddd'/>
<region-start extent='2.5cm'/>
<region-end extent='2.5cm'/>
</simple-page-master>
</layout-master-set>
By default the side regions take precedence over the top and bottom regions so the top
and bottom regions become narrower. This gives us the page layout shown in
Figure 4-17, to which wecan startadding some content.
Library control component:How to C#: Generate Thumbnail for Raster
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel, VB.NET PowerPoint, VB.NET Tiff, VB.NET Imaging, VB.NET OCR, VB How to C#: Generate Thumbnail for Raster.
www.rasteredge.com
Library control component:How to C#: Overview of Using XImage.Raster
See this C# guide to learn how to use RasterEdge XImage SDK for .NET to perform quick file navigation. You may easily generate thumbnail image from image file.
www.rasteredge.com
Ibex PDF Creator
Developers Guide
18
Introduction to XSL-FO
Figure4-17:
Withside regionsto
reduce the width of
the footer
4.3 Attribute processing
TheFO above also illustrates one of the ways in which XSL-FO handles attributes. We can
specify a shorthand attribute such as "margin", which has the effect of setting the
specific values margin-left, margin-right, margin-top and margin-bottom, and then
override just the specific value we want(by setting margin-bottom="1cm"). The order in
which the attributes are specified has no effect. A more specific setting will always
overridea more general one. So the two examples in Figure 4-18 and Figure 4-19 produce
the same result.
Figure4-18:
Shorthandand
specificattributes
<layout-master-set>
<simple-page-master master-name="simple">
<region-body margin="2.5cm" margin-bottom="1cm">
</simple-page-master>
</layout-master-set>
Figure 4-19:
Shorthandand
specificattributes
<layout-master-set>
<simple-page-master master-name="simple">
<region-body margin-bottom="1cm" margin="2.5cm">
</simple-page-master>
</layout-master-set>
4.4 Adding content to the footer
Whilecontentis added to the body of the page using theflow element, content is added
to other regions using thestatic-content element. The "static" part of thestatic-content
name refers to the fact that the content defined in this element stays within the region
specified on this page. It does not flow from one page to the next. If the content
exceeds the size of the region it will notflow to the nextpage.
Library control component:How to C#: Generate Thumbnail for Excel
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel, VB.NET PowerPoint, VB.NET Tiff, VB.NET Imaging, VB.NET OCR, VB.NET How to C#: Generate Thumbnail for Excel.
www.rasteredge.com
Library control component:VB.NET Image: How to Process & Edit Image Using VB.NET Image
Visual C#. VB.NET. RasterEdge provides this VB.NET image processor control SDK which owns the APIs for developers to create image thumbnail, resize, crop, scale
www.rasteredge.com
Ibex PDF Creator
Developers Guide
Introduction to XSL-FO
19
The content of thestatic-content is repeated on every page which has a region with a
matching flow-name (such as "footer"), and is typically different on every page as the
page number changes.
To insert a simple footer with the words "XSL-FO Example" we add a static-content
elementas shown in Figure 4-20.
Figure 4-20:
Addinga
static-content
element
<?xml version='1.0' encoding='UTF-8'?>
<root xmlns="http://www.w3.org/1999/XSL/Format">
<layout-master-set>
<simple-page-master master-name="simple"
margin='2.5cm'>
<region-body margin="2.5cm" margin-bottom='1cm'
region-name="body"
background-color='#eeeeee'/>
<region-after extent='1cm' region-name="footer"
background-color='#dddddd'/>
<region-start extent='2.5cm'/>
<region-end extent='2.5cm'/>
</simple-page-master>
</layout-master-set>
<page-sequence master-reference="simple">
<static-content flow-name="footer">
<block text-align='center'>
XSL-FO Example</block>
</static-content>
<flow flow-name="body">
<block>Hello World</block>
</flow>
</page-sequence>
</root>
Note that the order of the static-content and flow elements is important. All
static-contentelements mustcome beforeany flow elements.
This FO produces thepageshown in Figure 4-21.
Figure 4-21:
FOwithstatic-content
Note that the flow-name of the static-content element and the region-name of the
region-after element must t match h for the content to o appear. This feature makes s it
Library control component:How to C#: Overview of Using XDoc.PowerPoint
See this C# guide to learn how to use RasterEdge PowerPoint SDK for .NET to perform quick file navigation. You may easily generate thumbnail image from
www.rasteredge.com
Library control component:How to C#: Overview of Using XDoc.Word
Tell C# users how to: create a new Word file and load Word from pdf; merge, append, and split Create Thumbnail. You may easily generate thumbnail image from Word
www.rasteredge.com
Ibex PDF Creator
Developers Guide
20
Introduction to XSL-FO
possible to have manystatic-content elements within the samepage-sequence, and only
thosewhich match regions in the currentsimple-page-masterwillberendered.
The Ibex manual has three different page layouts defined with three different
simple-page-master elements. Each simple-page-master has a footer region with a
different region-name. The main flow element contains three different static-content
elements all containing footers. Only the footer whose flow-name matches the
region-name for the currently active simple-page-master willbe rendered.
4.5 Adding the page number to the footer
To insert the current page number into the document use thepage-number element
insidethestatic-content element as shown in Figure4-22.
Figure4-22:
Addingapage
number
<?xml version='1.0' encoding='UTF-8'?>
<root xmlns="http://www.w3.org/1999/XSL/Format">
<layout-master-set>
<simple-page-master master-name="simple"
margin='2.5cm'>
<region-body margin="2.5cm" margin-bottom='1cm'
region-name="body"
background-color='#eeeeee'/>
<region-after extent='1cm' region-name="footer"
background-color='#dddddd'/>
<region-start extent='2.5cm'/>
<region-end extent='2.5cm'/>
</simple-page-master>
</layout-master-set>
<page-sequence master-reference="simple">
<static-content flow-name="footer">
<block text-align='center'>
XSL-FO Example, page <page-number/>
</block>
</static-content>
<flow flow-name="body">
<block>Hello World</block>
</flow>
</page-sequence>
</root>
This FO produces thepageshown in Figure 4-23.
Ibex PDF Creator
Developers Guide
Introduction to XSL-FO
21
Figure4-23:
Page withpage
number
4.6 Adding the total page count to the footer
Adding the total page count (so we can have "page 3 of 5") is a two step process, based
on the use of the "id" attribute which uniquely identifies an FO element. We place a
block on the last page with the id of "last-page", and then we use the
page-number-citationelementtogetthenumberofthepageonwhichthatblockappears
as our totalnumber of pages.
Typically the block with theid of "last-page" is empty so a new page is notcreated at the
end of the document.
The FO for the last block in the document is shown in Figure 4-24, and the FO to retrieve
the lastpage number and put itin thefooter is shown in Figure4-25.
Figure 4-24:
Block withidforlast
page
<block id="last-page"/>
Figure4-25:
FOtoretrievethe
page numberofthe
identifiedblock
<page-number-citation ref-id="last-page"/>
You can see how the id and ref-id values match. This is how Ibex associates the two
elements and knows from which block to retrievethe page number.
Ibex PDF Creator
Developers Guide
22
Introduction to XSL-FO
So bringing all theseelements together we havetheFO shown in Figure 4-26.
Figure 4-26:
Complete FOto
display totalpage
count
<?xml version='1.0' encoding='UTF-8'?>
<root xmlns="http://www.w3.org/1999/XSL/Format">
<layout-master-set>
<simple-page-master master-name="simple"
margin='2.5cm'>
<region-body margin="2.5cm" margin-bottom='1cm'
region-name="body"
background-color='#eeeeee'/>
<region-after extent='1cm' region-name="footer"
background-color='#dddddd'/>
<region-start extent='2.5cm'/>
<region-end extent='2.5cm'/>
</simple-page-master>
</layout-master-set>
<page-sequence master-reference="simple">
<static-content flow-name="footer">
<block text-align='center'>
XSL-FO Example, page <page-number/>
of <page-number-citation ref-id='last-page'/>
</block>
</static-content>
<flow flow-name="body">
<block>Hello World</block>
<block id='last-page'/>
</flow>
</page-sequence>
</root>
This FO produces thepageshown in Figure 4-27.
Figure 4-27:
Page withpage
numberandtotal
page count
4.7 Adding text content
Text is added to the body region of the page by using the block element. A block
element can contain any amount of text and has attributes which define how the text
willappear. Theseattributes are described in more detaillater in themanual.
Ibex PDF Creator
Developers Guide
Introduction to XSL-FO
23
Ablockcan contain textas shown in Figure4-28.
Figure 4-28:
Textina block
<flow flow-name="body">
<block>Hello World</block>
</flow>
Ablock element can also contain otherblock elements which in turn contain text or
more nested elements. Figure 4-29 shows ablock which contains another block with a
differentfont, setusing thefont attribute.
Figure 4-29:
Nestedblocks
<flow flow-name="body">
<block>
Hello World
<block font-size="16pt">
this is a nested block
</block>
</block>
</flow>
There is no limitto thenesting ofblock elements.
4.8 Using borders and padding
Many FO elements can have a border around the area they create on the page. If the
border around an element is the same on all four sides then it can be defined with a
single use of the border attribute. The space between a border and the content of the
block (in this case the text) is controlled using thepadding attribute. Figure 4-30 shows
FO for a block with border and padding.
Figure 4-30:
Block withborderand
padding
<flow flow-name="body">
<block background-color='#eeeeee'>
<block>
Hello World
</block>
<block border='1pt solid d red' padding='3pt'>
Hello World
</block>
</block>
</flow>
This examplehas twoblock elements nested inside an outer element, with a background
color set on the outer element to highlight the area created by the outer block. The
block created from this FO is shown in Figure4-31.
Figure 4-31:
Defaultindentationof
nested blocks
Hello World
Hello World
Ibex positions the content of the block (in this case the text) relative to the edge of the
region. After positioning the content, the padding and borders are positioned relative to
the position of the content. This places the padding and borders outside the content
area of the block. The contents of the block are not indented, rather the padding and
borders extend outside the block. This is thedefault behavior of XSL-FO formatters.
Ibex PDF Creator
Developers Guide
24
Introduction to XSL-FO
If you prefer Cascading Style Sheets (CSS) compatible behavior where adding a border
to a block indents its content, you can specify the left-margin and right-margin attributes
to force this to happen. Even if the left-margin and right-margin values are zero, CSS
type indentation willstill occur. TheXML for this is shown in Figure4-32 and the resulting
output is shown in Figure4-33.
Figure4-32:
Block withmargins
specified
<flow flow-name="body">
<block background-color='#eeeeee'>
<block>
Hello World
</block>
<block border='1pt solid red' padding='3pt' margin-left="0" margin-right="0">
Hello World
</block>
</block>
</flow>
Figure4-33:
Defaultindentationof
nested blocks
Hello World
Hello World
4.9 Creating lists
Alist is content divided into two columns. Each item in the list is in two parts, called the
label and the body respectively. A list is created with thelist-block element. Alist-block
contains one or more list-item elements, each of which contains exactly one
list-item-labelelementandone list-item-bodyelement.
An example of a simple list is shown in Figure4-34.
Figure4-34:
Example of list-block
this is item one
this is item two
Documents you may be interested
Documents you may be interested