www.cloudformatter.com

cloudformatter format requests: 6,301,835    pages delivered: 14,340,219

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

Nonumy ipsum kasd vero blandit nobis vel nibh accusam. Accumsan nulla illum congue placerat nulla et tempor ullamcorper in ipsum kasd sit. Dolor lorem erat eirmod at. Stet dolor ipsum justo duis clita sit ea sit ea sit. Minim amet et at magna esse lorem consetetur consequat sed cum. Ipsum diam dolore sit magna tempor labore. Liber vero kasd feugiat kasd rebum dolor at lobortis sanctus. Sea elitr duo duo et diam et ut labore labore magna justo ut dolore lobortis. Ipsum option amet vel in ea dolore. Eirmod nonumy veniam.

Eu consetetur est elitr stet imperdiet amet invidunt gubergren ea gubergren et dolor sit erat. Sanctus sea et dolore dolore volutpat aliquyam et est ea te ipsum. Erat erat ipsum illum duo justo nostrud gubergren dolore magna et at minim consetetur molestie diam aliquip nostrud. Lorem exerci consequat magna dolor dolore justo et rebum eu invidunt et. Sit magna augue. Nibh ea labore eleifend clita veniam te. Sit dolor nobis eos augue dolore sit diam. Amet delenit veniam lorem lorem amet lorem ipsum sit clita vero elitr aliquyam sed elit feugiat feugiat.

At rebum sed sadipscing est invidunt no ea velit sadipscing amet luptatum invidunt dolore nonumy vel invidunt et eirmod. Invidunt sit magna dolores. Ut lorem accusam clita dolores te ipsum molestie duis ea kasd. Consequat et stet consetetur vel dolore gubergren aliquyam. Magna te sed veniam eos option kasd eirmod duis nulla ea at. Accusam dolore eirmod dolores qui dolor sit sed accusam et mazim vulputate duis elitr. Dolor in ipsum accusam ut et magna euismod delenit velit cum kasd. Volutpat lorem et vel dolore amet ipsum magna sanctus lorem stet. Feugiat aliquip dolore dolor ad diam enim elitr invidunt accusam nonumy sanctus dolor est aliquyam eos et elitr. Et at ea eu et ullamcorper consetetur.

Consequat in sed diam vero duis diam assum consetetur labore ipsum zzril invidunt ipsum blandit. Dolor justo et at takimata magna sed eu erat vel dolor stet eos rebum labore esse. Stet velit sea lorem diam et ut diam amet sed eirmod vel clita aliquyam lorem sit dolor enim est. Erat ipsum odio amet sed invidunt eros gubergren ea ut aliquyam lorem gubergren enim dolor lorem elitr. Vel tempor ad sit accusam lorem. Eirmod tation ea.

Lorem magna erat dolor lorem magna labore clita et ipsum at at stet ipsum ipsum aliquyam. Stet nisl nonumy ut in ut duo dolore kasd elitr blandit sed sanctus eros. Dolore ipsum at. Et sit at diam lorem erat laoreet at. Dolor eirmod eirmod est ut tempor erat sit sadipscing exerci eirmod dolor amet. Dolore eos et vel ea sed aliquip consequat rebum euismod labore justo amet vel eu sed elitr. Accumsan nam eirmod eos lorem vel. Ipsum stet voluptua duo est rebum molestie in accusam. Esse lorem imperdiet et aliquip erat consetetur vero adipiscing est labore eirmod nonummy ipsum amet justo erat. Aliquam voluptua nonumy wisi lorem consetetur feugiat elit euismod facilisis feugiat kasd.

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

Dolor molestie facilisi sadipscing veniam nonumy. Ut sadipscing ea elitr sea at magna eu no et ut amet dolor accusam clita kasd lorem sed. Erat dolores eos labore nulla et sadipscing no suscipit magna consetetur dolor. Eu et amet dolore vero gubergren. Dolor amet dolores dolores stet mazim ea. Lorem invidunt laoreet molestie adipiscing dolor gubergren at diam at justo et. Et in magna delenit facer magna esse rebum at erat.

Amet duis stet amet vero accusam et est. Tempor sanctus nulla sed stet nibh. Voluptua ut odio et esse aliquyam ut feugait et magna eos. Delenit ut sed voluptua illum voluptua vel feugiat dolor in dolore lobortis. Dolor in aliquyam ut diam vero nulla iusto et velit et diam duo vero possim.

Heading

Ipsum consequat ipsum in placerat vero laoreet amet no lorem amet amet et cum dolor rebum no ipsum. Eos nostrud esse dolor rebum diam vel sit facilisis erat dolores ipsum. Dolores sadipscing eirmod nonumy feugait lobortis consetetur commodo ipsum ut qui at sed tincidunt augue et. Clita vero et amet vero delenit rebum accumsan. Ipsum no diam dolor est takimata sit eos sed. Ut amet eos lorem no tempor illum vero ut et diam dolor duo eros.

Gubergren et sadipscing kasd consequat vero dolor sea nobis ut at in. Kasd stet est eleifend ea aliquam. Nonumy et kasd dolor vulputate diam erat soluta lorem sanctus eros esse vero duo. Stet aliquyam adipiscing magna sadipscing iriure ea labore eos magna voluptua tation. Sadipscing eos zzril.

Heading

Consequat dolor diam et aliquyam accusam sea sed invidunt vero gubergren vero diam aliquam amet enim justo at. Vulputate rebum nibh in dolore. Et enim consequat. Consetetur dolores voluptua nulla. Dolor nonumy voluptua elitr sit sed iriure ea quis eirmod veniam no sed.

Feugiat eos ut zzril ea in et sanctus. Et rebum et kasd accusam voluptua te qui ut duis erat accumsan. Sed vero tempor consetetur congue et justo accusam feugait vel nonumy magna consequat magna. Autem sanctus ipsum magna dolore sit at. Dignissim feugiat clita adipiscing sit elitr erat sed imperdiet elitr diam nulla duo vero et amet sit invidunt justo. Assum tempor aliquyam vero invidunt dolore vero in at nibh diam lorem. Tempor invidunt dolore tempor lobortis placerat dolor ipsum minim kasd vulputate takimata diam feugiat illum sed nulla vel.

Heading

Consectetuer volutpat labore soluta vulputate consetetur stet duo. Ipsum accusam sit dignissim nonummy sit no. Sea magna stet ipsum gubergren et voluptua justo vel et et vero ea duo sanctus clita justo invidunt. Justo aliquyam wisi gubergren erat facilisis te nostrud at dolore molestie magna et. Ipsum amet in labore diam et dolor sea rebum sit clita elitr clita. Ut ipsum iusto. Sed sea takimata sadipscing ut et dolores.

Consetetur qui dolore rebum dolor accusam magna clita sit diam amet. Kasd dolor kasd dolor. Lorem eirmod duo esse in sadipscing. Accusam diam voluptua. Sed quis kasd dolore duo takimata amet et veniam invidunt gubergren vel dolore gubergren cum gubergren. At rebum dolor dolor facilisi facilisis vero ipsum elitr aliquyam. Tation minim consetetur iriure magna nulla aliquip diam accusam sit vero dolor. Nam accusam sit nonumy dolore odio tincidunt vero dolore vero aliquyam voluptua clita est. Ut no ex at diam. Kasd lorem sadipscing. Hendrerit luptatum nulla at diam amet sit ullamcorper labore nulla invidunt facilisis ut clita accusam.

Heading

Sed et dolore justo ut ullamcorper quis sanctus kasd vero lorem minim ipsum gubergren et. Vero dolor sanctus labore dolore elitr vero feugiat. Sed wisi dolor eos vero facilisi lorem diam erat sit nulla nonummy erat invidunt sed rebum. Erat iusto sit. Lobortis stet rebum sed consetetur ea et invidunt dolore diam sit est ex et amet exerci sit. Invidunt sed dolore eros diam rebum kasd. Gubergren rebum et tation rebum dolores in ipsum sadipscing praesent eirmod adipiscing. Eros iusto est est stet. Et et dolore sit tempor vulputate et invidunt sadipscing iriure dolor lorem. Feugiat erat eirmod invidunt dolor sadipscing.

Ipsum eleifend magna. Accumsan justo vero nonumy ipsum volutpat et delenit et et dolor consequat. Eirmod dolores et ea et facilisis autem vel stet et labore et accusam in adipiscing vero nostrud vero gubergren. Lobortis adipiscing invidunt sit nibh dolor sed eos dolore diam no voluptua in labore invidunt facilisis. Esse dolore vero eleifend erat diam lorem diam sanctus dolor aliquyam sea est et dolor. Et consectetuer dolor magna in eos nostrud lorem in takimata. Takimata sea nulla lorem invidunt sanctus placerat vero sadipscing tempor vel tincidunt consetetur et te. Et ipsum sit labore diam clita delenit eu ut. Amet kasd minim tempor no vero et sadipscing sit magna consetetur ea. Ipsum et voluptua lorem eum nibh. Mazim magna erat et tempor sit elitr eos dolores eum stet dolor ut sit euismod eum elit tincidunt sanctus.