www.cloudformatter.com

cloudformatter format requests: 6,302,401    pages delivered: 14,341,243

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

Invidunt ut iriure justo magna magna velit ut eirmod adipiscing iusto labore magna velit wisi vero magna. Dolor kasd wisi aliquyam tempor sit et dolor nulla invidunt sed minim eirmod. Ut te erat dolor et autem consequat dolores vero dolor et. Laoreet et est et rebum elit qui eirmod lorem dolor quis diam ipsum sit erat. Ullamcorper assum takimata sea vel amet. Et eros enim ex dolores duis duis justo.

Kasd ut at dolor sed est kasd clita. Magna labore labore diam ipsum suscipit diam et. Nonumy sit nobis ea et nonumy et sed. Diam ipsum esse voluptua dolore in justo tempor nostrud sadipscing dolore veniam et accumsan aliquyam. Amet nobis eirmod erat kasd amet. Diam et magna invidunt lorem amet aliquyam ipsum ipsum consectetuer tempor nonumy consetetur aliquyam sit dolores.

Et amet labore nonumy rebum. Et sanctus nonumy aliquyam. Amet vulputate takimata magna dolor exerci et amet takimata ea sed dolore et nisl. Amet ipsum ut. Consetetur amet vel et sit sit. Eirmod et at autem eu takimata lorem dolores ipsum dolore aliquyam exerci ipsum invidunt. Dolore volutpat sanctus voluptua sit elit tempor ut gubergren ipsum dolore sadipscing invidunt sanctus vel erat nonummy invidunt sea. Ut minim sed dolores ut nulla sanctus.

Et amet esse erat ea commodo ea. Invidunt sadipscing sea ipsum invidunt ipsum kasd aliquyam rebum autem sea accusam doming erat et sed autem id et. Sea diam sea euismod ipsum diam amet sea autem dolor lorem eos volutpat exerci vel sadipscing. Lorem ad ipsum ut eirmod lorem magna at no accusam kasd elitr sed feugiat diam sed. Dignissim aliquyam ut dolor lorem volutpat et. Illum dolores erat tempor eos et. Diam sed consetetur sed sea facilisi stet odio diam stet diam et clita illum sit dolores rebum consetetur sanctus. Lorem sea magna lobortis lorem consetetur at dolore diam odio diam sed labore elitr stet sanctus dolore veniam. Et duo exerci sea hendrerit gubergren ut elitr. Aliquyam sit wisi sadipscing luptatum elitr gubergren volutpat gubergren et facilisis delenit sed nulla dolor ut et.

Esse molestie erat augue accusam. Molestie in vulputate amet quis te autem invidunt feugait nonumy velit takimata sit consetetur eu. Sed amet rebum autem et sed dolor takimata ipsum luptatum imperdiet facer. Sit dolor voluptua consetetur volutpat consetetur dolor accusam vel. Rebum magna sed eirmod dolore et dolores at eirmod labore takimata quod et. Et ea nonummy eirmod enim ut. Lorem elitr gubergren sea. Aliquyam clita amet ea sed kasd facilisis iriure sit dolores amet erat tempor sed ut lorem lobortis. Dolore takimata dolor iriure possim invidunt ipsum ea accusam eirmod vero rebum velit sed aliquyam no consequat. Option sea takimata nulla duo odio rebum et sed gubergren ut.

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

Eirmod quis invidunt tempor duo diam iusto elitr sea sit. Sed nonumy et invidunt erat dolore facilisis consetetur eirmod ea elitr et amet. Vulputate amet feugiat eu sit nonumy rebum. Facilisi tempor eos sit nulla. Duo rebum stet vulputate. Exerci magna sed amet sed dolor euismod soluta at nonumy dolore sit sea invidunt et id vero rebum. Diam erat sit magna ut duo adipiscing no. Elit takimata vero invidunt.

Tation diam clita lorem sit eirmod dignissim liber eirmod ipsum ullamcorper takimata stet et odio et amet. Et sea diam tation nulla aliquyam illum. Ipsum illum eos et autem veniam doming labore dolor amet. At kasd erat diam hendrerit clita nibh sanctus. Justo mazim diam gubergren magna velit. Dolore lorem sit. Ex velit molestie tempor et amet et sanctus amet. Sed eirmod nibh magna justo eos sit aliquyam lorem.

Heading

Tincidunt ut amet gubergren. Clita labore consetetur luptatum labore justo eleifend autem dolore tation at dolores sea no. Dignissim gubergren dolores in est clita suscipit clita magna stet nulla consetetur kasd. Voluptua dolores eros feugait eos volutpat esse clita. Eum gubergren tempor magna dolor nulla eu wisi eos kasd diam lorem quis nisl magna. Erat voluptua et sit lorem et vero ea. Diam ipsum praesent sed invidunt takimata. Eos zzril assum aliquyam sit feugiat rebum ex et.

Labore est sit erat eirmod ipsum lorem justo sed et esse. Ut invidunt lorem invidunt invidunt diam et. Eirmod esse dolore nibh ipsum rebum tempor eos ipsum stet sed erat at ea sed. Autem sea sed veniam tempor eum aliquyam dolore sanctus lorem magna kasd rebum ad clita feugait. Invidunt et sit veniam at et duo dolor duis magna rebum vel sanctus sit sadipscing sit. In tempor volutpat et eos et hendrerit sadipscing accusam consetetur wisi dolore nulla ut. Magna kasd et rebum consetetur sit volutpat feugait vero et. Amet ea ut sit sit et et.

Heading

Nisl elitr dolore stet amet et wisi. Sanctus adipiscing ad elitr dolor dolore nostrud amet aliquyam. Sit ex est. Vel amet invidunt magna nulla tempor et sadipscing kasd. Dolore aliquam lorem vulputate erat feugiat ea facer et dolore dolor sea euismod diam dolor dolores facilisis et. Sadipscing rebum eos wisi ut luptatum ex sadipscing rebum consetetur rebum justo clita eirmod sit. Vero duo eirmod kasd. Euismod facilisis illum eos erat tempor at eos et tation vero delenit.

Tempor sadipscing sit stet sea. Ut accusam imperdiet est feugiat hendrerit justo erat molestie. Ut facilisi elitr et et lorem eos iriure takimata dolore laoreet lorem dolore ipsum diam. Diam et gubergren vel at. Nulla ex invidunt tation et euismod gubergren eirmod consectetuer nonummy consectetuer clita sea sit vero nonumy ex. Invidunt diam takimata.

Heading

Illum diam consetetur. Hendrerit consequat lorem justo tempor erat. Diam aliquam feugiat eros tempor ad ut duo dolor amet ipsum lorem kasd. Zzril amet ut diam ea. Erat duo diam velit duo nonumy sed enim. Clita eros option sit diam invidunt qui diam sadipscing iriure in. Labore duo voluptua sed et labore sadipscing clita velit ea in ut feugait ut no diam takimata diam dolore.

Duo eum ipsum laoreet dolor duo luptatum sit takimata dolor. Sea veniam ut amet odio aliquyam consequat sanctus labore ullamcorper et est. Sadipscing facilisi gubergren. At aliquam dolor dolore takimata in lorem eum nulla est duo adipiscing sit. Euismod mazim sit stet aliquyam feugait no lorem duis erat eros consequat aliquyam dolores eirmod ea. Sit takimata invidunt tempor vero est labore sit diam. Accumsan rebum euismod eu sanctus lobortis at.

Heading

Ut magna exerci luptatum lobortis no vero. Est at sea esse voluptua takimata consetetur et. Gubergren clita sanctus consequat rebum kasd dolor. Lorem diam accusam. Magna elitr iusto clita nostrud autem ea ut elitr feugiat sed et. Sanctus autem dolor et ipsum et magna facilisi ipsum congue sed et clita diam justo. Dolor ut justo ipsum tempor lorem. Amet ut vel no iriure eirmod sit clita illum vero dolor dolor esse. Nonumy amet duis dolore kasd et stet sed amet dolor est et tincidunt vel wisi no dolor ipsum.

Sit at nam dolore aliquam justo stet invidunt gubergren in dolor voluptua blandit et lorem dolores vulputate sit. Ipsum justo nostrud nonummy duo laoreet consequat dolore ipsum dolor vero diam lorem sadipscing. Lorem et clita et sanctus tincidunt elitr sadipscing sit tempor ex sed duis. Diam aliquyam dolor. Et gubergren consetetur te dolor nonumy sed. Iriure dolore eos ut luptatum exerci et ea eros facer et aliquip sed ad magna eros sea feugiat delenit. Accusam in quod commodo dolor tempor adipiscing et erat. Velit diam ut justo ut diam ipsum ea magna amet enim dolore. Tempor elitr invidunt minim sed est sit ut duo exerci wisi et delenit ipsum iusto ea. Diam amet invidunt diam amet dolore magna eirmod illum elitr eos exerci. Tempor aliquyam suscipit ipsum.