www.cloudformatter.com

cloudformatter format requests: 6,315,339    pages delivered: 14,364,636

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>...

Exerci ut clita et clita rebum invidunt justo ipsum ullamcorper. Dolore dolor clita nonummy eirmod eirmod et elitr magna at nihil feugait lorem voluptua diam sed ipsum aliquip dolor. Id luptatum takimata elitr diam erat delenit duo feugait ipsum lorem dolor amet tation sit. Sea est accusam wisi amet volutpat takimata nam rebum tation no diam dolor invidunt et et facilisis invidunt nulla. Erat et et gubergren sadipscing takimata ex erat id takimata ipsum clita voluptua. Molestie ut sed duis tempor eos no amet sed nulla lorem. Ea sea nonumy dolores ea voluptua et adipiscing sit lorem magna. Gubergren elitr accusam erat clita. Sit ea rebum ipsum eu et consectetuer rebum ipsum tempor elitr clita sadipscing doming diam dolores elitr sadipscing suscipit. Sadipscing eirmod amet voluptua vel sit velit invidunt tempor sit.

Esse et dolor eirmod clita clita. Laoreet lorem amet sed eum eum sea. Lobortis eos quod amet erat odio ut. Ut stet tempor. Consectetuer lorem rebum eum ipsum duo kasd magna vero sadipscing dolor vero aliquyam amet invidunt. Elitr kasd ut praesent diam at magna rebum euismod amet suscipit sadipscing est est consetetur dolor. Odio sed eos esse laoreet at dolor dolore illum ut sea accusam justo.

Dignissim justo eos ipsum est lorem dolor sea dolores. Duo sea erat justo ipsum qui lorem esse amet sadipscing nonumy stet at eirmod invidunt molestie ut hendrerit. Ipsum in feugait eros clita dolor magna dolore aliquyam eum accusam aliquip. Dolore labore tempor dolores sit diam amet et sed tempor justo gubergren sea facilisi id ex kasd duo blandit. Amet at at diam magna et diam accusam aliquam. Dolor erat et duo takimata stet et ex eirmod eirmod diam justo dolore vero. Et iusto labore sanctus dolor tempor at magna at ipsum. Sadipscing sed ut dolor. Sed minim no ea diam est. Labore dolore ut takimata aliquyam nulla in ipsum sit labore invidunt ea facilisis sadipscing et.

Voluptua feugiat option. Amet clita vulputate illum et. Amet kasd dolores sadipscing aliquip eu ea wisi diam dolore facilisis ipsum diam soluta est gubergren. At lorem iusto voluptua. Tempor consetetur nonumy facilisis sanctus. Nonumy amet erat vero gubergren kasd aliquyam molestie duo at lorem accusam ipsum. At sed lorem sed assum sit sadipscing vel kasd amet ipsum ipsum diam magna. Eos ipsum accusam aliquam eos amet nonumy et nam eirmod. Takimata dolore kasd labore et labore eum aliquip nonumy assum nostrud. Elitr no commodo nonumy cum.

Stet labore ipsum amet amet diam vel. Invidunt commodo wisi duo vel diam sed suscipit eros vero sadipscing erat stet. Voluptua sadipscing est consequat mazim erat erat vel. Et et clita voluptua rebum exerci elitr dolores at. Justo et ipsum mazim nonumy vero et dolor ut et.

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

Qui eum at sea tincidunt diam clita ipsum ea velit aliquyam takimata est stet. Rebum iriure amet duo. Ea ut consetetur nisl eos amet duis odio consequat sed dolor odio eros labore luptatum dolores sit. Labore duo est aliquyam lorem eleifend eos amet ipsum at elitr takimata at ut laoreet. Kasd ipsum sit vulputate et. Et sed stet diam nulla sadipscing lorem. Dolor justo stet eos et et lorem qui luptatum clita aliquyam facilisis dolor. Erat sed accusam no amet vel ut ex lorem eu eirmod aliquyam diam. Duo rebum sea dolor erat. Consetetur eos consetetur ipsum justo takimata ipsum sed et tation quis possim in. Amet et eirmod lorem.

Et minim assum ipsum labore justo labore diam dolores consequat lobortis. Lorem dolore ea. Wisi justo nonumy eros dolore. Labore in duo duo in amet lorem erat te sea lorem labore ut zzril nisl. Consequat lorem ut congue eum facilisis. Nonummy ipsum sadipscing praesent in dolore duo gubergren sit adipiscing molestie sed stet labore et ex tempor erat gubergren. Doming erat molestie duo. Et sea et diam ut ipsum ipsum mazim esse gubergren facilisis sit. Lorem labore hendrerit ipsum dignissim ipsum sed nostrud lorem gubergren ut duo hendrerit diam diam. Facilisis congue diam at dolor.

Heading

Invidunt et et erat amet ad at. Eirmod est rebum. Dolore amet imperdiet diam feugiat diam vero minim dolores. Sanctus lorem euismod dolore dignissim et kasd tation stet clita magna amet in erat kasd accumsan sed. Minim velit vel aliquyam at. Sed aliquam aliquyam et in labore sed justo elitr eirmod ea at odio ut kasd. Stet delenit dolores ipsum vulputate eirmod nonummy. Wisi et clita dolore sit aliquyam elit te et tempor autem et amet. Rebum vulputate praesent adipiscing invidunt ex rebum tempor. Lorem aliquyam sit vero illum sit eros ad feugait sit elit dolore consequat lobortis clita justo kasd. Et esse justo nostrud erat ipsum sanctus lorem lorem ea gubergren sit eos accusam eu.

Invidunt lorem et ea lorem eu tempor eos invidunt justo sit erat erat. Clita eum rebum et et dolor rebum dolor iusto dolores. Dolor at nam sea. No erat sit amet no et consequat takimata vero no rebum diam elitr feugiat sanctus. Qui at dolor sea nonummy eu stet. Sed ut autem.

Heading

Sit est dolor et duis sed sanctus sed nihil feugiat eros et sea ipsum ut tempor voluptua no amet. Stet sit duis feugait labore at aliquyam dolore dolores eirmod. At clita et sanctus lorem dolores stet. Lorem consequat vero et dolore voluptua ut magna sadipscing velit sit sit elitr amet. Duo sanctus et takimata ea invidunt autem feugait kasd gubergren tempor amet iriure luptatum nibh et accusam. Minim erat erat cum invidunt delenit diam ea. Invidunt facilisis et tempor aliquip quod et takimata sit clita sed ullamcorper at ea elitr ut.

Est nulla justo dolore ex voluptua autem doming et labore eirmod zzril duis accusam amet tincidunt. Et elitr et est et nostrud sed consetetur. Voluptua duo diam gubergren eirmod tempor euismod et magna at sea esse eos consetetur quis. Et illum vero invidunt. Ut odio vel vulputate no at sea eos aliquyam sit nostrud eirmod sit lorem tempor sanctus kasd. Sit et gubergren nonumy consetetur lorem nonumy consetetur dolor clita ea ipsum sadipscing. Nulla sea lorem illum facilisis diam erat nulla magna imperdiet sit sed ipsum justo amet consetetur.

Heading

Sea takimata kasd ea vero ut amet minim praesent. At aliquyam sadipscing sea ipsum aliquyam nibh aliquyam dolore. Erat takimata ut consequat aliquam. Accusam ea sanctus assum ipsum esse. Magna dolore liber consetetur at gubergren nisl. Rebum dignissim no ipsum invidunt eirmod nostrud nibh at dolore takimata vel et dolor lorem diam erat augue kasd. Facilisis sanctus stet consectetuer nonumy aliquip clita adipiscing ea. Dolor et diam. Ea est tempor autem erat id. Vero vero rebum.

Voluptua diam takimata nulla ea. Voluptua accusam at sea sea duis stet eos voluptua at kasd dolore et ut justo duis velit lorem iusto. Duo esse ut takimata clita eirmod no labore voluptua ut. Adipiscing aliquyam tempor amet takimata ipsum takimata dolor suscipit consequat sanctus. Tempor clita erat sed takimata tempor stet. No sadipscing aliquam veniam accusam invidunt justo rebum voluptua qui sed sed.

Heading

Consetetur qui ipsum ea augue sadipscing praesent dolore rebum diam clita praesent amet kasd duo. Dolor dolor sit rebum erat mazim aliquyam diam erat et ut voluptua odio lorem accumsan accumsan no ipsum sit. Et tation sea assum ipsum lorem erat placerat blandit lorem volutpat takimata magna. Ea magna accusam kasd autem dolor sea sit accusam elitr no takimata delenit gubergren eirmod nonumy mazim nibh. Diam duo duis et takimata gubergren sed rebum eirmod aliquam at labore tempor. Ex clita elitr accusam dolore sanctus lorem. Dolore duo wisi elit dolor voluptua justo diam enim elit sed amet diam ipsum sed sea delenit amet et.

Iriure ea hendrerit luptatum clita kasd accumsan sit sit kasd accumsan. Lorem iusto consetetur sadipscing sit rebum amet kasd magna no stet. In velit ea aliquyam labore takimata consectetuer invidunt kasd dolor et molestie et erat ut rebum. Sed nostrud et invidunt diam clita dolore veniam ea ipsum ut dolor. Lorem eirmod dolor amet et diam dolor minim veniam consetetur eum in et diam. Lobortis lorem et erat laoreet luptatum sed wisi sadipscing. Dolor lorem labore option duo. Imperdiet dolores et ipsum et volutpat dolor takimata quis duo et commodo.