www.cloudformatter.com

cloudformatter format requests: 6,314,635    pages delivered: 14,363,435

Pass-Through XSL FO Styling

xportability LLC

Pass-Through XSL FO Styling

http://www.cloudformatter.com

Note:

We implemented the spacialized attribute fostyle to carry this information. Because the browser just ignores this, you must be careful to structure it correctly for processing. The proper structure is name: value; noting that the ":" after name is followed by a space and the ";" between items is also followed by a space.

In some instances you may wish to pass through XSL FO attributes that are not supported in HTML. This is an example, while the text in the HTML has a brown color applied, we have applied a CMYK color for the PDF generation through the use of the fostyle attribute. All fostyle attributes are applied after HTML css and also after direct attributes and override those in the HTML. This paragraph also has text-align justify in the HTML and font-stretch, font-size-adjust and hyphenate in the PDF output. The fostyle attribute is attached right in the HTML, just like style and uses the same structure internally as style.

The code for the paragraph above looks like this:

<p style="color: brown; text-align:justify;"
    fostyle="text-align-last: left; 
    font-stretch: wider; 
    font-size-adjust: 0.6; 
    hyphenate: true; 
    color: rgb-icc (255, 255, 0, #CMYK, .1, .2, .7, .5);">In some instances ...

Keeps of Various Kinds

Another common use for passing through custom elements is for properties that have specific meaning in a pagination situation like "keeps". There are several forms of keeps that can help you organize content so it is glued together as you like it.

The following are the most commonly used keeps:

  • keep-together.within-page: set to "always" and used to keep a block of content always together in a single page
  • keep-with-next.within-page: set to "always" and used to keep a block of content glued to the next one always together in a single page
  • keep-with-previous.within-page: set to "always" and used to keep a block of content glued to the previous one always together in a single page
  • keep-together.within-line: set to "always" and used to keep a span of content glued always together in a single line

The following shows some demonstrations of these capabilities.

Keeping Together Within a Page

This paragraph, the instructions and the following three para's of LoremIpsum text are surrounded by a <div> with keep-together.within-page as always, like this:

<div fostyle="keep-together.within-page: always;">
    <p>This paragraph, the instructions and the following five para's of LoremIpsum text are surrounded 
    by a <div> with "keep-together.within-page" as "always", like this:</p>...

Erat dolor aliquip sit aliquyam sed feugait. Vel iusto eos ea aliquyam eum facilisis ipsum sed wisi lorem feugiat accusam. Dolore elitr takimata et ipsum voluptua lorem vero diam facilisi volutpat dolore eos erat autem invidunt sit. Diam dolore at ut ipsum dolores et et amet hendrerit qui invidunt est amet consectetuer et. Dolor sadipscing est vero duis dolore accusam et dolores sit dolores consequat takimata eleifend est magna et.

Imperdiet lorem diam nulla soluta eirmod id diam no. Et et lorem nostrud est et sadipscing eu sanctus at erat nulla. Ut ad et commodo sadipscing eirmod option lorem molestie ipsum ipsum amet et. Lorem dolore ea nonumy ipsum clita et nulla augue praesent vero odio magna sit dolores ea duo lorem. Diam est sed. Et invidunt vulputate feugiat consequat invidunt ipsum sit ipsum nonumy stet tation clita et dolor. Imperdiet erat nonumy ipsum facilisi ut odio sea diam liber ut consequat ut voluptua. Invidunt minim consetetur rebum tempor dolore soluta eirmod consetetur amet erat te.

Esse voluptua consetetur ea diam kasd. Et nonumy tempor ad enim dolor sed sed ut luptatum elitr elitr invidunt nonummy amet dolor facilisi. Erat consetetur magna consetetur elitr accusam dolore eos sea eleifend duo laoreet accusam consequat consetetur nonumy et. Magna blandit dolor ut clita duis at nostrud. Praesent elit elitr hendrerit lorem labore amet kasd dolores et vulputate sit amet elit elitr. Feugait eros quod kasd sea. Zzril et at stet eos nulla at eleifend ex ea rebum in amet elitr duis eos aliquyam. Accusam laoreet sit eos rebum ut sed eirmod lorem doming ipsum justo ut. Est cum ea aliquam justo.

Sadipscing labore et dolor diam dolore sea magna duo sed sit duis sanctus in lorem consequat elitr. Duis eos invidunt diam duo augue amet feugiat erat est. Diam lorem et lobortis diam diam aliquyam elit. Sea no dolores takimata et lobortis. Takimata sed voluptua amet et placerat voluptua et ut aliquyam adipiscing et ipsum vel gubergren magna accusam blandit. Voluptua dolor diam et stet ea diam dolore ut sanctus dolore sanctus. Diam eum vero dolor accusam lobortis stet lorem labore soluta eos kasd sea justo. Sit ipsum sea amet vero vero euismod aliquam duo clita sit invidunt vero. In rebum diam sit. Ipsum euismod accusam elitr lorem dolores dignissim ipsum laoreet consetetur vel sanctus dolore at.

Accusam dolores euismod lorem dolore lorem eos quis nonumy no wisi lorem. Adipiscing possim consetetur sadipscing ipsum et dolor voluptua takimata no erat vulputate euismod. Consetetur aliquip sanctus at kasd eum in et zzril lorem autem accumsan amet nobis sed dolor in. Molestie laoreet diam invidunt facilisi eu praesent est consetetur kasd rebum sea eleifend illum sadipscing dolor. No labore labore lobortis exerci sanctus vero eos amet vel ipsum velit ea zzril magna lorem amet. Lorem ea assum no iriure elitr est sit erat est takimata et ipsum magna ut et magna erat sanctus.

Thus all of this content from the header through this paragraph is together on a single page.

Keep Heading with Para and Table

A common practice in print documents is keeping together headings and some of the following lines of a paragraph so no heading is orphaned at bottom of a page and at least a few lines of text from any paragraph stay together.

What follows this are a series of headings and LoremIpsum paragraphs. The headings all have "keep-with-next.within-page" as "always" which will at least glue them to the paragraph. The paragraphs all have widows of "3" and orphans of "3" which will attempt to glue together at least three lines of paragraph at the bottom and top of any page. The LoremIpsum paragraphs are randomly generated on refresh of the page so you can test various layouts just by refresing and printing again.

Heading

Vel ipsum amet. Eirmod ipsum ut feugait eum sed et ut feugiat. Ad te et kasd sed ut iusto diam accusam et kasd dolor dolores. Dolor amet sanctus dolore et diam rebum sit eirmod dolor lorem et lorem sadipscing et delenit clita. Dolor ipsum ut clita stet takimata delenit elitr eirmod. Voluptua amet sit at. Rebum kasd consectetuer et velit clita tempor no feugiat et ipsum takimata duo congue. Dolore et wisi lorem kasd ea dolores ut.

Dolor sed eos. Quod aliquam et diam ut diam magna veniam vel adipiscing gubergren aliquyam iusto lorem exerci ut sit. Veniam facilisi duis dolor justo sit rebum. Stet voluptua sadipscing et eirmod sed vel vero eos elit sanctus consequat dolore. Molestie et magna et eos magna sadipscing. Autem nulla ipsum diam et labore nibh iriure ex eros enim ea sed diam molestie eos.

Heading

Et dolore aliquyam at clita erat commodo lorem vero nibh lorem ut aliquyam. Amet eleifend lorem lorem ut dolore voluptua consectetuer clita zzril aliquyam ea dolore stet nonummy sit. Facilisis ullamcorper eos dolore vero sit volutpat sit kasd gubergren stet diam lorem eirmod qui duis eos diam duis. Sit ea gubergren no. Et et iriure ipsum dolor sit sea diam. Diam consetetur at blandit dolor labore at vero stet. Stet sanctus stet minim eu velit ut eos ut sed eum clita delenit magna rebum sanctus dolor sed dolore. Voluptua lorem lorem dolores consetetur at voluptua delenit iusto sit kasd. Ipsum eirmod amet dolor hendrerit erat duo clita justo vero eos odio est molestie nibh kasd.

Ipsum tempor et vulputate aliquyam elitr vero sit justo lorem aliquyam accusam ut et sit ipsum no. Ea consectetuer quis commodo et accusam. Lorem dolore clita clita no enim kasd amet eum ea sea sit. Ut esse diam diam cum aliquyam luptatum ipsum nibh sit ullamcorper dignissim voluptua. Voluptua duo esse blandit aliquyam. Justo dolor diam consetetur praesent no vulputate justo diam eros sea odio aliquip sed labore elit. Dolore amet doming laoreet vero placerat magna.

Heading

Labore iriure ut voluptua sea delenit erat. Sed sed doming sit erat consetetur justo. Et et sadipscing lorem justo dolor vel rebum elitr nisl magna. Enim sed accumsan dolor sadipscing at sea aliquyam. Dolor qui sed vero. Amet iusto ut option ipsum aliquam vero.

Vulputate tempor ipsum suscipit erat at est dolores laoreet sed feugiat dolor labore lorem ea lorem. Invidunt gubergren augue dolor ipsum ea amet et aliquyam dolor erat tincidunt ex lorem sit in hendrerit amet gubergren. Dolore erat nonumy aliquyam ut magna stet lorem dolore ut enim lobortis duis ipsum consequat stet. Dolor tincidunt eos dolore et et at vel vero eos molestie et. Hendrerit est diam no sit et lorem sit volutpat dolores quis stet. Amet commodo vero magna aliquip ipsum eirmod rebum. Takimata tempor facilisi gubergren aliquyam. Cum dolore sea amet dolores invidunt hendrerit duis ea molestie et. Sea amet lorem voluptua sed no illum et lorem qui sadipscing possim et dolore takimata invidunt ipsum ipsum. Tincidunt lorem stet magna accusam feugait aliquyam dolor vero accusam ut gubergren duis et velit sed dolor. Rebum tincidunt et consetetur amet amet et blandit molestie.

Heading

Voluptua iusto veniam iriure molestie molestie sit facilisis rebum vel duo ipsum rebum. Sea rebum at lorem duo kasd eros takimata dolores soluta ullamcorper et gubergren ipsum duo dolor lorem. Autem augue consequat duis nonumy ea sed soluta quod sit diam eirmod dolor rebum lorem ut elitr magna. Diam ipsum nonumy vulputate justo est clita accusam veniam lorem sadipscing imperdiet dolores erat clita illum option. Tempor at kasd stet ea duo magna sit. Accusam aliquyam praesent et clita stet nonumy amet tempor feugait et nonummy erat consetetur consetetur vel et. Amet accusam hendrerit invidunt aliquyam laoreet possim lorem sanctus magna dolores in accusam. Sit sed est vero clita labore rebum takimata sed at.

Vero ipsum ipsum magna dolores eirmod nobis esse ea sit sanctus est amet erat minim clita enim facilisis illum. Eirmod dolor sea eirmod et et magna gubergren tempor feugait sadipscing ipsum sed. Amet invidunt sit at enim sed. Dignissim erat lorem ut. Eum dolore gubergren dolor iriure ut gubergren diam. Aliquyam at gubergren vero dolor diam vulputate ipsum sanctus. Ut sed dolor et voluptua clita ipsum clita facer illum wisi labore kasd lorem erat doming dolor sit. Erat nulla stet tempor ut zzril veniam ut dolore. At no accusam takimata elitr doming lobortis ipsum. Ut diam sed et aliquyam sed invidunt amet consectetuer est est stet.

Heading

Iriure voluptua erat invidunt diam quis soluta dolore lobortis tation no. Dolores stet kasd aliquam eros ea duis dolore. Ipsum velit sit dolore sadipscing lorem dignissim sed consequat sed aliquyam. Vero id illum elitr feugait dolore takimata magna invidunt consequat nobis nulla suscipit diam. Ut rebum ipsum sed nulla et diam et tempor. Est sit kasd ipsum ut illum magna labore. Diam duo lorem diam duo dolore vero lorem rebum exerci eos elitr elitr consequat. Magna rebum sanctus justo accusam voluptua et erat consetetur ullamcorper liber.

Labore lorem dolor. Mazim dolor labore eirmod justo invidunt et feugait ut sed doming dolor ea takimata. Ea ut dolor lorem sit clita rebum magna. Et sanctus ipsum illum aliquyam diam accusam ea tation ipsum. Nonumy dolore sit consequat sed. Tation dignissim erat vero nostrud aliquyam labore vero hendrerit clita odio nulla dolore dolor feugiat tempor sed et.