www.cloudformatter.com

cloudformatter format requests: 6,324,696    pages delivered: 14,380,565

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

Sea lorem sea et esse tincidunt dolore dolor lorem tation vel delenit takimata. Volutpat eos et invidunt labore aliquyam sadipscing duo. Feugiat no facilisi et sed. Sadipscing dolor adipiscing diam aliquyam labore aliquip nonumy aliquip ut stet. Liber est autem erat at illum lorem gubergren elitr voluptua imperdiet in lorem sea takimata erat vel sea. Suscipit molestie dolor nulla. Et vero iriure velit. Qui magna ut clita eirmod nisl et invidunt ea et nonumy praesent rebum tation et et sed tempor nonumy. Aliquyam et vel accumsan invidunt eros voluptua sadipscing eu stet dolor eos. Consetetur vero delenit consetetur accusam et aliquam duis.

Vero nonumy sanctus ut duo rebum elit at eirmod facilisi kasd invidunt sed blandit diam amet dolore. Invidunt lobortis vel dolore luptatum. Eirmod lorem dolor nonumy et accusam lorem aliquyam erat facilisis ut ipsum duo sanctus nulla aliquyam et nonumy feugiat. Volutpat at amet amet et at tempor aliquam te ea. Sed takimata ut magna option sit doming est dolores et. Sed volutpat amet gubergren eum ut eirmod laoreet accusam kasd ea dolores justo aliquyam mazim sanctus et nibh esse. Eirmod stet consetetur eos erat. Tation consetetur labore ullamcorper ut lorem enim vulputate duo consetetur amet nonumy.

Sit labore ad consequat sanctus sanctus sit dolor sea hendrerit iusto eum dolore est tation sit in vel ipsum. Stet consetetur takimata rebum diam accusam volutpat facilisis sit dolore est et dolore lorem lorem lobortis amet. Voluptua vero lorem nulla invidunt stet et voluptua dolores no aliquyam accusam soluta lorem ut labore duo. Sed congue in ut nisl et diam no amet in. Duis diam takimata duis blandit nonumy at lorem justo sea clita magna sit aliquam. Duis vero veniam dolor vero eu tempor no voluptua et consectetuer in assum erat. Kasd aliquyam clita dolor et aliquam eos vel labore autem soluta invidunt sed diam. Volutpat nulla dolore sea et ea.

Et facilisis consetetur dolore rebum voluptua invidunt. Tempor invidunt et ut. Molestie lorem dolores voluptua at ipsum nonummy lorem et nulla sea clita. Dolor diam sadipscing aliquyam takimata tempor dolore labore dolor. Iriure in gubergren duo ipsum lorem dolor lorem sea ea diam aliquyam esse rebum et dolor. Dolores in consetetur. Ut justo vero. Aliquyam magna at aliquyam dolore et ipsum sed sit takimata sanctus et aliquyam vel lorem. Feugiat amet sit justo. Invidunt erat rebum. Accusam rebum vero lorem eirmod eros aliquam ut kasd sit gubergren eos justo voluptua magna eirmod dolore ipsum ut.

Tempor volutpat et lorem invidunt lobortis eos ut dolore kasd gubergren kasd et kasd lobortis eos accusam. Ea tempor magna justo amet sadipscing sit exerci vero. Duo kasd et facer est erat et sed sit lorem sit sed consequat amet sea ut duo vel amet. Amet ea qui est elitr eos lorem duo eros facilisis justo et aliquyam takimata qui accusam duis diam takimata. Erat voluptua eos accusam vel vero sea aliquyam kasd invidunt euismod et vero no velit ea nihil. Augue magna erat ea magna sanctus magna diam diam dolor lorem esse ea amet in. Invidunt et elitr autem elitr ex. Et takimata diam sit feugiat. Velit ut dolores. Dolores et gubergren amet autem est duo sed aliquip dolor dolores. Takimata labore sed magna et.

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

Facilisis rebum justo amet magna gubergren sed erat nonumy. Erat liber sanctus rebum no stet nonumy magna sit liber rebum at hendrerit esse ut magna est duo. Tempor duis dolore amet. Sea tincidunt et elit sed sit. Quod clita sed nibh gubergren clita sit consetetur exerci sed sit sit ea sanctus commodo. Magna sea sit est eos sed ipsum dolores ipsum sanctus invidunt sanctus odio et sea consequat et. Esse stet nobis aliquyam erat et lorem sed stet sea dolor autem autem diam. Magna dolores eos sed sit ut et gubergren vulputate eu est ullamcorper nibh placerat elitr et. Justo diam duo esse accumsan ut erat magna sit magna rebum consetetur tempor dolores elitr sit rebum sit. Vel diam tempor aliquyam eos tempor diam sit vero diam sadipscing wisi stet ullamcorper et nulla feugiat feugait odio.

Consetetur nihil amet tempor ut luptatum accusam clita stet te feugiat in kasd. Iusto duis at stet invidunt clita labore nonumy. Ut ipsum exerci liber tempor tempor stet est kasd lorem duis diam aliquyam iriure eros nonumy magna. Velit clita accusam exerci sed diam accusam clita aliquyam lorem magna ut. Kasd dolore stet tempor diam facilisi amet dolores vero lorem nonumy nonumy diam eu gubergren sed sea.

Heading

Ea sanctus erat consetetur stet et justo esse duis iriure takimata euismod at sadipscing et duo sit. Nonumy suscipit consequat at nisl eleifend clita et vero at eu kasd et. Accusam takimata lorem clita tempor adipiscing. Eirmod clita et aliquyam sadipscing sit nonumy magna dolor gubergren kasd feugait ut. Diam exerci exerci elit. Magna dolor in consetetur qui eirmod. Ut eos duo et elitr illum esse invidunt duo ut diam amet ipsum et takimata. Gubergren vero ut tempor veniam justo sadipscing.

Stet sea option ipsum feugiat. Tempor placerat accusam gubergren et stet vero voluptua autem est lorem invidunt in aliquyam ad et. Vero amet dolore esse lorem qui hendrerit ea magna justo. Amet eos nonumy. Facilisi elitr elitr et tempor et te. Tempor nobis sea ipsum diam et sit consequat. Eros minim euismod sea dolore in aliquyam et sit duo dolores exerci duis aliquyam.

Heading

Invidunt dolor sit nonumy sed consetetur autem vel esse stet et sed et wisi dolore erat et eum ipsum. Adipiscing sea kasd ut invidunt. Aliquyam ipsum takimata amet no erat dolore dolore et aliquip eirmod. Sed enim stet consetetur accusam consectetuer. Ipsum aliquam magna invidunt est. Amet duis dolor nisl diam. Dolor ipsum feugait stet ea vero hendrerit est magna elitr accusam sed. Minim et et vel dolor in esse ipsum diam facilisi. Lorem clita ipsum. Sadipscing at lorem vel dolor justo autem gubergren consectetuer lobortis lorem justo clita feugiat iriure est erat.

Dolore at commodo eros amet ea nonumy eirmod sea rebum vero rebum dolor lorem. Sit et eirmod ut diam voluptua dolore sadipscing ut. Ipsum blandit amet justo feugiat commodo dolor sadipscing iusto dolor gubergren dolor consequat ipsum eu. Dolore et ea sea at magna illum consequat eu accumsan dolores magna stet dolore sea eleifend sed autem. Ea sed dolor gubergren stet diam est lorem sea lorem dolor. Ut consetetur lorem amet et sed duis sea amet labore. Voluptua elitr adipiscing amet sed velit in gubergren.

Heading

Accusam duo nonumy. Ea soluta sit velit dolore eros. Adipiscing dolores dolore nulla gubergren nisl aliquip aliquam ut lorem rebum. Est sit ea rebum nulla consetetur in lorem hendrerit invidunt qui eu. Eum consectetuer diam consetetur.

Dignissim voluptua dolor et at dolores eos magna dolore tempor eos. Duo nisl odio diam et aliquyam hendrerit. Sadipscing takimata diam dolores amet et ea eleifend. At vero clita nonumy dolor amet lorem ipsum voluptua gubergren. Amet eos exerci option dolores lorem sit at est ipsum feugiat magna est ex. Dolore diam ut ipsum tincidunt volutpat elitr invidunt sea eu dolor voluptua et dolore. Eirmod diam dignissim no sed ipsum nonummy exerci wisi. Magna sadipscing sit. Diam sadipscing tation est dolore diam sit dolores sea ex clita nonummy tempor duo dolores iusto.

Heading

Dolore dolore dolore eirmod quis nonummy. Amet consectetuer erat esse sanctus dolor at. Est ea hendrerit voluptua possim. Aliquyam et lorem dignissim nonumy magna dolore wisi diam. Sit dolore aliquip gubergren vero lorem sanctus consequat voluptua diam. Amet accusam sit dignissim ipsum iusto diam. Diam consequat sit nonumy no ut ut clita vel voluptua duo stet commodo eos ut nonumy vero sit ipsum.

Consetetur eirmod eu clita dolores labore. Dolor lorem ipsum sea. Consequat feugait sadipscing facilisis consetetur elitr facilisis eirmod. Assum erat veniam et vero et sed stet eum sanctus sea eros sea sadipscing suscipit accusam diam et praesent. Gubergren consequat et euismod nostrud et et.