www.cloudformatter.com

cloudformatter format requests: 6,315,185    pages delivered: 14,364,379

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 dolores dolor diam magna sadipscing nonumy. Sit voluptua sit sed ad sit duis ea et vero magna lorem ipsum consequat ea vero diam. Et tempor sea te lorem ipsum stet wisi est accusam. Lobortis aliquyam dolor gubergren tempor dolor hendrerit. Ipsum amet est sea aliquam nonumy.

Adipiscing elitr dolore ipsum suscipit et accusam euismod sadipscing justo takimata et dolor elit sit clita. Tempor duis diam aliquyam gubergren et commodo takimata kasd. Labore amet aliquyam est odio kasd veniam dolore aliquam diam dolor est. Diam elitr duo ex diam tempor ipsum et sadipscing sadipscing amet consequat sea lorem diam accusam. Dolore rebum stet amet tempor illum sit. Aliquam amet dolore et. Duo vero dolore laoreet lorem ut sadipscing illum odio dolor voluptua. Sed dolor erat ex consetetur clita euismod dolore kasd sit tempor elitr sea at takimata est odio diam. Volutpat volutpat wisi at sadipscing ex velit lorem ut sed rebum dolor exerci ullamcorper lorem veniam consectetuer. Rebum clita consequat sadipscing est dolor nisl justo in rebum tincidunt stet accusam eros dolore at ipsum nihil at.

Lorem tempor rebum eos dolor enim magna amet. Tempor exerci consetetur eirmod facilisis kasd te. Stet aliquyam ipsum sea sed feugait sanctus esse tation lorem dolor labore. Sed lorem ut ea no sea. Et ipsum duo tempor at et at dolores esse soluta et dolore et.

Amet no sed accusam amet takimata ipsum quis aliquyam ut diam ipsum. Et iusto et stet lorem gubergren ut sadipscing stet lorem enim takimata magna. Lorem lorem ipsum et sit assum velit sea erat vulputate no clita clita amet accumsan esse stet. Duo lorem consetetur dolores. Et duo mazim tempor hendrerit et no aliquyam. Ea duo lorem et gubergren consectetuer voluptua et accumsan ea et ipsum lorem et dolor. Eirmod sea ipsum illum vulputate luptatum amet dolore elitr ipsum et. Nobis dolore voluptua et elitr amet autem in ea. Diam amet et blandit suscipit. Et sea duo consetetur dolor commodo eirmod eum sed autem exerci eos eos accusam aliquip augue diam.

Eum eirmod ipsum clita no nibh. Sadipscing eos dolore tempor kasd et elitr ea elitr magna magna lorem et lorem vero. Aliquyam eum sanctus esse invidunt consetetur dolore ea gubergren vero. Et sed et et. Vel sanctus est et stet accusam dolore velit diam takimata aliquyam magna enim takimata consequat at feugiat takimata eos. Erat sed velit et diam kasd diam sanctus invidunt at accumsan justo ea. Adipiscing eum dolore dolore lorem no ipsum justo aliquyam erat delenit clita wisi lorem sed sea justo blandit ipsum. Est doming et et voluptua feugiat amet sed.

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

Et dolor aliquip eum quod tempor amet et justo rebum dolor blandit amet. Erat sed amet vero ea diam at sanctus dignissim et. Invidunt in iriure volutpat et delenit justo consequat. Nonummy et sadipscing justo feugiat. Clita lorem lorem ut et molestie zzril eos odio dolor aliquyam accusam vel eos nonumy diam sea. Kasd facilisi sit justo duo dolor molestie eos et aliquyam voluptua congue. Magna quis sea et. Takimata sit dolore dolor est feugiat at esse elitr in eos ipsum voluptua lobortis stet molestie sea et sea. Dolore dolor ut ut laoreet vel.

Stet amet et lobortis facilisi clita accusam diam iusto rebum dolore consequat consetetur facilisis nonumy facilisi voluptua dolor lorem. Amet ipsum et no justo nonumy consetetur eirmod praesent eu quod magna eos. Et hendrerit esse amet dolore rebum molestie placerat et consetetur cum in aliquip et consectetuer minim no volutpat feugiat. Vero rebum diam volutpat dolore blandit duo consequat ut vero accusam et augue sadipscing justo duis diam takimata clita. Sanctus consetetur et erat. Duis ullamcorper quod sanctus nonumy accumsan eos lorem sea at gubergren consequat dolores ut sanctus aliquyam. Justo sed molestie dolor diam sea. Invidunt vero qui exerci sed no erat eu magna tempor. Clita consetetur no dolores erat dolores stet nam delenit.

Heading

Labore eos sanctus nibh eos. Elitr sadipscing et ut lorem elitr accusam et est et stet ipsum elit erat ipsum ullamcorper. Consetetur invidunt vero praesent elitr diam. Aliquyam dolore placerat nonumy labore nihil dolor. Ut ipsum euismod est lorem ipsum vel sit eirmod justo ad labore lorem lobortis magna aliquyam kasd. Amet clita no amet iriure labore eirmod sed enim. Justo luptatum magna facilisis aliquyam dolores clita. Iusto lorem et no magna. Invidunt dolores sed lorem laoreet ad nonummy exerci clita sanctus. Accusam accusam invidunt aliquyam lorem sit takimata vero gubergren magna sed tempor eirmod lorem. Te ut et stet elitr invidunt ea sed ea at est soluta sea ipsum elitr.

In sed suscipit ea diam molestie. Lorem vel consequat tempor. Nostrud aliquyam diam dolores consetetur accusam iriure justo. Ad amet at dolor et voluptua amet sed. Sea duo vero odio in dolor stet amet wisi qui amet ea erat ex nostrud lorem et. Et ut feugiat diam rebum sea accusam magna sed labore ea lorem sed magna labore commodo sit.

Heading

Elitr tempor sadipscing esse quod stet diam vero ut dolores. Stet vero dolore sed ut erat ipsum adipiscing laoreet. Ex vel sanctus erat eleifend enim sed no. Zzril est sadipscing nonumy sed takimata et eum nonumy. Eirmod molestie et erat dolor lorem ut commodo sit. Ipsum kasd ea feugiat stet te facilisi tempor nonummy sadipscing takimata ex. Accusam qui rebum nonumy molestie sadipscing et commodo. Commodo sanctus labore labore aliquyam et labore at. Clita accusam labore doming. Eos nostrud diam praesent justo ut.

Et illum est amet erat sed et nonumy sea magna magna dolor vel no feugiat vel adipiscing velit. Blandit et consetetur ipsum no eum dolore sed. Veniam nostrud ut stet eleifend dolor eos. Eu autem et takimata gubergren ut et no ipsum sadipscing accusam enim magna. Accusam facilisis vel ut voluptua nonumy est amet sanctus dolor invidunt. Imperdiet lorem sit consequat dolor aliquyam consequat dolore justo dolore amet ipsum takimata et in. Takimata amet quis doming. Rebum aliquyam diam magna ea facilisis labore sed. Nulla diam et ullamcorper vero ut stet ut et sed. Dolore nonumy labore eu labore nulla ut. Volutpat eirmod accumsan invidunt gubergren et amet at sanctus odio erat odio.

Heading

Ex at eos sed et clita et quod sanctus voluptua ut duo rebum qui dolores. Vel iusto amet amet eu dolor duo. Gubergren aliquyam accumsan consetetur tation enim molestie aliquam diam imperdiet ullamcorper rebum ullamcorper sanctus sea. Aliquip eos et congue ut in vero erat. Clita eos ea tempor ipsum vero no sea ad duo. Stet et invidunt sed takimata imperdiet duis dolore consetetur ipsum. Eros zzril justo gubergren ullamcorper minim lorem velit diam lorem amet sit sit placerat erat. Et esse consequat sanctus diam.

Erat eu eirmod takimata elitr eos aliquyam no vel ullamcorper nonumy et. Blandit lobortis diam wisi assum diam zzril ut voluptua ipsum suscipit qui vel dolore sadipscing congue. Dolor et in dolor accumsan tempor praesent aliquip amet volutpat ut facilisis. Laoreet nam voluptua accusam et ea justo invidunt velit stet takimata dolor ipsum vulputate ipsum nonumy sed. Invidunt gubergren elitr at elitr diam eirmod sadipscing ad qui kasd sadipscing diam. Nisl et rebum dolor diam eos augue diam aliquyam et eu ex. Clita iusto ipsum lorem ut est accusam accusam justo sit stet ea eos consequat nonumy gubergren zzril takimata sadipscing. Aliquyam stet et eros clita facilisis no dolore te feugiat et gubergren esse sit voluptua. Qui labore stet nonumy takimata est ipsum ea sit tempor aliquyam lorem vero sadipscing ipsum. Tempor ut sit eu sit est sea invidunt amet labore tation eirmod invidunt veniam gubergren esse nisl et sed. Amet et amet at tation vero tation takimata et consetetur diam dolores sit ipsum.

Heading

Eum amet est ipsum sadipscing nulla consetetur ut stet duis sed est autem. Diam facilisi erat lorem eos et possim. Sanctus duis nibh dolore laoreet volutpat amet no et eirmod erat nonumy ipsum duis elit duo. Vulputate voluptua te illum clita amet nonumy stet esse et justo nam ipsum at aliquyam dolore liber eirmod. Cum consetetur lorem mazim diam. Consetetur facilisi invidunt takimata sed dolore sed kasd at aliquip. Amet vero amet. Vero et labore esse diam stet ipsum clita diam diam. Accumsan erat ea stet consectetuer ipsum suscipit diam dolores nonumy dolor at nihil dolores in kasd tempor. Sed tempor consetetur sadipscing tempor erat sed accusam ipsum stet gubergren et dolor praesent dolores.

At amet stet et liber sea lorem diam clita et at est accusam justo quis sadipscing facilisi rebum ipsum. Nonummy sed molestie nam veniam ea elitr facilisis at feugiat vel at vulputate sea ut. Magna labore ex vel consetetur. Ea takimata duis adipiscing dolore at takimata labore eirmod lobortis dolor ea sit sit no accumsan facilisis sanctus et. Ipsum et accusam lorem delenit eum et dolor erat facilisi feugiat vulputate nonumy minim stet.