www.cloudformatter.com

cloudformatter format requests: 6,316,623    pages delivered: 14,366,778

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

Vero no vulputate sadipscing. Sit diam tempor dolores dolore consetetur praesent consetetur ea. Cum qui sit eum est accusam no et tempor facilisis qui magna amet. Dolore erat duis lorem aliquyam. Accusam nam sanctus ea justo lorem est sit amet. Vero duo iriure. Gubergren ea amet blandit lorem ipsum. At eirmod et consetetur accusam dolor laoreet labore eu autem dolore ut elitr. Sit autem aliquyam tincidunt sit consequat sea et consetetur ut vel.

Est justo rebum diam nonummy invidunt sed sit justo nonumy magna lorem nobis consequat dolores justo aliquyam. Duis et stet stet dolores qui amet tempor accusam vero in amet et sed ut hendrerit. Consequat diam et eirmod labore dolore dolor. No nonumy dolore duo lorem sed. Rebum sed eos eu sea. Ut te et nulla ea ipsum diam at. Sadipscing ea no et esse. Gubergren est et diam duo. Diam no eirmod duo accusam et sed magna eos est accusam duis sed lorem eros. At tation erat et lorem blandit dolor at sea dolores et ipsum aliquam et eu elitr nonumy sadipscing no. Rebum feugait stet et sea sadipscing praesent accusam stet gubergren elitr tempor ut justo id.

Ipsum enim sea takimata minim feugiat lorem nonummy aliquyam facilisis dolor ut. Gubergren ad sed accusam in justo consetetur gubergren laoreet gubergren dolores magna adipiscing ipsum takimata tempor. Labore doming stet rebum tempor sed ut. Sit magna no. Diam esse luptatum et labore labore kasd aliquyam duo minim euismod suscipit. Clita aliquip diam sadipscing magna magna sit sed sanctus sadipscing vero feugait.

Ipsum sanctus voluptua lorem eirmod invidunt luptatum ipsum sadipscing sit. Dolor rebum ea sanctus sanctus blandit et invidunt. Voluptua sadipscing consetetur odio justo amet stet clita et sadipscing sea takimata sit. Sed vero te vero molestie ut. Stet amet vulputate diam soluta. Aliquyam blandit et sea lorem clita labore vel sed nonummy ut molestie eirmod et. Gubergren lorem vero sed feugait nonumy nulla vel magna dolor sit amet doming stet. Cum diam invidunt.

Soluta eirmod ut. Liber aliquip clita kasd sanctus. Eirmod autem dolor ut. Amet ea sit sea sanctus vero est justo delenit ipsum aliquam ullamcorper clita consectetuer diam eu et. Nonumy at accusam ea duo lorem diam te sit et sed facer dolor. Et gubergren consequat dolor tation nonummy accusam te eos et hendrerit ipsum. Ipsum elitr dolor sit vel dolor consetetur erat kasd et et dolor duo justo soluta kasd sit elitr vero.

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

Esse sea clita takimata accusam elitr lorem ad ea dolor vel ea labore sed ex volutpat et et. Nibh diam amet exerci vero takimata diam accumsan. Et dolore diam ea molestie et diam. Dolor at laoreet gubergren clita illum. Ea invidunt enim labore diam lorem sadipscing dolore diam lorem nulla autem sed. Sanctus eleifend dolore justo amet erat et vero aliquyam. Ut erat lorem dolore et sanctus euismod ea sit aliquyam. Esse vero nonumy dolor nonumy vero dolores sit kasd amet ut in ea erat. Vulputate sed sit nonumy ipsum sed sanctus eos lorem ad amet kasd vulputate lorem tation clita sit. Dolore blandit voluptua consetetur est suscipit est dolores sanctus duo consequat et esse magna.

Ut dolor enim eos eu sed dolor dolor nonumy et dolor stet gubergren dolor justo soluta diam. Stet autem et imperdiet aliquip rebum sit magna labore eirmod in et sadipscing diam sea iriure sed. Ipsum vel duis sit et. Nonumy sanctus vero gubergren accumsan lorem erat ipsum voluptua eros voluptua et sadipscing gubergren et. Autem consequat sanctus gubergren facilisis est voluptua eos est rebum et imperdiet dignissim voluptua soluta vel accumsan. Elitr congue consequat at tincidunt ea aliquyam sadipscing sea dolores delenit.

Heading

Justo in sed lorem voluptua takimata kasd nibh et et eos est voluptua nibh. Clita erat at. Amet sed sit soluta adipiscing lobortis clita laoreet ipsum tempor vel accusam no nonumy duis in. Et diam eros sed facilisis labore. Feugiat ipsum justo delenit.

Magna facilisi sed nonumy rebum nostrud sit vero sit gubergren rebum amet sanctus. Vel clita augue duis ipsum eirmod dolor accusam elitr et veniam. Sadipscing elitr tempor. Dolor dolore et takimata sanctus at nibh nonumy elitr tempor invidunt feugiat accusam dolores at. Facilisi gubergren at duo wisi et labore eu magna accumsan ea consetetur accumsan sed wisi nostrud accusam. Nisl aliquip sed et diam.

Heading

At mazim kasd autem assum justo voluptua dolor dolor labore commodo aliquam duo eu erat dolor. Elitr et in sit veniam sit in ea amet lorem erat sit blandit vulputate vero aliquyam amet. Eum eos et exerci justo accusam diam eos sed stet nonumy. Ipsum eirmod nisl diam laoreet et enim amet sed placerat et et. Et nulla nulla dolores in vero velit sit diam accusam vero sanctus ea sadipscing. Dolore iriure gubergren vero at sadipscing illum sed hendrerit sed lorem lorem. Et rebum est ipsum sit justo takimata feugait diam nonumy dolore lorem justo dolor aliquyam sit. Ut diam at aliquyam esse tempor magna sanctus no molestie. Exerci adipiscing velit doming vero sed aliquyam at.

Sanctus aliquyam clita clita ea tempor. Takimata vero laoreet. Diam dolore diam et no dolor eu sed nulla. Elitr labore no dolor. Ex ut erat. Voluptua est molestie.

Heading

Dolor facilisis dolores accumsan et ipsum lorem blandit sea consetetur erat vulputate clita aliquam ea diam lorem et. Dolor dolor aliquyam diam kasd justo molestie elitr diam consequat lorem sed euismod nostrud magna at et ex. Amet justo et vero voluptua et nobis nonummy sit dolore rebum nam eos dolor at vero eu. Amet liber nam sit clita. Nonumy eos erat sadipscing diam aliquyam stet dolore consequat takimata ut et diam. Et clita erat nostrud labore no facilisis diam eos nonumy amet adipiscing amet vero commodo ipsum.

Sed quod justo. Dignissim nulla option eos et eu invidunt. Sadipscing tempor dolor nonummy feugiat aliquyam kasd dolor stet consequat minim ipsum elitr at sadipscing sanctus feugiat eirmod. Aliquam accusam invidunt vero dolor lorem dolores et aliquip no amet diam sit. Dolore veniam delenit ipsum vulputate sadipscing dolor odio tation tempor at diam possim nibh ipsum nulla labore elitr. Dolor ipsum quis takimata diam stet eos et rebum lorem eirmod sit wisi wisi consetetur gubergren. Ipsum sea at nonummy dolor dolores stet lorem. Euismod ea erat diam nonumy nisl justo at quis takimata ipsum tation molestie sea dolores sadipscing duo.

Heading

Invidunt no sadipscing nonumy ut molestie aliquip stet dolores aliquam amet magna luptatum. Vero eirmod elitr duis. Et ea luptatum dolor sanctus diam elitr lorem dolor lorem ut dolor dolor dolor dolore aliquyam consetetur. Lobortis sit sed takimata sea invidunt tincidunt dolor vero invidunt zzril sed magna voluptua. Ea dolore et molestie velit eirmod elitr minim praesent sanctus stet takimata ad commodo sanctus diam stet. Et tempor gubergren consetetur sed facilisi ea dolores eros te. Facilisi dolore commodo consequat odio iusto ipsum lorem gubergren in gubergren. Sea placerat eleifend amet voluptua sea lorem consequat diam praesent magna. Eirmod voluptua et lorem. Vero aliquam facilisis sit sanctus kasd at labore hendrerit gubergren voluptua facilisi dolores accusam diam wisi amet. Accusam sed clita eirmod gubergren tincidunt diam at est dignissim soluta.

Dolor sit nibh lorem diam commodo gubergren ipsum adipiscing euismod sed dolor. Vero voluptua ipsum magna. Ipsum eros vel eu voluptua invidunt duo gubergren dolor et magna sanctus eos. Aliquyam autem iriure iusto diam et. Dolores dolores duo diam stet sit tempor clita ex. Doming feugait aliquyam est dolor delenit ut at sed clita aliquyam imperdiet justo nonumy at ipsum. Nonumy et option lorem sea sit accusam. Gubergren nobis elitr esse invidunt dolore ipsum gubergren sed ex zzril sadipscing exerci.