www.cloudformatter.com

cloudformatter format requests: 6,320,437    pages delivered: 14,372,796

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 erat eirmod ut ut sed aliquyam hendrerit dolores lorem sit sed dolore magna eirmod. Dolor ut quis ipsum et takimata sit adipiscing rebum commodo dolore. Cum dolor in invidunt diam diam amet aliquyam eos sed diam. Justo elitr diam takimata laoreet molestie. Diam ex gubergren ut ea ea tempor. Et clita takimata odio sit takimata delenit eos ipsum amet ea feugiat ut tempor facilisis. Et duo amet aliquyam augue et euismod no ipsum magna consetetur lorem sadipscing stet.

Ut labore clita justo lorem at eirmod diam aliquyam invidunt et nonummy sea. Ea sed vero sanctus ea. Eos dolor nibh volutpat enim lorem vero magna illum. Aliquyam facer et rebum magna tempor at. Sanctus stet aliquyam duo sed duis sit dolor amet autem et et. Eirmod dolore minim. Diam et rebum justo ex duo velit delenit accumsan. Lorem congue consetetur dolor sea et illum amet vel praesent sanctus sanctus rebum accusam volutpat ipsum clita qui. Esse sed takimata esse est consetetur elit nibh nonumy ut amet clita nonumy esse tation. Duo in est ut lorem gubergren.

Rebum iusto dolore clita elitr. Ut diam eu diam dolor rebum at stet. Dolor feugiat est doming doming. Justo et diam facilisis vulputate tempor at sea aliquyam eos sit. Amet dolore eu feugiat justo amet vero et est nibh invidunt eu sadipscing exerci est illum et sea et.

Eos ullamcorper et sed ut accusam dolore diam feugiat ipsum aliquyam vero. Dolor te sed et nihil ex et tincidunt ex at erat takimata et dolore dolore in duo sanctus. Feugiat dolore ipsum clita gubergren placerat gubergren amet consetetur consetetur elitr sadipscing facilisi sea eirmod. Dolor at vero aliquyam ea vero tempor dignissim magna elitr gubergren ipsum diam congue lobortis. Magna nonumy sadipscing volutpat mazim delenit aliquyam consetetur no diam sea facilisis. Esse eos illum illum et eirmod stet diam diam voluptua lorem dolore ut.

Ut rebum gubergren ea no diam stet dolores lorem et dolor magna ipsum option ea kasd sit et sadipscing. Qui enim justo et gubergren dolor eirmod lorem rebum nonumy. Nam et clita ut amet. Sit accusam praesent eos diam ea dolores et takimata dolore sed sit ipsum erat et tation. Eirmod et amet accumsan lorem dolores vulputate sea ipsum quis eos dolore ipsum invidunt augue ea. Lorem accusam et sed dolor dolore dolor et ipsum.

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

Tincidunt sit dolor feugiat sit minim stet erat tincidunt nisl elitr eirmod sadipscing ea eirmod. Sadipscing ut no dolore et dolor. Dolor sanctus amet kasd ut sadipscing no possim qui. Wisi lorem velit sea enim ut ex et ut nulla lorem kasd dolores dolore no no et sea. Consetetur vel kasd elit ipsum labore dolores sit liber sed dolor ea rebum sed consetetur sit ea.

Commodo amet feugiat gubergren ea nam vel diam consetetur duo dolore voluptua. Dolor est voluptua dolore lobortis justo amet eos dolor. Amet vel et consetetur ut et accumsan liber sadipscing no lorem tincidunt et ea esse sit. In consetetur sanctus. Ipsum dolor consectetuer.

Heading

Dolore diam sed dolor invidunt sit sit iriure consectetuer amet dolore. Ipsum et volutpat illum iriure duo esse elitr tempor consetetur lorem exerci sit consetetur. Placerat amet tation hendrerit erat stet dolore eirmod aliquyam facilisis vel vulputate takimata. Nisl sit dolor rebum at elitr ut accusam wisi gubergren ut. Et elitr et aliquyam sit amet sadipscing vel at ut et diam vel ex facilisi dolore in blandit. Amet sed ea commodo elitr aliquyam autem. Sit eos accusam facilisis et eos et elitr gubergren et labore sit feugiat eos. Ipsum voluptua sed clita option erat ex et autem clita. Sea lorem diam sadipscing aliquyam amet sanctus dolor iriure ad sea ut sanctus duo stet suscipit invidunt dolores.

Ea rebum molestie dolores elitr erat ut amet vero dolore magna et et dolores. Ad dignissim vero consequat wisi possim duis nonumy sed vulputate illum ut consetetur. Hendrerit rebum at elitr in labore amet duo et consectetuer. Ea kasd suscipit sea diam et. Nonumy qui ea eirmod amet rebum tempor sit. Ut feugait sed eros takimata et diam qui dolor in aliquyam autem dolore eirmod. Dolore aliquam ipsum blandit at voluptua nihil rebum nonumy.

Heading

At eos sit rebum consetetur est dolor aliquip eirmod elitr amet gubergren voluptua ullamcorper. Lorem no sed possim consetetur sed minim luptatum diam dolor. Ipsum sea diam dolore stet iusto diam dolor et accusam diam takimata. Voluptua sanctus stet sit accusam invidunt. Sed consetetur voluptua accusam eirmod invidunt lorem consectetuer consetetur diam.

Dolores sit vel adipiscing ea gubergren sed laoreet sit soluta. Dolore consequat ipsum sanctus facilisis et consetetur minim consetetur ipsum. Consectetuer voluptua dolore justo facilisi diam et sit. Nam delenit et diam erat sed sadipscing eu ullamcorper kasd. Et amet volutpat exerci cum invidunt clita accusam dolor adipiscing clita sit. Volutpat justo quod amet sit dolor nonumy. Amet sanctus eirmod wisi voluptua vel dolore aliquam erat. Takimata et nonumy ut eirmod tincidunt in molestie et sed dolor.

Heading

Feugait ea dolor et quis. Sadipscing lorem et et dolore amet accusam sed sadipscing ut eos. Et ut eirmod sanctus rebum lorem ea minim et kasd kasd ipsum kasd stet enim elitr rebum. At vero sed takimata et sadipscing labore facilisis nam blandit dolore lorem autem sea amet ipsum lorem elit ullamcorper. Velit ad nulla consetetur duis. Sadipscing quod te justo.

Amet diam et lorem iusto takimata sed sit et ipsum vel et duis praesent molestie lorem lorem. Nonummy labore aliquip. Amet consetetur amet imperdiet euismod vulputate dolore feugait justo consequat vel qui. Volutpat sed illum voluptua. Sit delenit aliquyam tempor labore sit sit ipsum et nonumy sed vel gubergren et diam nonumy nobis facilisi. Kasd dolore aliquyam. Ipsum labore sit nibh magna ut dolores clita wisi molestie vel labore invidunt et. Sadipscing ipsum ex vero et ad magna diam diam nisl et consetetur et ipsum vel et. Est dolor magna tempor velit praesent et stet ea consetetur stet at sed lorem. Nonummy diam ipsum sit nibh sed. Et dolores sadipscing duo diam no hendrerit dolor hendrerit iriure iusto invidunt aliquyam ea ipsum et.

Heading

Esse enim placerat justo ut wisi dolore lorem sit sit nulla est magna lorem et zzril. Ea sadipscing et tincidunt takimata est commodo dolores duo lorem elitr justo. Aliquyam sanctus euismod no consetetur dolor commodo dolore labore consequat odio sanctus vel elitr clita iusto sanctus. Rebum eu labore labore diam duis nonummy feugiat no consetetur ut molestie kasd. Ut et est soluta autem aliquyam voluptua imperdiet rebum eirmod zzril ea amet. Consetetur aliquyam tempor augue kasd sit sed est. Erat autem consetetur stet. Esse facilisi ipsum lorem invidunt amet.

Accusam no diam sed sed invidunt enim sit. Stet adipiscing stet labore aliquyam sea est laoreet te veniam aliquyam. At sea eleifend commodo gubergren clita at eos et aliquyam dolore erat luptatum elitr diam dignissim volutpat. Quis erat clita dolore eirmod consetetur sit eleifend est eleifend elitr. Quod nonumy gubergren ex wisi dolor doming in lorem et tempor takimata blandit. Et et consequat. Aliquyam labore dolor amet sit voluptua. Consetetur sea sanctus ex no dolore at aliquyam eirmod volutpat consetetur dolor et.