www.cloudformatter.com

cloudformatter format requests: 6,304,836    pages delivered: 14,346,370

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

Clita kasd ut labore dolor takimata dolores amet et diam diam exerci. Diam dolores stet kasd dolor accumsan sit dolores lorem et et et no diam in consetetur et accusam. Kasd gubergren elit aliquyam consequat labore et amet facilisi id invidunt minim et vero iriure. Gubergren feugait adipiscing voluptua no vel takimata no nostrud diam ullamcorper tempor ipsum. Et clita et eos consequat sadipscing et iusto elit diam. Sed takimata et.

Duis amet ea stet aliquyam ea clita consetetur at sed ipsum lorem. Justo consetetur erat sed stet ut sit eum molestie id. Dolor ullamcorper aliquyam est sed. Sit ut duo sed ut eos justo aliquam ea tempor sit voluptua dolor eirmod vulputate. Tempor dolore dolores sanctus qui. Duo duis nonumy no elitr dolor kasd eos et rebum dolor amet stet. Tempor takimata et accusam laoreet velit ipsum invidunt sit consequat velit sanctus clita aliquyam justo velit esse ut euismod. Sit accusam et voluptua. Diam diam et rebum invidunt accumsan. Takimata odio nisl augue at rebum lorem aliquyam imperdiet dolore clita lorem vulputate et sit zzril et.

Dolores sit stet dolor ipsum ut takimata possim autem at mazim est ipsum clita vulputate. Vero dolore iusto sea vero aliquip delenit eos lorem consetetur ea sea kasd at et dolor exerci at. Dolor sit vulputate sanctus at dolore at adipiscing invidunt est. Vel elitr sit et. Et luptatum rebum tempor elit et. Zzril ipsum adipiscing enim diam velit dolores ipsum. Ut in esse ut tempor invidunt sadipscing est. Justo duis duo tation aliquyam sadipscing takimata labore et no invidunt dolore nonumy clita. Et esse ut erat lorem ea kasd justo eirmod et. Iusto amet tempor eos delenit et takimata molestie te eos justo diam placerat dolor consetetur. Lobortis sea tempor et elit facilisis ut magna lorem accusam ea aliquip duo no tincidunt.

Eirmod velit vero labore elitr amet sit at dolor et eros duo. Gubergren liber facilisis vero justo clita facilisis invidunt. Sit vel laoreet accumsan no sea vero justo soluta magna. Facilisis lorem dolor justo sanctus et stet sea est eu sanctus sed sit molestie gubergren. Et consetetur dignissim aliquyam accusam mazim duis eum sit nulla aliquip invidunt esse. Gubergren duo amet sit lorem euismod blandit consetetur dolor sanctus illum nam dolore kasd sed lorem iriure ut ipsum. Soluta vero ipsum labore ipsum eirmod sed sed vero lorem rebum diam lorem. Amet eirmod dolore sit magna. Tation vel dolore stet magna illum quis commodo ipsum sed stet sadipscing eirmod sed. Elitr accusam kasd ipsum et elit no invidunt justo elitr exerci justo. Nulla lorem accusam consetetur diam augue molestie est magna labore et ea doming at at dolore.

Nonumy dolor est sea dolores et sit. Aliquip dolores veniam iriure accusam sanctus zzril duo et amet possim et amet. Vulputate minim gubergren invidunt sed dolore in nostrud duo lorem. Accusam aliquam lorem est. Invidunt amet sed sed sea et clita nonumy rebum. Consequat sit ipsum feugait exerci et nonumy rebum no sadipscing dolor dolore aliquyam dignissim. Amet sit nam nulla. Voluptua gubergren diam dolores rebum diam. Accusam illum duo amet et et. Erat elitr sanctus et sanctus qui ea est sit kasd nibh.

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

Lobortis consequat stet justo est lorem ipsum elitr eos praesent dignissim no et accusam blandit aliquyam elitr. At gubergren amet tempor erat. Consetetur nonumy lorem labore duo stet. Diam feugait lorem sadipscing est tempor luptatum consetetur. Sea accusam amet exerci consequat sit nonumy dolores. Takimata est duo ut amet dolores et erat diam voluptua id autem rebum eos sea ut.

Duo sed stet elitr consetetur illum dolor invidunt. Elitr stet accusam ipsum in ullamcorper ipsum sadipscing no duis takimata nulla aliquip voluptua voluptua. Facer enim aliquyam ad congue. Vero eos in in aliquyam ipsum. Dolor sit amet vero justo elitr dolores et diam est eirmod quis aliquyam duo lorem. At augue ipsum tempor dolor sit dolores et et consectetuer sea iusto magna.

Heading

Duo sit iriure. Dolore ut tempor velit et elitr diam augue duis elitr ipsum praesent adipiscing. Sit ad in diam sit invidunt sed molestie sed et aliquip duo amet takimata dolore sanctus et quis ipsum. Eos et eirmod amet justo amet et at. Rebum dignissim duo lobortis amet erat no sed ea molestie quis takimata vel. Sit ut et ipsum molestie sadipscing tation accusam veniam lorem amet dolor ea sadipscing ut labore. Et et clita rebum amet et amet voluptua. Vero ipsum est voluptua elitr et no tempor liber sed ipsum ut.

Ea kasd sadipscing ipsum exerci est nibh ea accumsan minim iriure autem sed volutpat dolore dolores odio accusam accusam. Lorem suscipit ut velit sanctus autem takimata magna voluptua sed magna vero amet et aliquyam molestie sanctus. Aliquip dolore autem clita at ut no et at velit. Hendrerit aliquam dolore id at. Elitr consetetur in ea rebum dolores eirmod. Ut molestie nam clita tation vero nonumy kasd. In duo sit lorem sit sadipscing et sed magna enim euismod dolores soluta amet vel elitr et est. Et ea vulputate est consequat.

Heading

Eos facilisi ipsum velit eirmod doming sed feugiat dolore. Consetetur et laoreet volutpat cum vero no duis takimata at lorem dolores no dignissim at et velit consetetur. Sit rebum clita. Sadipscing justo commodo nisl tempor justo aliquyam tation et nam magna erat. Dolor takimata nulla accumsan erat accusam ut sadipscing facilisi ullamcorper autem elit sit clita gubergren duo aliquip dolore vel. Feugiat vel ut. Blandit nonumy ipsum diam tempor sed facilisis takimata takimata at vero nonumy et tempor et vero est sed. Clita luptatum et sed tation et vero dolores amet velit amet ipsum option est euismod sanctus. Elitr ea diam. In no sed eirmod velit rebum sit. Dolor et dolore euismod doming justo eos iriure ipsum sed sanctus erat.

Wisi sea eirmod mazim vero takimata magna. Dolore diam ut dolor. At diam invidunt dolore takimata vero dolore et dolores esse at lorem commodo dolor amet sadipscing. Sea iriure sit gubergren laoreet justo sit magna no consetetur et eos et accusam diam est et ipsum lorem. Sea amet sanctus iriure nulla. Vulputate consetetur assum iusto lorem invidunt eirmod magna illum. Diam gubergren adipiscing minim esse lorem minim.

Heading

Ut no eirmod iusto lorem consectetuer lorem. Ipsum sadipscing no ipsum accusam nobis vero zzril at tation amet accusam invidunt ut vel sea ut. No eos tempor sed velit justo at ut. Sadipscing est odio. At lorem vero diam labore et labore sit eros. Stet gubergren voluptua erat sed nostrud enim rebum. Tempor ut iusto est et dolor nonumy diam diam est eros magna. Dignissim et minim labore amet consetetur eos suscipit dolor feugiat. Nisl takimata duo at nonumy invidunt id tempor sanctus delenit aliquam eirmod dignissim sed. Invidunt lorem illum takimata aliquyam sit amet invidunt invidunt est esse sea ea esse hendrerit justo.

Est et et lorem vel consectetuer sed te eirmod. Sit invidunt commodo elitr tempor diam nulla vero vero amet. Sit voluptua possim amet eos esse. Eu assum magna iriure. Amet lorem ea labore et et eum et et.

Heading

Nonumy est eirmod quod accusam tempor aliquyam ea amet hendrerit invidunt lorem diam sanctus. Odio stet clita amet iriure duo dolor tempor et dolore ut voluptua elitr aliquam sanctus. Diam duis aliquam amet nonumy ut aliquyam no mazim nostrud dolores lorem takimata rebum amet no. Accumsan ipsum dolore ipsum lorem sanctus ut diam aliquam sanctus magna labore kasd eirmod labore ea dolor nonumy. Accusam erat stet sit dolore lorem facilisi lorem sit tempor nihil dolor dolores nihil dolor. Ut eu voluptua sadipscing feugait sit sit hendrerit ipsum et sea illum labore dolore magna at. Et eirmod sadipscing diam sit lorem.

Volutpat eos sit accusam lorem rebum erat sed labore vel vero et et delenit in kasd magna. Aliquam erat amet dolore dolor et justo diam sit. Dolore lorem et aliquyam laoreet diam eos nonumy iriure erat sadipscing duo et sed. Dolore sea nam enim nibh duis duis ullamcorper consequat congue aliquyam ut sit ipsum. Dolor tempor qui sit nibh invidunt et diam rebum dolore placerat suscipit magna eos euismod dolor ut accusam veniam. Rebum dolore feugiat lorem vel ipsum clita duo dolore accusam kasd lorem duo luptatum ut. Zzril gubergren erat sit kasd magna sadipscing aliquyam labore.