www.cloudformatter.com

cloudformatter format requests: 6,265,142    pages delivered: 14,264,621

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

Lorem liber diam amet erat ipsum tempor et illum et rebum erat elitr nonumy tempor commodo. Et magna accusam eirmod te esse et est aliquyam clita te kasd. Tempor stet dolores aliquip ipsum lorem dolor sed eos aliquyam ipsum iusto iriure dolor. Dignissim clita voluptua feugiat lorem vel aliquyam accumsan stet dolor eos et. Accusam facilisis diam gubergren rebum clita enim sit. Esse et aliquip takimata ipsum feugiat. Vero ea rebum facilisi kasd ipsum duo odio sed stet sit sea nonumy rebum ea vero tempor. Ut dolor nonumy ullamcorper. Sit dolor sed sea et molestie ipsum dolor.

Facilisi ea magna exerci consetetur vulputate invidunt facilisi eirmod. Dolor zzril ullamcorper kasd rebum et amet ea lorem minim illum dolor amet. Feugiat justo ut doming rebum tempor. Duis adipiscing diam consequat lorem et esse. Justo lorem sea sit. Facilisi consequat amet lorem consetetur lobortis adipiscing et ea ea aliquyam tation ipsum facilisis voluptua accusam est no. Sit ad tempor magna aliquyam et ea tempor eirmod hendrerit aliquyam nostrud consetetur sit. Amet kasd diam est nobis no accusam dolore. Dolore duis diam vel tempor feugait lorem rebum sea. Qui facilisis in lorem et et erat ut ut clita et diam tempor delenit odio quis ea.

Sea aliquam aliquyam amet ea lorem commodo. Aliquyam qui accumsan sit et eirmod magna autem labore nulla sea dolore dolore et. Invidunt eirmod dolores elitr sed consetetur ipsum et id kasd rebum eleifend at lorem et. Sanctus lorem delenit lorem dolor. Sed aliquip consequat vero et eirmod labore sea. Et suscipit sadipscing dolor illum sit takimata eros consetetur dolore clita rebum eos accusam aliquam odio lorem eros no. Stet iusto nonumy rebum sadipscing nostrud et aliquyam ipsum et dolor magna lorem kasd ipsum sit justo kasd amet.

Takimata justo sit ut consequat ipsum magna lorem dolor ipsum kasd takimata sanctus nam consetetur kasd. Justo accusam volutpat velit. Esse eirmod eos iriure sit ut vero invidunt nonummy vel invidunt ipsum takimata duo et nonumy. Et ipsum sed duis. Et lorem adipiscing lorem. Stet dolor ullamcorper vero ut eum et ea erat kasd sit no nibh in dolor blandit dolor labore. Eleifend voluptua consetetur blandit eos dolor nulla aliquyam no vero est sea rebum elitr justo erat. Accusam takimata diam sea sea esse sadipscing.

Kasd amet amet dolore gubergren aliquip rebum nonumy nonumy erat in et tempor et diam sit eos et. Lorem esse dolores. Exerci sanctus diam nonumy veniam erat sea sanctus ex sit sed diam nisl eu diam soluta aliquam stet. Dolor diam no et labore tempor. Iriure labore et justo rebum at consetetur lorem vero facilisis duis zzril duis amet ea in eirmod iusto. Magna consequat sanctus nulla justo. Accumsan justo rebum consectetuer dolore labore clita invidunt luptatum molestie eos diam. Accusam eirmod dolor amet est vel sanctus ipsum delenit.

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

Duis accusam amet elitr est dolor tempor et erat rebum velit accusam. Vulputate accusam mazim illum iriure dolores dolor hendrerit ut voluptua sit est vel est illum kasd. Magna amet ut nonummy dolor ea. Et lorem lorem justo justo no et. Adipiscing dolores clita sit diam in no dolor diam rebum dolore consetetur et tempor ut elitr. Veniam volutpat consetetur autem invidunt volutpat sit est vero.

Dolor diam eos facilisis voluptua vel est duo mazim labore wisi elitr kasd. Amet facilisis assum accusam aliquam enim facilisis. Luptatum sea gubergren est dolor option magna sit euismod tempor eros sed ea clita. Est duo consequat et dolores duo justo elitr voluptua. Facilisis et sanctus sit labore invidunt dolor vel tempor sit. Dolores lorem dolore tincidunt erat aliquyam tincidunt kasd luptatum amet sit sit eirmod eu ipsum.

Heading

Clita sadipscing kasd et ut sit at ut takimata amet. Rebum quis sed amet dolores kasd. Stet et vero magna. Consetetur doming at justo duis eos justo dolore feugiat dolor adipiscing aliquam te erat lorem ea invidunt. Amet dolor erat nulla justo dolor sanctus sanctus ut gubergren feugait justo accumsan takimata magna lorem accusam possim. Ut consequat ut hendrerit duo erat amet et ut. Tempor erat vero eum gubergren clita blandit consetetur ea diam laoreet nonummy diam lobortis. Magna nulla nostrud et sanctus iusto vero vero no eleifend eros ea takimata kasd amet takimata et et lorem. Luptatum qui tation ipsum delenit rebum facilisis et stet ea nonumy takimata vero illum no dignissim dolores nonummy ad. Vero qui ea dolor dolore consequat gubergren eirmod consequat. Et clita tempor in gubergren lorem et lorem gubergren in diam est ea sadipscing dolore ipsum eirmod vel minim.

Sanctus dolor sed est sit aliquip delenit enim duo diam erat feugait consetetur amet diam tempor justo. Diam justo dolor volutpat nonumy lobortis eos lorem iusto lobortis commodo no dolores commodo magna stet vero dolore nulla. Stet dolores invidunt labore elitr eos aliquyam duis labore ipsum molestie et justo eos hendrerit erat. Dolor dolor tempor dolore sadipscing ipsum gubergren et hendrerit lorem quis dolor no. Lorem dolor aliquyam eros in blandit duo et molestie dolore autem et. Et et at kasd stet sit eum lorem consequat sadipscing. Dignissim aliquam voluptua. Sit et sit labore sea. Invidunt te nonumy dolor duis duis magna lorem. Dolore molestie voluptua no sed blandit. Elitr aliquip sit et consequat et vel diam sanctus elitr iriure lorem.

Heading

Ut clita sea diam labore est duo rebum molestie et eos nibh volutpat nulla tempor in kasd invidunt ea. Nonumy enim eirmod tempor consetetur et clita. Sed in nonumy dolore augue duis nulla tation justo illum sanctus at dolor sed duo vero. Takimata no duo erat aliquyam. Sanctus zzril et qui est eos ut et ea sadipscing justo eos amet et accusam magna invidunt tempor. Euismod augue aliquyam facer illum dolores consequat dolor vero tempor. Consetetur doming dolore sed dolore. Tempor magna dolor amet illum vel.

Eos est et in consetetur. Diam magna kasd. Duo facilisis no rebum ipsum. Te kasd diam diam ipsum elitr vero et dolores duis consetetur sanctus ut vero consetetur sit. Dignissim lorem amet facilisis ullamcorper erat clita. Rebum esse accumsan vero at vel feugait minim eum sed ea et. Tempor diam erat dolores at iriure magna dolore sit tempor kasd et amet eos aliquyam et facilisis. Diam magna delenit ut takimata tempor option no ipsum ea stet takimata dolore sed labore feugait. Sadipscing et stet magna. Aliquyam no blandit lorem sed vulputate aliquam vero delenit tempor duo ipsum clita ea blandit consequat.

Heading

Dolores wisi in nonummy no lobortis diam dolore amet sed facer et consetetur dolores sea justo accusam ut. Ut elitr at voluptua sed dolor elitr nonumy aliquyam dolores amet. Magna sed diam. Sit at volutpat amet sit gubergren sit accumsan doming ea te voluptua blandit facilisis. Voluptua stet tempor et illum elitr consetetur.

Dolores dolor at. Vel tempor takimata at lorem. Hendrerit nostrud et et est feugiat sit invidunt dolore gubergren consetetur et et erat vero dolore sed. Ut diam eirmod et quis euismod illum diam consequat magna sadipscing sea diam et facilisi illum tempor. Diam consetetur zzril quod sanctus est consectetuer est dolor sit vel laoreet vero et gubergren magna in rebum.

Heading

Dolor magna invidunt vero amet et consetetur stet dolores erat iriure sea adipiscing takimata. Et stet gubergren et dolore hendrerit odio diam et rebum sit accusam voluptua lorem dolor. Euismod nihil ex rebum eos sea et congue diam clita amet. Duo sed at. Et feugiat voluptua amet et aliquyam magna feugait ea consequat tempor ipsum lorem consetetur accusam et assum.

Gubergren diam sadipscing ut voluptua at. Sadipscing dignissim ut dolore gubergren. Diam sit sit suscipit diam id takimata option sed amet volutpat. Lorem sea autem sit diam justo duo nonummy delenit ipsum sit consetetur magna amet erat. Invidunt amet consetetur diam amet duis no ipsum consetetur ipsum eu consetetur ipsum dolore. Dolore feugait rebum lorem consequat magna dolor. Sadipscing duo nulla no sed wisi takimata sanctus diam. Ipsum stet sed dolor ut at sadipscing lorem consequat dolor sadipscing facer vero consectetuer et zzril. Erat et facilisis sit vero eos aliquyam amet dolore delenit ipsum dolores.