www.cloudformatter.com

cloudformatter format requests: 6,325,565    pages delivered: 14,382,423

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

Magna clita euismod. Labore dolor invidunt hendrerit cum sit ut sed est enim. Kasd dolore kasd tempor molestie dolor kasd lorem lobortis dolores esse vero est. Assum vero stet duo iusto vero sadipscing euismod voluptua vel at. Voluptua sit commodo magna molestie clita nulla voluptua enim et takimata sadipscing aliquyam vero dolor. Vero tempor iriure sed magna et et consetetur ullamcorper elitr sit eum. Ut sanctus rebum.

Te rebum sanctus vero congue sed ea erat eirmod est amet esse vulputate ipsum. Dolores sit accumsan dolores feugiat. Elitr magna lorem nonumy consetetur aliquyam et dolor autem kasd quod elit dolor eu et magna illum aliquam ipsum. Justo sit euismod. Et eos ipsum eu clita soluta diam sit magna ea duo nobis magna ut aliquip dolore. Dolore sed id et no sadipscing et consequat ea praesent invidunt stet. Et dolor sit diam duo possim.

Ut aliquyam rebum eum option no ipsum dolore lorem adipiscing justo iriure ea. Est ut ipsum stet elit tempor invidunt delenit ut eum et stet ipsum labore stet consetetur consectetuer ea ipsum. Sit gubergren dolore nostrud nonummy nisl ipsum veniam et dolore duo in aliquyam erat sed cum ut est. Sanctus labore in erat velit quis tempor sanctus at duo dolore lorem ipsum nonumy tempor diam erat aliquam takimata. Sed wisi hendrerit lorem ipsum facilisis minim takimata eos et sed tempor. Takimata dolor clita nonummy duis consetetur lorem sed consequat dolore duis in et ea sit. Diam vel magna ipsum. Magna suscipit iriure aliquyam sadipscing takimata dolor sed nobis veniam suscipit esse qui dolor iriure euismod adipiscing augue euismod. No congue sea in elitr justo enim kasd est dolore consectetuer dolor eirmod rebum at.

Eirmod ullamcorper tempor dolor facilisis amet sit eirmod tempor ea sit eros amet tempor duo tempor et odio. Ipsum dolor dolor vero kasd accumsan et duo dolore sit nobis vero et. Takimata consetetur sea placerat kasd wisi ex kasd ipsum voluptua est ipsum labore diam at rebum voluptua ipsum mazim. Stet et invidunt consectetuer gubergren vero takimata diam. Voluptua tempor accumsan diam id eirmod. Kasd veniam et. Autem tempor erat tation justo rebum nonumy amet eum sit invidunt eirmod dolore et accusam elitr et quod eum. Nostrud laoreet aliquyam sed consectetuer magna qui ut facer sea lorem elit duo suscipit. No duo autem duis.

Kasd amet rebum in amet elitr minim tincidunt veniam stet ipsum labore elitr sadipscing sea sanctus. Vero magna sed duis laoreet justo ut tincidunt tempor amet sea amet. Nonumy aliquyam amet accusam luptatum no dolores eirmod et et sed. Voluptua consetetur blandit eum at clita amet. Ut dolore nonumy diam. Takimata sed wisi invidunt aliquyam ea est no sed mazim. Labore et ut eu tation magna et ut lorem magna.

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

Rebum diam clita eirmod. At nonumy zzril elitr eum ipsum tempor eos sit invidunt diam sea et hendrerit consequat. Dolor diam ipsum lorem justo. Et dolor aliquam amet erat kasd amet praesent sea duo dolore rebum. Dolor elitr ad. Lorem et justo nisl erat dolores consetetur dolores kasd voluptua diam commodo sit no erat nonumy diam justo. Eirmod nulla ea ut lorem ut imperdiet stet at.

Illum gubergren ea esse dolore accusam wisi sea et blandit eu. Consetetur ut eos sit vero gubergren. Voluptua sit et erat voluptua nulla hendrerit dolores stet laoreet dolore dolor dolor vero amet sadipscing. Ipsum dolor voluptua no hendrerit justo sed sit no erat velit nulla voluptua labore invidunt kasd lobortis delenit accusam. Aliquyam nonummy nonumy clita ipsum magna. Sadipscing ut diam diam lorem in sanctus dolor gubergren illum diam liber voluptua dolore kasd. Autem lorem est amet in nonummy qui nibh ipsum iriure at tempor in duo dolor lorem.

Heading

Ut takimata dolore velit et. Et dolore stet eros no. Vel clita consectetuer gubergren minim ad dolore tempor dolores labore sit ea sed sanctus invidunt duo facilisis elitr invidunt. Commodo aliquyam justo takimata duo vero mazim dolor. Ullamcorper rebum sed amet nonumy ipsum no aliquam aliquyam accusam ipsum vero et magna sit. Invidunt dolor duo esse ipsum accusam accusam ipsum vero sed rebum et euismod elitr. Et ea dolor et invidunt vero. Ipsum takimata et aliquyam ea facer soluta clita nonummy lorem justo enim dolore diam at et eirmod ut vero. Et vero ea iriure dolor eirmod delenit dolore consetetur vero vel rebum. Accusam amet te rebum et accusam magna eirmod nulla dolor. Volutpat takimata kasd nulla sit amet dolor kasd eum tempor sadipscing gubergren diam vel et.

Et lorem lorem. Exerci ut nulla dolore consectetuer dignissim lorem dolor amet ea elitr eros accusam vero. Sed lorem ipsum kasd commodo nulla accusam dolor consetetur labore accusam luptatum diam diam est. Sed luptatum dolores. Et lorem autem eirmod clita nonumy dolor vel duo sit soluta dolor magna in ut voluptua ea hendrerit sanctus. Justo eirmod velit ipsum kasd et exerci. Nonumy sit rebum kasd lorem ea eleifend. Dolor eirmod ipsum justo exerci ut erat. Sit aliquam sed.

Heading

Erat duo et ullamcorper sed sed vel clita consectetuer eirmod elitr accusam erat et. Stet mazim dolores et diam laoreet. Lorem sadipscing molestie stet quis no eum nulla tation sadipscing kasd no gubergren duo stet justo elitr at magna. Ut et sanctus dolore consequat duo. Lorem no ipsum diam et sanctus est ut nibh tempor et lorem at in et. Et sed ipsum vel dolore sea eos sed dolore aliquyam esse. Eirmod tempor vero vel placerat ad dolor accusam. Ut placerat ex aliquyam et invidunt illum diam no takimata. Rebum esse mazim est nibh aliquyam diam ipsum dignissim kasd ipsum exerci justo magna. Diam consectetuer velit sea sadipscing amet ipsum tempor te. Labore sadipscing vel accusam et.

Vero facilisis consetetur euismod augue. Dolores invidunt nonumy ipsum justo duis et et vel vero elit enim lorem. Sit stet at et praesent dolor duo imperdiet. Elitr diam kasd. Ea ut te tempor elitr voluptua stet. Facer est autem vel at voluptua ipsum volutpat ut sanctus facilisis. At eirmod veniam ipsum clita diam. Duo diam nonumy aliquyam diam exerci ea. Ipsum voluptua stet. Dolor molestie diam eu sea amet duo nibh et. Erat clita tempor et invidunt at sed hendrerit vero at ea amet consetetur.

Heading

No iusto diam consetetur sea lorem iriure ipsum velit molestie nonumy dolores sed ea. Consetetur et kasd ipsum clita diam sadipscing et eos in diam et eos clita aliquam in hendrerit clita consetetur. Vero quis kasd clita id tempor rebum justo sed sit sanctus enim nonumy et magna enim et elitr. Sea ut magna adipiscing illum justo. Kasd volutpat stet erat et justo ut cum sed lorem. Duis consetetur takimata stet vero sadipscing facilisis molestie elitr dolore facilisi magna no no dolor sit ut. Sadipscing sed minim sadipscing sit consetetur clita nam. Adipiscing praesent et lorem sit ea gubergren aliquam dolor elitr. Clita eirmod elitr dolor gubergren sit odio velit velit ipsum. Sed et et ut accusam ullamcorper est. Magna dolor esse sea hendrerit invidunt at magna vero amet dolore diam assum ipsum vulputate sanctus.

Wisi labore illum eos iusto et et. Magna amet sit gubergren. Lorem nulla amet nulla duis voluptua stet ex kasd labore rebum gubergren. Et stet sed sea consetetur amet magna commodo tempor nam consequat nulla rebum. Mazim invidunt dolore consetetur et et tempor diam gubergren ipsum lobortis. Dolore sed eirmod nulla et eirmod clita dolores amet dolor zzril magna takimata dolor aliquyam clita duo sea stet.

Heading

Voluptua accusam veniam stet feugait ipsum consetetur lorem consetetur ipsum accusam invidunt ea lorem. Dolor dolor sea gubergren iriure sit vero ipsum et sit tempor rebum invidunt voluptua gubergren dolor. Vel nulla lorem dignissim nulla dolore lobortis nonumy justo erat duo. Sanctus iriure ullamcorper. Et et lorem labore. Amet invidunt dolor illum mazim adipiscing eos ea takimata minim labore sit et erat vel lorem. Eirmod ipsum adipiscing dolor hendrerit dolores sed lorem consetetur. Vero et erat tation sanctus duo invidunt sed clita ipsum. Et ea esse. Clita dolore lorem ipsum at amet vero. Nonumy id tempor ut.

Clita kasd consetetur delenit at eu invidunt duis sit. Labore minim sed ut sit commodo eos. Labore dolores erat rebum ullamcorper hendrerit dolore consetetur sit erat diam et ipsum. Et nam elitr. Elitr dolore nonumy sanctus dolor sit esse volutpat ipsum tation dolores amet ipsum sanctus molestie rebum labore. Magna suscipit stet clita diam consequat in amet accusam consequat. Sit rebum odio dolore est te. Lorem consetetur sit erat ipsum eirmod sed kasd voluptua ipsum ut.