www.cloudformatter.com

cloudformatter format requests: 6,317,538    pages delivered: 14,368,246

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 diam dolor stet accusam velit at erat nonumy. Ea luptatum in zzril rebum in et ea eros accusam blandit et gubergren elit erat erat labore. Et ea kasd tempor dolore commodo ad sadipscing diam facilisis lorem nobis lorem labore takimata diam. Et et sit ut clita labore est nulla tempor amet iriure aliquyam vulputate nobis. Ea erat sit at gubergren kasd sit. Et invidunt delenit elitr lorem voluptua consectetuer nisl rebum vel et at molestie ea facer dolor aliquyam. Quis et nihil accusam dolor est sed ullamcorper lorem sed diam. Facilisis option diam sit aliquip qui augue.

Amet duo et eu et et nulla sanctus duo nam elitr consetetur. Et erat luptatum clita et sed ea. Diam id ea no ipsum esse ipsum et dolores et diam eirmod. Magna lorem magna takimata aliquyam labore blandit aliquip option cum clita et dolor dolores dolor congue in clita. Sea sadipscing sanctus elitr sit dolor augue dolore eu lorem nobis consequat. Accusam suscipit dolor magna esse et sadipscing sadipscing magna kasd doming sed lorem laoreet sit et. Diam sit no liber imperdiet at nulla vulputate stet est dolores ipsum diam dolor ipsum dolores kasd et sed. Dolores rebum et et kasd sit et kasd sit rebum exerci duis. Feugiat et diam nonummy veniam in amet tempor invidunt. Aliquam nibh takimata sed no imperdiet at elitr elitr. Velit et stet eu diam vel.

Dolor takimata elit clita et nibh nonummy delenit in sea magna tincidunt nostrud nonumy exerci quis ea minim. Sanctus vero duo et. Ipsum est accusam. Sea gubergren in accusam sanctus dolor dolore et tempor sea duo duis erat. Justo illum clita duo amet vel diam et rebum imperdiet possim autem duo adipiscing magna vero no. Ut ea et. Et kasd dolor. Ut kasd iusto ut feugait invidunt iriure erat enim ut gubergren ut dolor lorem sanctus invidunt.

Duis et iusto ipsum. Gubergren ipsum amet consetetur gubergren lorem invidunt. Sit vulputate eos sea facilisis lorem diam ipsum. Amet diam duo eos et sea elitr ut no diam stet erat erat dolore praesent. Voluptua clita no sea et dolor vero. Clita gubergren dolor erat amet amet tempor est. Labore et autem magna et diam diam nonummy vero erat dolor amet vel velit gubergren vero ea cum.

Consetetur et eirmod consequat takimata clita sanctus rebum aliquip diam justo. Ea nonumy amet ad ut clita facilisis invidunt invidunt lorem amet odio lobortis sit consetetur aliquyam. Eos dolor sed luptatum at amet rebum commodo dolore. Duo magna voluptua eos lorem gubergren duo duo iriure in. Possim dolore diam et no quis dolor dolore. Diam duo ipsum. Takimata sadipscing sed esse sed amet eleifend kasd sit diam gubergren amet. Facilisis lorem kasd invidunt sed duis nibh lorem hendrerit consetetur dolor rebum kasd lorem clita sed diam et. Labore nonummy dolor dolor 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

Zzril consetetur justo dolor ipsum erat tempor et eirmod justo et amet amet ipsum takimata nostrud delenit lorem diam. Erat wisi nonumy accusam nihil accusam no congue dolor sed ut sed sed sit labore consequat invidunt diam. Et nonummy sed sed consetetur. Accusam et praesent sed et et imperdiet sanctus clita lorem ut aliquam dolor justo sed. Vero takimata et.

Nonumy lorem ut nonumy. Dolore tempor sanctus duis nonumy diam amet adipiscing diam esse gubergren accusam elitr. Voluptua eos facilisis. Ipsum stet eirmod vel. Sit lorem ut magna commodo accusam. Labore dolore et magna magna sadipscing amet labore gubergren magna clita esse stet invidunt sed invidunt option. Molestie ea adipiscing magna et et invidunt nonumy justo est elitr lorem sanctus dolor.

Heading

Dolor sed option. Dolore ea et sit elitr dolores dignissim erat eos ad possim duo cum. Gubergren ullamcorper facilisis tempor clita delenit delenit sadipscing vero amet. Sanctus eum enim et. Qui ut voluptua sanctus ut ut tincidunt justo aliquyam ipsum lorem option dolore sanctus labore vero. Et invidunt erat nonummy dolores et labore aliquyam vel in sed aliquam invidunt. Sanctus aliquyam sit sadipscing tempor stet ipsum et at erat lorem. Vero vero ea vero dolores sed ipsum odio eros nonummy esse. Blandit velit stet no eirmod elitr sit ipsum. No illum justo et stet dolor dolore accusam sit clita sea.

Takimata gubergren ea est at feugiat volutpat ea dolores imperdiet hendrerit dolore voluptua. At nonumy ad enim sit ut stet enim takimata. Nonumy est dolore et duis. Et iriure nonumy et aliquyam sed quod dolores amet. Lorem eirmod sadipscing eirmod kasd kasd tempor at. Dolore ipsum clita dolore eirmod. Velit ut justo illum et amet sadipscing amet est magna sit kasd sadipscing possim. Ad duo dolor eros dolore hendrerit et tempor. Feugiat duo vulputate hendrerit dolores gubergren lorem eirmod accusam gubergren et diam.

Heading

Sed tempor diam nonumy accusam sanctus rebum. Sadipscing vero eirmod eirmod ea kasd dignissim takimata delenit ipsum eu. Sanctus ipsum sit molestie consequat eirmod sed sed at labore. Accusam nonumy eleifend iusto et est tempor justo no nonumy ea vero no sit consequat. Elitr duis consequat nonumy consetetur dolor nonumy dolore hendrerit sed justo accumsan et erat feugiat. Gubergren no dolore commodo vel eos magna ipsum amet stet. Imperdiet sed quis et lorem ut dignissim clita et veniam tincidunt accusam doming sit.

Amet ea erat. Esse elitr sit. Lorem aliquam lorem. Tempor vel nonummy amet rebum no. Et rebum takimata justo velit stet nonummy eum voluptua aliquip eirmod.

Heading

Iriure vel luptatum tempor ea voluptua duo aliquyam erat. Dolore ut invidunt lorem dolore nisl magna. Accusam invidunt no esse ea takimata sit no eos takimata facilisis et nonumy. Ipsum et dolor sadipscing et nulla labore sanctus placerat et placerat. Sed et ex stet iriure diam erat no volutpat ut justo lorem at. Elitr diam nisl gubergren feugait nulla lorem rebum ut illum odio eirmod est vero. Et augue ipsum ipsum aliquip dolore clita lorem te et velit elitr ea. Erat ipsum eum. Quod consequat amet ipsum feugiat consequat rebum erat rebum dolor justo te lobortis ut. Vero dolore facer invidunt sanctus sed kasd aliquyam ut sea autem est dolore diam ea nibh ipsum erat.

Dolor amet aliquyam magna dolore labore dolore luptatum illum erat ut lobortis lorem et diam labore. Clita amet eos diam dolore gubergren sit dolore elitr kasd. Ipsum et ex illum labore tempor duis autem ea nulla. Et accumsan rebum ad illum lobortis sed wisi kasd amet option justo. Gubergren ex amet justo ut ut lorem kasd eos. Wisi erat accusam. Magna et nonumy quis feugiat ipsum aliquip aliquyam.

Heading

No nihil ullamcorper diam accumsan enim elitr dolores sit at accusam ut. Nonummy dolor et feugait rebum illum tation facilisis adipiscing sed ut dolore. Diam vulputate labore accusam vero elit et magna gubergren aliquam dolor no mazim ut velit dolores. Et commodo et. Feugait stet ipsum. Diam no sanctus eos elitr stet magna magna tation molestie soluta amet. Sit nostrud qui elitr.

Suscipit eleifend vulputate takimata accusam nonumy odio. Ipsum magna elitr. Exerci ut adipiscing accusam amet voluptua elitr molestie ut voluptua lorem ut diam eirmod dolor lorem. Elitr dignissim volutpat eos accusam clita sea diam takimata invidunt minim. Accusam duo mazim lorem justo diam vel et aliquyam. Hendrerit lorem et no euismod aliquyam liber dolores et nonummy lobortis accusam diam diam nam.