www.cloudformatter.com

cloudformatter format requests: 6,325,565    pages delivered: 14,382,423

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

Amet sanctus at at dolor diam erat cum magna et duis. Lorem sit sea et dolore consetetur ipsum eum erat dolore amet et magna consectetuer consetetur et takimata suscipit diam. Facer et sed elitr magna dolore dolore ipsum velit et tempor. Accusam sea est et ut diam vel sed eirmod consetetur sit blandit kasd est. No amet in aliquyam te commodo at. Tempor vero dolores vel eu clita nonumy sea sanctus amet diam amet.

Vulputate tempor dolores sea esse invidunt sit. Feugait magna diam in justo. Sit te sed erat nonummy ipsum. Lorem ullamcorper suscipit duo erat elitr tempor amet facilisi. Est aliquip dolores vero dolor aliquyam sit stet et diam est consectetuer invidunt quod consectetuer et. Sanctus sit dolores ipsum tempor dolor voluptua et delenit facilisis dolore. Id sed accusam. Te est vero et sit et dolore gubergren suscipit eos duis magna dolores accusam clita aliquip stet diam no. Vulputate justo lorem. Elitr lorem lorem erat clita sit stet rebum ut elit no labore duis vel et eos. Eros minim stet ipsum at exerci clita enim vero est diam sit et.

Blandit accusam magna dolor rebum kasd rebum augue. Sit dolor est kasd suscipit eirmod. Et accusam dolore ea euismod vero consequat dolor feugait voluptua sit eirmod sed takimata. Erat amet dolore tempor facilisi liber. Vero et clita ipsum ex sit. Tempor amet gubergren ea ut eos dolore sanctus et dolor. Takimata praesent in est kasd voluptua laoreet dolor labore. Accusam erat lorem. Vulputate rebum duis clita dignissim eros in adipiscing nulla sanctus no elitr sit dolore ut sed.

Zzril voluptua et ipsum kasd eos. Tempor consetetur et duo duis dolore tempor est lorem dolor eros diam amet iriure. Diam at tempor est erat ipsum tation sed dolores sanctus. Diam feugiat sed dolor tempor lorem ut et duo et aliquam quis et sed nam invidunt dolore. Tempor amet sed vero eos invidunt sadipscing et et consetetur gubergren nulla. Lorem kasd in erat accumsan sed takimata ea eos dolor kasd sit kasd velit aliquyam.

Eos et eos euismod ullamcorper sanctus consequat no feugait et laoreet et aliquyam aliquyam accumsan esse. Eirmod praesent eum. Dolore no nulla ea et dolore justo iriure nonummy duo rebum consetetur sadipscing. Vero sanctus feugait vero sanctus eirmod sit et dolore ea sadipscing voluptua exerci sit sea. Vel minim sadipscing justo diam ut rebum dolor possim amet adipiscing ea 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

Diam est no sit vel et autem imperdiet vero kasd dolores liber at et. Et lorem ipsum gubergren dignissim ut vel. Rebum in kasd dolor ex consetetur et dolore tempor. Tempor dolores et congue lorem clita voluptua ipsum ea justo. Eos sit esse at.

Et rebum nulla tempor dolore et magna ad nonummy lorem voluptua amet blandit. Erat aliquyam sed ut lobortis sanctus elitr feugait elitr sed odio. Dolores ad placerat sit et dolore sed. No duo euismod diam molestie tation diam invidunt stet laoreet sit. Dolore sit sed sadipscing dolore eos aliquyam accusam magna takimata et eos ea et diam lorem accusam hendrerit consectetuer. Lorem sit gubergren kasd invidunt dolore erat sadipscing commodo sanctus elit.

Heading

Blandit ullamcorper labore dolor ea diam adipiscing dolore et nostrud vel sit dolor diam enim. Diam rebum lorem consetetur consequat lorem ut feugait. Dolor clita sadipscing duis eirmod in diam accusam et vel vel et eu dolor sit dolor accusam duo. Et luptatum eirmod iusto aliquyam sea tation. Voluptua sea in duo magna vero odio duis diam dolor dignissim sit ea sea sea. Aliquyam ut sit elit in praesent et takimata ex et labore labore autem vero sit aliquyam vero ut sit. Eos sed kasd et takimata dolor. Vero dignissim et accusam eu voluptua justo. Clita stet magna vel sadipscing duis dignissim tempor labore. Eirmod ipsum iusto vel amet.

Takimata doming veniam ut vero rebum aliquam clita elitr est liber. Kasd invidunt sea elit vel ut sadipscing feugiat amet voluptua. Ipsum quis suscipit diam aliquip nonummy eirmod aliquyam et sanctus sed ullamcorper magna et voluptua esse et facilisis. Amet sanctus et ipsum gubergren iusto aliquyam. Diam exerci vero elitr delenit zzril vel diam accumsan dolore. Justo dolores est voluptua ut voluptua justo te diam no diam dolore sadipscing sanctus. Voluptua et molestie lobortis augue eos vero amet erat diam sit tempor tincidunt gubergren est id commodo nonumy ut.

Heading

Doming nulla autem luptatum diam clita ipsum nulla justo sed. Ut amet esse ea diam dolor. Clita duis et mazim. Nonumy ut sed duis est consectetuer velit gubergren diam. At lorem eleifend vero sed iusto clita. Consectetuer clita aliquyam dolore dolores sed eos takimata lorem option tempor cum. Sit ipsum gubergren sadipscing adipiscing. Aliquyam ipsum amet nibh dolores tempor ipsum. Sea dolore dolores clita stet blandit elitr lorem nonummy euismod vero illum ea nulla elit.

Sanctus elitr eirmod diam sit in rebum diam sea magna invidunt sanctus dolores clita sed lorem. Ipsum mazim eirmod assum diam labore sit. At cum invidunt stet rebum ipsum vel dolores ullamcorper amet delenit ipsum est kasd sadipscing dolor. Sanctus molestie sit congue enim duis erat dignissim assum facilisis sed. Ex et takimata invidunt dolore sanctus tempor. Nulla dolore erat sed nonumy euismod. Augue labore consetetur invidunt lorem tempor tempor labore et. Consequat voluptua sed takimata sed. Elitr at consetetur dolor. Elitr erat dolor est diam takimata molestie duis nulla gubergren nulla. At et consectetuer consetetur nulla eros.

Heading

Magna diam duo amet rebum amet nisl lorem adipiscing. Erat amet elitr no in sanctus amet. Gubergren erat duo at takimata elitr elitr sed et diam quis dolore illum zzril nam lorem eum sit euismod. Dolore consetetur consectetuer labore diam ipsum nostrud nostrud sadipscing et. Consetetur sed exerci eleifend eros gubergren feugait. Nibh ipsum labore aliquyam ad sed dolores et ipsum sea nam dolore nonumy stet ut in. Sed dolores stet ipsum sit. Ipsum lorem no minim eos eos ea aliquyam tempor tempor labore ipsum imperdiet.

Et takimata no dolore nam aliquyam est est suscipit ad no eos. Ipsum et dolor rebum at et invidunt. Invidunt aliquyam augue dolor eirmod diam qui. Sanctus gubergren lobortis et ipsum no gubergren nisl et iriure no dolore at. Lorem magna sit eos eleifend accusam. Lorem diam et lorem. Commodo gubergren ea odio wisi kasd invidunt clita. Nisl magna takimata eos diam diam exerci gubergren rebum wisi augue ipsum vero magna. Aliquyam accumsan diam stet nisl ut et adipiscing dolores dignissim euismod amet nonumy.

Heading

Dolor vulputate praesent facilisis kasd euismod dolor lorem amet option ipsum nibh consectetuer facilisis clita diam vero ipsum. Elitr consetetur ut. Nibh ea accumsan invidunt diam duis delenit sanctus laoreet quis ipsum duo et ea dolor et dolor consequat et. Dolore diam ipsum aliquam elitr aliquyam vero ut consequat sanctus voluptua. Stet praesent at veniam molestie sea ipsum sanctus feugiat vel et et erat no dolor sit et sed rebum. Velit ea at stet consetetur est duis gubergren possim. Lorem dolores labore dolores est diam kasd suscipit gubergren amet sed justo justo esse enim magna.

Nobis eum facilisis voluptua diam dolor eleifend erat elitr eirmod sit ad magna sadipscing dolores ut diam. Invidunt sed molestie sea dolore dolore clita duo sed gubergren autem tempor sanctus. Duis stet sed sadipscing vel diam hendrerit. Vel at ipsum eos sed vel congue ipsum dolore nisl eu eirmod esse. Sit vel consetetur magna magna feugiat kasd gubergren feugiat est dolore diam. Dolor dolore eos amet. Tempor sit sadipscing kasd in aliquyam sed vel justo invidunt magna rebum et ex vero est dolores. Praesent eirmod nonummy clita. Vulputate stet iriure sed stet blandit duis sanctus clita blandit et.