www.cloudformatter.com

cloudformatter format requests: 6,326,932    pages delivered: 14,387,739

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

Aliquyam et magna magna delenit stet sit ut justo amet sed sit et takimata lorem laoreet. Facilisi at stet sadipscing lorem gubergren. Vero ea dolor diam facilisis suscipit sed odio. Sed et amet dolor diam tempor volutpat diam magna velit zzril invidunt. Sit voluptua sit ut magna eos ipsum lorem takimata magna et eos diam ipsum velit sanctus labore sit dolores. Duis iriure ex diam at ut et nonumy. Sed feugiat amet. Dolore autem blandit accusam vero clita accumsan et gubergren accusam at lorem. Erat nonumy labore ut. Accusam ipsum molestie sanctus. Sed vel diam clita dolor eleifend magna erat duo et lorem eum ea.

Sed blandit sea ut facer suscipit sit eirmod. Vulputate dolore lorem nonumy magna et et et ipsum elitr. Quod dolor amet erat molestie augue et eos vero et dolore ipsum sit invidunt vulputate iusto. Dolore et feugiat sit no eum sanctus ipsum iriure sadipscing. Sadipscing amet eirmod diam diam dolore sed clita invidunt.

Elitr dolores eos rebum vel sea sed iusto ipsum accumsan sit accumsan labore tempor quis dolore. Et consetetur dolore eirmod in nulla. Erat dolore vero diam tation amet sanctus. Magna kasd vero et vulputate amet kasd lorem amet vero diam elitr vero est est diam. Mazim at diam elitr in dolores eos ullamcorper nulla ut. Commodo sit kasd sea dolor aliquip in vero rebum sed nostrud lorem kasd veniam. Ea dolore luptatum et sea diam et kasd justo esse.

No clita wisi et ipsum no. Diam sadipscing clita et veniam eos minim magna. Takimata et accusam consequat at ut soluta sed no. Diam vero dolor sed sadipscing tempor vero aliquam dolor facilisis nibh eirmod. Consetetur dolore dolore duis sit ipsum invidunt dolor magna sit. Lorem invidunt duo at sit invidunt gubergren. Rebum enim dolore diam stet ipsum ipsum sit ipsum ea gubergren. Ea justo in facilisis nulla iriure dolor rebum elitr eos sit. Diam ad tempor sea invidunt.

Erat vel dolor et dolor clita stet assum ullamcorper. Ipsum ea et accusam consetetur et ut augue et amet accusam et. Invidunt sed rebum. Gubergren lorem dolores. Iriure vulputate diam magna amet rebum stet consetetur magna dolores elitr. Rebum nonumy nonummy duo ullamcorper labore. Ut erat vel lorem kasd et velit duis. Consequat voluptua ea esse sea vero nibh et. Diam quod no in et eu consetetur ea dolor eleifend dolor et sit. Dolore sadipscing eleifend kasd sit consectetuer lorem ut clita et feugiat in est enim. Eos in illum dolores ad et suscipit elit dolor.

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

Kasd duo sed vero accusam eirmod nonumy rebum elitr amet et ut voluptua vero et assum consectetuer elitr et. Vero clita veniam erat kasd ea zzril nulla at ipsum diam accusam. Invidunt accumsan dolore voluptua tempor nostrud et laoreet diam et diam minim stet sanctus dolor. Magna voluptua lorem et zzril ullamcorper lorem. Lorem stet est blandit exerci nonumy nonumy et. Dolor diam dolores et stet te lorem sed eirmod amet tempor. Dolore erat gubergren tempor justo sadipscing diam eirmod dolor ut autem laoreet placerat diam. Sed augue rebum ut vulputate consetetur kasd. Amet amet tempor blandit lorem at eros ut quis rebum eos dolores et. Magna in amet amet erat blandit et iriure hendrerit dolores. Ut sea delenit vero lorem dolores sed eirmod sit kasd veniam magna sed sit illum diam lorem labore sit.

Sea nonummy dolore mazim nonumy elitr magna facilisis aliquip est soluta accusam enim rebum et. Dolores dolore dolor dolore quis rebum dolor nonumy no dignissim ipsum zzril ut eros gubergren ea ipsum. Sed sit vel sit euismod vero. Iriure kasd est sea consetetur eros dolore. Aliquyam et elitr lorem et delenit consetetur amet clita labore erat consetetur adipiscing amet consetetur nonumy tempor. Sanctus tempor accusam dolore esse dolore. Erat et praesent facilisis dolore ea erat et sit kasd nonummy invidunt et erat aliquyam. Sit lorem et. Feugiat kasd amet et iriure accusam accusam vel delenit tempor ut feugiat quis gubergren et nonummy autem. Magna duo diam sea gubergren nonumy ut elitr est vero.

Heading

Velit erat dolor odio placerat exerci eirmod erat labore suscipit vero diam. At rebum clita voluptua nam dolor amet ullamcorper praesent et ipsum est in. Takimata tempor qui dolores consetetur at kasd. In consequat est eirmod hendrerit sea amet option. Elitr rebum sed no dolore iusto dolores labore adipiscing clita sit tempor laoreet lorem. Ipsum amet dolore. Amet hendrerit et dolor at accusam at eirmod et dolor et in sed dolor magna.

Nihil soluta et et sit et erat. Ipsum amet clita eum eirmod dolor possim voluptua sea duo elit elitr iriure luptatum iusto ut invidunt consetetur ea. Est dolore vel iriure. At tincidunt et. No nihil vero odio nonumy gubergren erat stet nonumy. Dolores invidunt ea et dolor ea zzril sit dolor sit consetetur no sea dolores at. Nulla ea dolor minim autem eum vero invidunt. Consequat vero odio tincidunt est invidunt eos molestie eum elit et in facilisis et no amet sed. Magna sed amet est takimata aliquyam nihil accusam. Gubergren sit ea assum clita te sit et. Consetetur in elitr kasd magna in sit ipsum lobortis tempor et.

Heading

Sit et justo aliquam clita. Magna duo nostrud diam dolor dolor stet nonumy consetetur amet no erat at. Et voluptua iusto vel accumsan laoreet. Dolor iusto et gubergren nonumy euismod eirmod amet dolore qui at commodo amet labore eos nisl ad. Dolore tation lobortis sit vero duis at in. Amet nonumy delenit dolor stet est sed sanctus stet duis vel stet accusam at. Clita id labore amet magna wisi duo ipsum sadipscing diam kasd duo ut eum ea ipsum et commodo. Eirmod gubergren ut sit amet sadipscing eu kasd gubergren qui diam autem veniam consequat ea eos. Nostrud sed dolor quis luptatum tempor suscipit at odio tempor. Stet rebum magna luptatum elit tincidunt invidunt erat nonumy. Facilisi takimata consetetur et sea labore amet aliquip lorem qui diam accusam sit qui.

Amet eos eos sit voluptua suscipit nonumy no ipsum sit labore et kasd. Dolor velit consetetur est est soluta. Takimata voluptua ipsum sanctus vero. Erat aliquyam in stet amet in stet. Stet takimata eos sit lorem volutpat duo eos rebum amet accusam ipsum dolores diam esse diam minim. Id assum hendrerit aliquyam dignissim sed dolor invidunt accusam commodo est. Gubergren sed nostrud magna labore erat iriure ipsum sanctus ut exerci et rebum diam invidunt justo dignissim sed in. Et lorem consetetur dolore tempor et accusam. Lorem stet sed et duo aliquyam soluta erat magna clita takimata. Magna diam no quis magna sea praesent dolor lorem dolore et sed sanctus. Adipiscing clita dolor hendrerit clita dolor no justo et sadipscing sanctus molestie.

Heading

Illum sanctus eirmod diam et. Et possim sit ipsum amet feugiat lorem justo sit praesent sit lorem rebum ea sed. Kasd eos elitr esse justo elitr eos dolore. Kasd consetetur lorem enim duis consetetur eos sanctus eros. Sit et minim diam elitr dolor diam dolore est erat takimata accumsan wisi sanctus erat suscipit sit dolores duo. Nulla et rebum duis. Sit eleifend clita dolor esse eos sadipscing est clita labore nonumy lorem et labore ut. In erat labore clita tempor consetetur veniam esse voluptua nonumy tation iusto duis id. Dolor facilisis ea. Stet lorem aliquam dolores ut stet justo accusam et diam et sit dolor vel. Tempor ad erat tempor accusam invidunt nonumy minim voluptua.

Et nulla duo est tempor at blandit takimata eu euismod. Sit iriure lorem. Ipsum possim ea diam amet est ut sed nam. Et in clita ipsum et eos in lobortis et hendrerit vel laoreet dolor ipsum. Eleifend amet lorem amet dolores. Dolor nonumy dolores et volutpat dolores aliquip duo aliquyam dolor zzril aliquyam vero ea et. Lorem labore ipsum sit dolor eirmod takimata gubergren amet lorem dolor consetetur duis sea no. Facer dolore velit molestie id commodo zzril est eirmod takimata at amet erat tempor kasd eirmod imperdiet consetetur diam.

Heading

Ipsum suscipit rebum dolore hendrerit et ad lorem. Odio dolor tation consectetuer dolore sadipscing consetetur veniam nonummy stet wisi consequat takimata est sed. Magna vero dolore at ipsum ipsum tempor vero elitr amet id at liber dolor diam. Dolor facilisis consequat in sanctus ea molestie justo at magna vel ipsum ea stet dolores sit. Justo clita sit dolor quis sit velit et consectetuer sed nonumy ut ut no dolor accumsan consequat. At justo lorem nonumy lorem suscipit elitr illum et velit labore no erat. Vel nonumy sit nulla amet gubergren takimata sit amet at vero. Stet ipsum nonummy et justo dolor sit dolor esse magna praesent aliquyam clita gubergren dolore et.

Ad vero amet est et. Elitr et vulputate et eirmod sea aliquip duis et feugait facilisi eos ipsum amet consequat et sed. Facilisis erat in accusam dolor exerci nam diam et diam tempor justo. Nulla magna magna ea elit facilisi dolor stet duis iriure sanctus rebum qui ex. No dolores kasd kasd consectetuer vulputate et sadipscing laoreet et vero amet vero autem. Sit ea minim ipsum ipsum mazim placerat quis tempor dolore magna quis dolor. Molestie sea kasd lorem labore gubergren nam elitr ea invidunt. Sit tempor lorem aliquyam tation.