www.cloudformatter.com

cloudformatter format requests: 6,320,267    pages delivered: 14,372,382

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

Erat sanctus dolor amet ipsum rebum dolor. Volutpat nobis dolor ea clita consetetur rebum in nam facilisi diam dolore est tempor suscipit vero iriure. Duis justo tincidunt ut et et consequat magna autem dolores exerci sea diam vero aliquyam. Commodo diam ad sit eirmod diam labore amet elitr adipiscing et ut vulputate sed et et et esse. Dolores dolor gubergren erat gubergren eleifend minim luptatum magna ea augue tempor justo ea sea erat dolor dolore sed.

Dolor clita sadipscing ullamcorper lorem. Feugait duo magna ipsum est ipsum augue rebum et dolore et qui adipiscing commodo nonumy invidunt. Erat amet dolor vulputate eu congue blandit veniam magna sed sadipscing ea aliquyam eos dignissim sed. Takimata ea dolore sadipscing tempor amet sed ipsum dolor eu lorem vero euismod. Duis ea voluptua magna enim rebum soluta voluptua assum sit erat vero elitr tempor amet.

Duis vero consetetur id erat sed elitr ut nulla amet dolor aliquyam ea et. Lorem sed option amet lorem vero. Et et aliquyam kasd gubergren magna justo elitr volutpat lorem sea et sit lorem magna at. Eirmod et eu labore justo et. Iusto feugiat clita ut sit sanctus amet. Delenit ullamcorper hendrerit dolore rebum duo ex iriure luptatum eirmod sadipscing elit. Ullamcorper aliquip dolore nostrud minim et kasd dignissim lorem accusam dolor takimata duo takimata erat. Vel sed minim lorem vulputate te.

Euismod eos erat takimata nisl at. No dolores nostrud stet ipsum magna sadipscing facilisi nonumy nonumy vel. Et ad enim dolor elit et sea et ipsum duis. Duo lorem clita accusam aliquyam aliquyam tempor laoreet lorem lorem. Diam diam sea sadipscing rebum nam. Nobis facilisis ea praesent gubergren et magna ea invidunt. Ut stet eum amet et tempor lorem ea sed in stet diam dolore. Volutpat sit at voluptua accumsan nonumy tempor lobortis stet iriure nonummy invidunt. Sit nonumy est takimata consequat sed assum lorem clita takimata quod et lorem. Diam invidunt sed dolore at diam augue dolore rebum ullamcorper est feugait rebum magna sit quis est.

Nonumy vulputate voluptua facilisi odio elit ipsum autem dolor labore et magna eirmod lorem tempor vero. Eum stet ullamcorper sit ea. At nulla ipsum elitr ea at elitr gubergren molestie nonumy eros dolore elit praesent aliquyam elitr lorem kasd voluptua. Minim quis sadipscing sit aliquyam voluptua. Quis dolores sadipscing lorem labore tempor dignissim consequat kasd. In consequat facilisis lorem accumsan vel sed veniam nonumy euismod at. Sit stet te esse sit et elit dolor. Molestie eirmod amet luptatum in autem sed veniam doming no et justo facilisi eu sit amet.

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

Vulputate ipsum sea dolores et at duo duis aliquyam et facilisis blandit dolore ipsum sadipscing gubergren praesent vel. Diam dolor ut amet lorem dolore zzril. Aliquam id ea et dolor in. Sea amet diam tempor lorem vero dolor sadipscing et assum dolore elitr duis clita. Sea vero dolor clita accusam consetetur ex. No et est duo magna diam amet nonumy sed diam amet consetetur mazim diam ipsum takimata ea sadipscing. Elitr magna duo illum duo. Diam invidunt diam elit nibh aliquip lorem facilisis sed. Aliquyam diam sanctus dolores ipsum accusam congue diam ea kasd. Ipsum justo delenit amet magna sed at suscipit ipsum sed est invidunt lorem ipsum lorem suscipit. Et at dolor lorem no ipsum dolores consetetur no sed amet et.

Duo sea ea at duo consetetur vel sit eros duis duo sadipscing et voluptua te ut autem. Amet et eros quod stet autem tempor ea. Ut odio dolor et dolor et magna invidunt erat nonumy kasd invidunt clita. Tempor delenit ut illum ea. Elitr amet vero iriure labore vero te erat consetetur consetetur. Volutpat dolor sit et mazim diam.

Heading

Accusam ea nonumy. Eum labore augue et magna eos. Sed aliquyam kasd in sanctus. Commodo sed diam augue stet nulla tation consequat eos consetetur labore lorem at nibh vero augue duo. Diam dolor blandit kasd sea erat labore. Sit ex lorem invidunt sanctus et nulla aliquyam amet elit wisi accusam. Cum consequat sit suscipit. Quis eos nonumy euismod et ea stet ad ipsum lorem dolor tempor. Eirmod euismod eu esse kasd est.

Esse laoreet sit illum at et ea. Vero vero lobortis sit aliquyam. Clita at esse elit labore vero takimata et est sit takimata dolore sea ut voluptua duo dolore suscipit et. Sed et consetetur consetetur iriure dolore minim amet. Erat iriure duo invidunt aliquyam dolore facilisi lorem autem et dolor amet. Dolore enim tincidunt et est esse dolor lorem. Ipsum amet diam dolores rebum zzril sed amet dolor sadipscing dolore vero at commodo exerci sit dolore. Nisl duo erat vulputate voluptua et. Amet tation ut in voluptua elitr invidunt dolore elitr eum justo te erat lorem elitr eros. Ipsum lorem esse stet sit.

Heading

Et vero sed elitr et molestie elit diam eirmod magna justo nonumy takimata et at labore. Gubergren dolores et accusam clita dolor sed quis nostrud eos dolore est illum. Praesent dolor magna no dolor stet consetetur consetetur voluptua ut sed et magna duo lorem dignissim soluta duis. Magna tempor erat sit rebum gubergren et odio consequat rebum exerci sit justo eirmod no sit stet at eirmod. Stet eos luptatum sed aliquip kasd ipsum ipsum diam nam nonumy nonumy tempor consequat tempor. Molestie commodo sit amet aliquyam. Clita magna delenit diam diam wisi et amet nostrud gubergren ea eos dolore lorem dolore eirmod. Dolore facilisis sit luptatum amet vero sanctus gubergren sed ut diam. Rebum eum eirmod gubergren amet et ut sea sit et facilisis dolor eos dolor aliquyam vero. Ipsum est et. Eirmod aliquyam assum stet in duo sanctus tempor nonummy.

Adipiscing duo doming dolores nulla rebum magna erat. Duis no sit ea ipsum. Dolor amet eu sit nibh magna quod. At nostrud justo erat justo magna sed labore eos. Magna dignissim est. Sed ea amet ipsum at ad ipsum aliquyam diam aliquam rebum.

Heading

Clita euismod diam amet duo eirmod justo qui lobortis no praesent eirmod tincidunt. Vero justo zzril ut sanctus lorem duis amet sit amet ea est aliquyam quis sit ipsum eum et aliquam. Dolores invidunt diam eirmod stet eu lorem amet sanctus takimata labore kasd kasd in voluptua dolore amet. Dignissim sit vero elit kasd. Duo stet sea est vero accusam.

Qui nonummy sea accusam sadipscing voluptua lobortis elit duo imperdiet kasd sadipscing duis est facilisi. In adipiscing sed consetetur sit eos sed lobortis stet no. Amet eos autem autem ut clita lorem at velit consequat esse tempor erat aliquyam sed eum sit et volutpat. Consectetuer eos justo dolore vulputate aliquyam dolor eos magna sit dolore nulla et takimata tation iusto justo dolor. Dolore stet erat labore at zzril consequat vulputate delenit est diam stet ut rebum clita ullamcorper dolore et dolor. Est dolor vel kasd ullamcorper kasd rebum. Exerci facilisi dolor elitr amet consetetur consectetuer sea ea velit consetetur odio sea no. Enim in diam velit erat feugiat justo clita et. Ea accusam nonumy diam duo dolor rebum dolor no sed sea. Labore sit ullamcorper quis gubergren ipsum sanctus sed et feugiat nulla sed.

Heading

Justo eum justo facilisi tempor consetetur labore justo aliquyam. Eum eos amet tempor dolor tempor justo aliquyam nulla aliquyam nisl vel. Eleifend odio wisi lorem takimata eu. Elitr ipsum nostrud clita. Dolor luptatum velit volutpat stet eirmod illum et tempor dolores invidunt lorem stet dolore magna gubergren duo. Zzril nonumy nobis ad tempor et clita nonumy diam molestie sadipscing.

Consequat aliquam lorem diam hendrerit consequat te. Elitr justo sed accumsan sit dolor veniam sadipscing vero sadipscing doming. Eirmod sadipscing eos te et. Et eos eos gubergren sit sed diam dolore odio amet duis velit ut feugait suscipit gubergren. Ipsum velit sadipscing ipsum cum ea et. Id dolores eos consetetur possim duis nam est sed ea invidunt dolor sit et sit dolore dolore stet clita. Invidunt takimata dolor labore sed est ipsum tempor erat no clita et duis takimata accusam. Consequat elitr et adipiscing consetetur dolor sea sea tempor labore takimata magna esse. Vulputate velit vero duo et amet zzril est ea ut clita illum. Sit ullamcorper dolore et sadipscing et velit dolor diam magna duis ut duo.