IbexPDFCreator
DevelopersGuide
Colors
75
printed page, or even on two different computer screens. CMYK colors are used to
ensure thatcolors arethe same on screen and on the printed page.
PDF files are usually created with single color scheme. You would not usually mix CMYK
and RGB colors in one document. Note that when creating a CMYK PDF file any images
included in the document should bein CMYK format.
ACMYK color is defined using the rgb-icc() function. This takes eight parameters. The
firstthree define the red, green and blue components of a fallback RGB color, the fourth
defines the color profile name, and the last four define the four parts of the CMYK color.
The color profile must have been declared in thedeclarations formatting object using a
color-profileelement.
Figure 13-5 shows an example of the rgb-icc() function.
Figure 13-5:
Thergb-iccfunction
<block color="rgb-icc( 0, 0, 0, cmyk, 0.7,0.3,0.3,0.4 )">
in cmyk .5,.5,.5,0
</block>
In Figure 13-5 the three components of the fallback RGB color are zero. This is normal
because we are creating a CMYK PDF file and will not be using any fallback RGB colors.
The color profile name is "cmyk". Ibex requires that the color profile name be "cmyk"
when creating a CMYK color.
Acomplete document using the CMYK color space is shown in Figure 13-6. This shows
how to use thedeclarationsandcolor-profile elements to define a color profile.
Figure 13-6:
FOfora CMYK PDF
file
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="http://www.w3.org/1999/XSL/Format">
<layout-master-set>
<simple-page-master master-name="page">
<region-body margin="1in"
region-name="body"/>
</simple-page-master>
</layout-master-set>
<declarations>
<color-profile src="src"
color-profile-name="cmyk"/>
</declarations>
<page-sequence master-reference="page">
<flow flow-name="body">
<block color="rgb-icc( 0, 0, 0, cmyk, 0.7,0.3,0.3,0.4 )">
in cmyk .5,.5,.5,0
</block>
</flow>
</page-sequence>
</root>
13.3.4 PDF/X color profiles
Ibex can create PDF files which conform to the PDF/X standard. These files can include
embedded color profiles, used to define a common color scheme across different
devices.
Color profiles are loaded from files on disk and included in the PDF file. Some color
profiles are very large (i.e. >500k) and can result in largePDF files.
Pdf file thumbnail preview - application control utility: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
Pdf file thumbnail preview - application control utility: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
76
Colors
Loading a color profile from a file on disk is an Ibex extension. The name of the color
profile file is specified using the color-profile-file-name attribute of the ibex:pdfx
element, as shown in Figure 13-7 below.
Figure 13-7:
FOforaPDF/X
showingthe loading
ofa colorprofile
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="http://www.w3.org/1999/XSL/Format"
xmlns:ibex="http://www.xmlpdf.com/2003/ibex/Format">
<layout-master-set>
<simple-page-master master-name="page" page-width="20cm">
<region-body region-name="body" margin="3cm" reference-orientation='0'/>
</simple-page-master>
</layout-master-set>
<ibex:pdfx color-profile-file-name="colorprofiles\USWebCoatedSWOP.icc"
output-condition="TR001 SWOP/CGATS"/>
<page-sequence master-reference="page">
<flow flow-name="body">
<block font="10pt arial">
hello world
</block>
</flow>
</page-sequence>
</root>
application control utility:How to C#: Preview Document Content Using XDoc.Word
RasterEdge XDoc.Word provide you with APIs to get a thumbnail bitmap of the first page in the word document file. You can be able to get a preview of this word
www.rasteredge.com
application control utility:How to C#: Preview Document Content Using XDoc.PowerPoint
XDoc.PowerPoint provide you with APIs to get a thumbnail bitmap of the first page in the PowerPoint document file. You can be able to get a preview of this
www.rasteredge.com
Lists
77
Chapter 14
Lists
Lists are created using thelist-block element. Alist-block in XSL-FO is an area of content
divided into two columns.
A simple list-block is shown in Figure 14-1. The list created by this FO is shown in
Figure 14-2.
Figure 14-1:
FOfora list
<list-block provisional-distance-between-starts=".5cm"
provisional-label-separation="0.1cm">
<list-item>
<list-item-label end-indent="label-end()">
<block font='8pt arial'>&#x25CF;</block>
</list-item-label>
<list-item-body start-indent="body-start()">
<block>
item one
</block>
</list-item-body>
</list-item>
<list-item>
<list-item-label end-indent="label-end()">
<block font='8pt arial'>&#x25CF;</block>
</list-item-label>
<list-item-body start-indent="body-start()">
<block>
item two
</block>
</list-item-body>
</list-item>
</list-block>
Figure 14-2:
Alist
item one
item two
Features of lists include:
• thelist-block is a block-levelelement which contains thewhole list.
• the provisional-distance-between-starts attribute on the list-block defines the
distancebetween thestart of the label and the startof thebody.
• the provisional-label-separation attribute on thelist-block defines the size of the gap
between the end of the label and the start of the body. This gap is created by
reducing the size of the label. For example, if provisional-distance-between-starts is
5cm and the provisional-label-separation is 1cm, then the start edges of the label and
body will be 5cm apart, and the label will be 4cm (5cm - 1cm) wide.
application control utility:How to C#: Set Image Thumbnail in C#.NET
PDF to text, C#.NET convert PDF to images, C#.NET PDF file & pages VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel How to C#: Set Image Thumbnail in C#.NET.
www.rasteredge.com
application control utility:How to C#: Preview Document Content Using XDoc.excel
RasterEdge XDoc.Excel provide you with APIs to get a thumbnail bitmap of the first page in the Excel document file. You can be able to get a preview of this
www.rasteredge.com
Ibex PDF Creator
Developers Guide
78
Lists
• each item in the listis contained in alist-item element.
• each list-item must contain both a list-item-label and a list-item-body . The
list-item-labelmustcomefirst.
• thelist-item-label should have the end-indent attribute set to "label-end()". This is a
special function which returns a value derived from provisional-distance-between-
starts and provisional-label-separation.
• thelist-item-body should have the start-indent attribute set to "body-start()". This is a
special function which returns a value derived from provisional-distance-between-
starts and provisional-label-separation.
• both thelist-item-label andlist-item-body contain one or more block-level elements,
so alist-item-label orlist-item-body can contain other block-level elements such as
block, tableand list-block.
14.1 Bulleted lists
The example in Figure 14-1 also shows how to insert a Unicode character into the FO,
using thesyntax&#x25CF;.
This table shows some common bullettypes for lists:
Unicode
Result
&#x2022;
&#x2023;
&#x25CF;
&#x25CB;
&#x25A0;
&#x25A1;
&#x25C6;
&#x25C7;
application control utility:How to C#: Generate Thumbnail for Word
Images. Convert Word to ODT. Convert PDF to Word. a Word File. File: Merge Word Files. File: Split Word Text Search. Insert Image. Thumbnail Create. Thumbnail Create
www.rasteredge.com
application control utility:How to C#: Generate Thumbnail for PowerPoint
Document. Conversion. Convert PowerPoint to PDF. Convert PowerPoint File: Merge PowerPoint Files. File: Split PowerPoint Text Search. Insert Image. Thumbnail Create
www.rasteredge.com
Ibex PDF Creator
Developers Guide
Lists
79
Note thatwhat is displayed in the document depends on whether the font you are using
contains the specified character. If the fontdoes not contain the specified character you
willsee a warning message like the one in Figure 14-3.
Figure 14-3:
Errormessage if
bulletnotinfont
warning:380 No glyph index found for code point 2023 in font ArialMT
application control utility:C# Image: View & Operate Web Page Using .NET Doc Image Web Viewer
Support multiple document and image formats, like PDF and TIFF; the page order of source document file using mouse dragging in thumbnail preview section;
www.rasteredge.com
application control utility: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
80
Lists
application control utility:How to C#: Overview of Using XDoc.Excel
See this C# guide to learn how to use RasterEdge Excel SDK for .NET to perform quick file navigation. You may easily generate thumbnail image from Excel.
www.rasteredge.com
application control utility:How to C#: Overview of Using XDoc.Word
C# users how to: create a new Word file and load Word from pdf; merge, append can be drawn and added to a specific location on Word file page. Create Thumbnail.
www.rasteredge.com
Tables
81
Chapter 15
Tables
Atable in XSL-FO is an area of content divided into rows and columns. A table is created
with thetable element.
AFO for a simple table is shown in Figure 15-1 and the output it creates is shown in
Figure 15-2. This shows the basic structure of a table element containing table-body,
table-row and table-cell elements.
Figure 15-1:
FOforasimple 2x 2
table
<table>
<table-body>
<table-row>
<table-cell border="1pt solid blue" padding="2pt">
<block>row 1 column 1</block>
</table-cell>
<table-cell border="1pt solid blue" padding="2pt">
<block>row 1 column 2</block>
</table-cell>
</table-row>
<table-row>
<table-cell border="1pt solid blue" padding="2pt">
<block>row 2 column 1</block>
</table-cell>
<table-cell border="1pt solid blue" padding="2pt">
<block>row 2 column 2</block>
</table-cell>
</table-row>
</table-body>
Figure 15-2:
The simple2x 2table
row 1 column 1
row 1 column 2
row 2 column 1
row 2 column 2
The padding and border attributes are not inherited from containing elements, so are
bestdefined on thetable-cellelements.
15.1 Cell padding
Padding is the amount of space that appears between the inside edge of the border of a
cell and the outside edge of the content of the cell. Padding is specified by thepadding
attribute. The default amount of padding is '0pt'. Figure 15-3 shows a table with two
cells. The first cell has padding="1pt" and the second has padding="5pt". Padding is
almostalways used to avoid having the content too close to the cellborders.
Ibex PDF Creator
Developers Guide
82
Tables
Figure 15-3:
FOshowingcellswith
differentpadding
this cell has padding set to '1pt' so
the text is close to the edges of the
cell
this cell has padding set to '5pt' so the
text is not so close to the edges of the
cell
The padding attribute sets padding for all four sides of the cell. Individual sides can be
setusing thepadding-left,padding-right,padding-top andpadding-bottom attributes.
Thepadding attribute also supports a shorthand formatwhere:
if one value is specified ( padding="2pt" ) the same value willapply to all four sides;
if two values are specified ( padding="2pt 3pt" ) the first value will apply to the top
and bottom edges, the second value to theleft and right edges;
if three values are specified ( padding="2pt 3pt1pt" ) the firstvalue will apply to the
top edge, the second to theleftand right edges, and the third to bottom edge;
if four values are specified ( padding="2pt 3pt 1pt 0pt" ) these will apply to top,
right, bottom and left edges in thatorder.
15.2 Cell background color
The background color of a cell is specified using thebackground-color attribute. This
supports the same predefined colors as CSS and the use of hexvalues such as "#33ffcc".
The background color of the cell extends to the inside edge of the border, which means
thatthe area specified by the padding attribute is colored by the background color. This
is shown in Figure 15-4 where the second cell has the attribute background-color =
"#dddddd".
Figure 15-4:
Cellwithbackground
colorset
this cell has padding set
to '1pt' so the text is
close to the edges of the
cell
this cell has padding set to '5pt' so the
text is not so close to the edges of the
cell. The background color covers the
padding.
If you do not want the background to extend to the edge of the padding, specify the
background-color attribute on the contents of the cell (i.e. theblock elements) rather
than on thetable-cell. An example FO for this is shown in Figure 15-5 and the resulting
output appears in Figure 15-6.
Ibex PDF Creator
Developers Guide
Tables
83
Figure 15-5:
FOsettingthe
backgroundcoloron
ablock
<table>
<table-body>
<table-row>
<table-cell border='1pt solid blue' padding='1pt'>
<block>
this cell has padding set to '1pt' so the text is close to the edges of
the cell
</block>
</table-cell>
<table-cell border='1pt solid blue' padding='5pt'
background-color='#dddddd'>
<block background-color='#dddddd'>
this cell has padding set to '5pt' so the text is not so close to the
edges of the cell
</block>
</table-cell>
</table-row>
</table-body>
Figure 15-6:
Cellwithbackground
coloronthe block
element
this cell has padding set to
'1pt' so the text is close to
the edges of the cell
this cell has padding set to '5pt'
so the text is not so close to the
edges of the cell
15.3 Cell background images
An image can be used as the background to a cell by specifying thebackground-image
element, as shown in Figure 15-7. This produces the output shown in Figure 15-8.
Figure 15-7:
FOforusinganimage
asa cell background
<table>
<table-body>
<table-row>
<table-cell border='1pt solid blue' padding='1pt'>
<block>
this cell has padding set to '1pt' so the text is close to the edges of
the cell
</block>
</table-cell>
<table-cell border='1pt solid blue' padding='5pt'
background-image='url(ibex.jpg)'>
<block>
this cell has a background image
</block>
</table-cell>
</table-row>
</table-body>
Figure 15-8:
Cellwithimage
background
this cell has padding set to '1pt' so the
text is close to the edges of the cell
this cell has a background
image
As the above example shows, by default the image will be repeated if it is less than the
width of the cell. This can be changed using thebackground-repeatattribute. If this is
setto "no-repeat" the output changes to thatshown in Figure15-9.
Figure 15-9:
Using
background-repeat=
'no-repeat'
this cell has padding set to '1pt' so the
text is close to the edges of the cell
this cell has a background
image
Ibex PDF Creator
Developers Guide
84
Tables
The
background
image
can
be
positioned
in
the
cell using
the
background-position-horizontaland background-position-verticalattributes.Thecellin
Figure 15-10 example hasbackground-position-horizontalset to "50%".
Figure 15-10:
Centeringthe
backgroundimage
this cell has padding set to "1pt: so the
text is close to the edges of the cell
this cell has a background
image
15.4 Implicit and explicit rows
Usually FO files use thetable-row element to define which cells are in which rows, as
shown in Figure 15-11.
Figure 15-11:
Tables withcells
containedinrows
<table>
<table-body>
<table-row>
<table-cell border="1pt solid blue" padding="2pt">
<block>row 1 column 1</block>
</table-cell>
<table-cell border="1pt solid blue" padding="2pt">
<block>row 1 column 2</block>
</table-cell>
</table-row>
<table-row>
<table-cell border="1pt solid blue" padding="2pt">
<block>row 2 column 1</block>
</table-cell>
<table-cell border="1pt solid blue" padding="2pt">
<block>row 2 column 2</block>
</table-cell>
</table-row>
</table-body>
It is possible to dispense with thetable-row element and have thetable-body contain
table-cellelementsdirectly.Inthiscaseanycellcanhavethe ends-rowattributesetto
"true", which causes a new row to be started containing the next cell. This approach is
sometimes easier to usewhen generating the FO using XSLT.
Figure 15-12 shows what the above FO would look like if we changed it to use implicit
rows. The output from this appears in Figure 15-13 below.
Figure 15-12:
FOforatable with
implicitrows
<table>
<table-body>
<table-cell border='1pt solid blue' padding='2pt'>
<block>row 1 column 1</block>
</table-cell>
<table-cell border='1pt solid blue' padding='2pt'
ends-row='true'>
<block>row 1 column 2</block>
</table-cell>
<table-cell border='1pt solid blue' padding='2pt'>
<block>row 2 column 1</block>
</table-cell>
<table-cell border='1pt solid blue' padding='2pt'>
<block>row 2 column 2</block>
</table-cell>
</table-body>
Documents you may be interested
Documents you may be interested