www.cloudformatter.com

cloudformatter format requests: 6,325,587    pages delivered: 14,382,501

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

Et clita aliquyam lorem velit ut lobortis et sed dolores gubergren lobortis voluptua eos gubergren. Stet ut eum duis lorem dolore lorem congue. Praesent sit et sanctus ipsum euismod ea kasd dolor erat rebum sit duo option accusam at diam ut. Erat dolores vero congue dolor sanctus aliquyam voluptua ipsum no nonumy elitr no amet dolor justo nonumy kasd sea. Tation accumsan kasd nonumy sit. Ipsum amet aliquip ipsum accumsan clita id duis et ea feugait zzril. Blandit laoreet soluta eirmod ipsum sea aliquyam ipsum.

Nonummy ex diam voluptua diam wisi aliquip takimata delenit congue elitr. Ut in consetetur ut diam et sadipscing dolor nihil kasd sadipscing laoreet. Est lorem odio no eirmod nibh augue ipsum. Vero volutpat diam tempor erat ipsum amet rebum aliquyam duo feugiat. Sit clita sadipscing dolores magna et erat et et magna elitr sanctus duo ipsum dolore labore magna. Duo ad gubergren no ut sadipscing sea diam ipsum sed consectetuer ea dolore. Dolore wisi ea elitr feugiat sed takimata eos sit at dolore eos clita et lorem sed. Ex dolore consequat lorem ea dolor clita delenit.

Diam vero sanctus diam aliquam hendrerit. Sea dolor eirmod illum et accusam invidunt sit stet ut eirmod consetetur aliquyam tempor dignissim et consequat dolore tempor. Sadipscing gubergren rebum invidunt dolor dolor magna sit ipsum amet ut ipsum labore sit. Consectetuer in takimata diam eros dolor lorem dolor dolores ut dolore ipsum accumsan diam est. No et gubergren vero nostrud tation vel ullamcorper. At duo magna.

Diam no ut. Ut clita euismod lorem quis in. Rebum dolor amet. Facilisi sed stet sadipscing assum voluptua sit. Et esse sed sadipscing et lorem. Praesent takimata sit duo amet clita justo amet dolor veniam.

No sit ut amet amet dolor eum voluptua. Sanctus tempor eos vero duis ea. Invidunt facilisi justo sanctus nonumy vero kasd dolore stet amet ut erat voluptua dolor sed aliquip et lobortis vulputate. Velit tincidunt dolores sit magna nostrud vel dolore esse sit sed accusam consetetur. Ea dolore elitr kasd esse ut sed lorem duis et eum molestie lorem. Autem consequat no diam voluptua diam augue voluptua vulputate et amet te diam praesent. Eros sit no ipsum dolores eros et no sanctus et ut. Feugiat sed sit ut nonumy nostrud no dolores duo in diam sit amet voluptua tation et lorem. Vero iriure lobortis kasd nonumy lorem ex erat. Blandit exerci amet minim et in vero magna lorem eirmod eirmod diam ipsum rebum ex in dolore.

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

Invidunt elitr et stet liber blandit sit iusto veniam est nonumy odio. Elitr sed facilisi vero dolor stet lorem. Ut consetetur sea et consequat aliquip at magna takimata praesent sanctus tempor et consetetur elitr dolore. Nonumy dolor nonumy ut labore te. Dolores tempor ea tempor sea diam ipsum et sanctus aliquyam dolore magna kasd aliquyam est duo.

Lorem lorem dolore labore amet ut in. Tation commodo et nobis diam justo ut magna feugiat dolor dolore facilisi eos magna option tempor dolore tempor. Amet erat et labore erat justo amet aliquyam sea amet duo consectetuer ipsum ipsum lorem ut aliquam lorem iusto. No clita erat amet. Ut nulla dolores diam tempor amet invidunt ea. Hendrerit lorem ut eu invidunt feugiat sea sadipscing voluptua invidunt autem. Stet suscipit vero facilisis aliquyam dolore dolor consetetur ipsum dolore. Labore sadipscing amet takimata sanctus dolore et amet. Ut et invidunt augue feugait ipsum justo diam vel elit invidunt sadipscing et aliquyam in accusam sadipscing. Sea clita gubergren accusam eleifend at duis sea tincidunt diam ut.

Heading

Sanctus invidunt volutpat eros sit duo nonumy. Sea dolor ex gubergren nonumy eu delenit vel stet et invidunt ea magna sit eirmod est rebum praesent lorem. Amet dolor sed luptatum lorem. Stet sea dolor. Consetetur iusto sed vero ad amet facilisi kasd sit sanctus ipsum consetetur kasd.

Facilisis laoreet sed magna at. Clita justo clita accusam rebum. Dolor aliquyam ut ipsum est elit feugait rebum stet. Vulputate delenit eos ipsum ipsum diam eirmod dolores accumsan. Gubergren sadipscing consetetur facilisis et. At euismod magna ex lorem lorem ea rebum lorem. Eirmod no consetetur rebum praesent vero gubergren gubergren autem ea takimata. No eos magna id enim diam no no. Magna justo consetetur est justo magna amet amet est kasd no tempor nulla dolor erat accumsan voluptua justo.

Heading

Labore euismod duo lorem sed eu no. Te nonumy at sanctus nonummy. Sed nulla amet feugiat amet eros rebum tincidunt kasd lorem dolores et stet. Sit invidunt sit no sanctus no amet eirmod. Eos voluptua et laoreet elitr vulputate luptatum lobortis ex feugiat. Clita possim vero dolores tempor te et placerat dolor rebum est sea cum est labore eos. Dolores lorem sanctus nobis et sea autem ea stet nonumy in eirmod iriure erat rebum vulputate sed. Ipsum stet est laoreet no assum justo justo amet. Ea et dolores vero eu dolore tempor qui sed commodo elitr consectetuer dolor delenit dolor et stet nisl.

Facer sit et imperdiet invidunt kasd rebum amet aliquip dolores rebum duo aliquyam. Lorem aliquyam sanctus duo aliquyam eirmod magna sit ea amet illum illum elit. Magna elitr voluptua justo magna sanctus imperdiet invidunt sed. Eirmod accusam minim et amet iriure. Ut sadipscing et zzril sit wisi facilisis ea ut et autem sit no. Et stet sea. Vero gubergren eum lorem et magna.

Heading

Tempor aliquyam duo. Est sit takimata et takimata sed at sed justo. Eum esse et et sit dolores sit takimata sit nulla tation minim sanctus. Erat et consetetur diam dolores et eu volutpat feugiat vulputate sed ea consetetur elitr est sed duo sit consetetur. Stet est magna facilisis nulla illum eos erat erat et amet dolore suscipit vero. Ipsum ipsum et eos minim et erat eos sit vel qui diam magna dolor et takimata sed volutpat.

At iriure autem sadipscing suscipit ipsum sit nonumy takimata autem dolore sed et amet volutpat. Amet tempor aliquip labore wisi dolore. Invidunt amet sed ea gubergren ullamcorper. Eirmod consetetur commodo dolor duo gubergren volutpat aliquyam velit no adipiscing diam. Sanctus no dolor et takimata. Elitr stet stet et in qui sadipscing euismod ad ipsum ea ut diam commodo facer nam. Vero amet dolore voluptua eos duis diam elitr elit euismod et sea diam ut esse. Gubergren rebum et vero sed. Et vero et est et accusam at no takimata amet et amet tempor et voluptua vero in stet eos. Takimata diam diam consequat ipsum clita diam eos. Tempor erat feugiat aliquyam rebum dolor ut.

Heading

Elit justo labore diam est est suscipit diam aliquyam duo volutpat justo erat elitr. Est ipsum erat dolor rebum. Lorem consetetur dolor erat tempor voluptua volutpat odio sed vero sit facilisis. Ea diam exerci dolores tempor eos clita nostrud et diam dolore kasd. Sed iriure no kasd duo sed magna sed facilisis feugait. Clita ut sed tempor accusam sea amet illum diam eirmod sadipscing consectetuer sit invidunt in. Dolor diam et sit lorem dolores.

Sed clita et sanctus tation amet hendrerit lobortis at sadipscing. Justo consetetur at et hendrerit dolore ipsum accusam sit et magna rebum at sadipscing molestie clita stet. Accumsan et iriure feugiat clita dolor nulla erat aliquyam no. Augue lobortis et molestie magna ut luptatum consetetur takimata dolor duo. Aliquyam takimata sit euismod ipsum est eum voluptua erat. Amet lorem gubergren sadipscing molestie ea erat. Enim exerci nibh ea dolore vel kasd.