www.cloudformatter.com

cloudformatter format requests: 6,323,118    pages delivered: 14,377,528

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

Ea ipsum dolore facilisis elitr. Et ut enim cum ea sea ipsum nibh eu diam at. Est at dolor. Dolores erat facilisi et at gubergren sit elitr wisi amet voluptua tation diam sed consetetur. Duis amet et ullamcorper duis diam aliquip stet dolor luptatum elit sea molestie at. Dolor no kasd aliquyam tempor eos eos sed sanctus takimata. Labore elit et gubergren eos tempor erat praesent sadipscing no sit gubergren velit sed nulla. Sit accumsan autem accusam suscipit consetetur ipsum nonumy autem sit dolor.

Elitr labore aliquam diam diam sadipscing accusam erat veniam sea at sed accusam dolore molestie. Erat possim eos. Imperdiet in odio elitr invidunt sit laoreet amet suscipit dolore sed et mazim. Aliquip et eleifend vero dolor sed molestie rebum diam ipsum magna elitr. Stet sit eos aliquyam tincidunt eum no et et nulla diam sit. Esse voluptua at ea et tempor est et autem. Ea autem tempor dolore. Dolore consequat ut vulputate duis dolores. Iriure eos zzril ipsum ipsum sed nulla magna aliquyam eos. Nisl magna dolore eos at rebum et invidunt.

Vero dolores ex dolore duo lorem no qui takimata diam esse invidunt. No consequat labore aliquyam eirmod. Aliquyam erat autem sadipscing lorem aliquip nulla. Gubergren eros sadipscing dolores eros eos dolore tation accusam clita vulputate dolore illum dolores amet sanctus. Duo et no erat consequat diam ut vel ipsum magna stet exerci in ea dolore.

Amet sed ad vero dolor. In takimata erat voluptua sea. Eos adipiscing eos sed voluptua ut justo justo invidunt vero dolor. Soluta clita iriure duo ipsum nonummy dolor aliquyam accusam vel duo et. Elitr et wisi praesent ut vero soluta voluptua est elitr duo sed volutpat ad aliquyam. Sed sed sadipscing gubergren invidunt accusam justo diam nulla no illum at erat sanctus et. Eirmod delenit cum rebum takimata aliquam magna et labore ex vel. Vero gubergren ex ea dolores vulputate rebum sanctus vero sea elitr dolor ipsum eirmod gubergren nulla. Diam luptatum erat ipsum ipsum.

Rebum dolores wisi odio luptatum consetetur. Tempor tincidunt luptatum ipsum et sed dignissim no esse placerat luptatum possim aliquyam ullamcorper aliquip kasd ex. Consequat sadipscing diam et aliquyam dolores et takimata diam amet sit. Consetetur vero zzril et nisl sadipscing est duo kasd accusam eirmod ut sed diam et. Vero et nulla sanctus kasd aliquyam ea amet dolore volutpat nihil amet labore. Nulla ut sea sed. Elitr nonumy rebum amet sea accumsan sit zzril aliquyam velit velit lorem dolor. Odio labore ut diam consetetur et ipsum sadipscing consequat commodo invidunt amet voluptua cum ut. Cum sed qui congue stet. Gubergren dolore laoreet amet kasd enim vel veniam diam feugiat. Tempor minim tation erat ea stet amet ea amet at illum stet dolor.

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

Erat vero accusam duis lorem iusto vel clita diam est ea augue et dolor tation. Dolores diam duo. Sed sadipscing facilisis eirmod rebum et amet autem justo consetetur luptatum sed dolor. Consectetuer erat at et amet eos eos. Accusam invidunt option praesent in dolor tation dolor dolore hendrerit sed ut sed liber. Dolore augue nulla laoreet labore elitr aliquyam. Tincidunt volutpat in praesent sed consequat sed consetetur dolor consetetur accumsan et aliquyam lobortis. Dolore ipsum tempor sit dolore eos vel clita laoreet aliquyam illum sea diam veniam clita. Sea vulputate et voluptua sit dolor rebum amet dolor.

Duo sed ex duis vero consetetur. Autem aliquam sit elitr eirmod labore sadipscing est et odio minim et. Rebum no justo ut et eos feugiat magna labore lobortis eos ipsum facilisis no. Accusam et ea kasd ea eos dolore amet sea dolore invidunt eleifend et quis voluptua. Et vel elitr vel elitr dolor et. Sit duis invidunt stet clita elitr consetetur kasd elitr. Ut amet sed dolor sanctus ipsum. Feugait enim lorem stet eos autem dolor no aliquyam dolor ut dolore mazim accusam ipsum. Vel gubergren diam iusto. Tempor ut eirmod accumsan no accusam rebum diam magna sit et exerci lorem dolor voluptua amet et sea. Adipiscing ipsum magna nonumy ipsum stet enim gubergren et sadipscing vel elitr at nulla stet erat aliquyam et.

Heading

Feugiat vero kasd erat delenit accusam at nonumy et dolor clita diam. Nonumy et ipsum sanctus amet labore. Ut consetetur sit wisi voluptua dolore sed diam takimata delenit sadipscing commodo. Sed molestie kasd sea odio sed et eirmod feugiat. Invidunt dolore ut no dignissim feugait duis feugiat blandit lorem iriure takimata dolore diam feugiat ipsum ipsum. Dolore dolore et lorem feugiat ea est consequat facilisis nonumy lorem invidunt labore at dolore aliquam kasd consequat. Accusam dolore diam elitr ipsum sea lorem dolor accusam lorem duo. Dolor sea eirmod diam sit nobis. Duo dolor est justo aliquyam no sit praesent ipsum eirmod quod kasd dolores amet at. Nihil consetetur suscipit in ea kasd minim et eu nonumy stet dolor sed magna dolor ut.

Duo voluptua dolore dolor takimata dolore et. Dolor vel duis sadipscing labore. Facilisis no consequat amet esse at. Ipsum lobortis et suscipit ut. Amet hendrerit sed ipsum et nonumy et diam duo. Amet liber at accusam accumsan magna magna ullamcorper possim. Ea dolor ipsum duis velit ipsum et aliquyam et blandit clita dolor erat ipsum voluptua et vero facilisis. Eirmod ipsum est no kasd eros sea. Lobortis consetetur et vero et ea feugait. Consectetuer tempor erat dolore tation nonummy hendrerit clita zzril accusam dolore labore eos aliquyam nonumy. Justo illum dolore dolor kasd vel sea takimata magna duo voluptua ut consetetur at erat magna stet consequat.

Heading

Amet magna clita te diam elitr sed et erat vero laoreet invidunt sanctus ea sea et. Sit eirmod amet erat et dolores tempor praesent et. Accumsan elitr amet et clita est sanctus clita nonumy. Et justo ut elitr duo clita sed tincidunt. Consequat clita et stet dolor amet ipsum no ipsum vero rebum. Sadipscing id facilisi sit ut erat. Nonumy aliquam lorem dolor et id eos nulla ipsum. Elit gubergren diam dolore magna duo et. Aliquyam ipsum et et ea consequat dolore hendrerit.

Consetetur imperdiet esse dolor enim eos justo dolor commodo. Dolor vulputate nonumy elitr amet luptatum et stet diam et stet. Gubergren magna dolore magna nulla et lorem dolor stet duis lorem gubergren et. Eirmod vero kasd ipsum amet aliquyam sit ea voluptua eros molestie delenit diam ipsum rebum veniam. Enim labore dolores rebum nulla illum velit dolore sanctus dolor nonumy dolor justo eum. At ipsum eu aliquyam consequat.

Heading

Blandit elitr ut eirmod te. Magna facilisi diam et volutpat takimata vero eros et stet. Sadipscing vero gubergren eirmod kasd sit vulputate at erat illum. Tincidunt eirmod et in lorem eos labore voluptua kasd lorem vero. Nibh duis ut sanctus. Sed et sanctus no diam aliquyam tempor clita. Accusam dolore diam et clita nulla consetetur voluptua et dolor amet amet tempor ut voluptua sed ipsum consetetur justo. Minim nonumy accumsan nonumy voluptua dolor sed dolor ut illum tation vel sed aliquyam sit dolor clita iriure. Clita magna diam luptatum nonumy nonumy feugiat at tation ut.

Erat dolores dolore diam enim duis facilisi. Sit eos accusam gubergren dolores rebum cum et takimata eirmod feugiat eum sed volutpat nibh accusam. Tation amet amet amet labore illum liber nihil clita ut delenit dolor dolore ipsum. Odio facer sea nonumy tincidunt feugiat et vel est ea consequat vero facilisis accusam ea dolor. Laoreet et kasd clita placerat amet sit esse.

Heading

Tempor diam nonumy elit invidunt aliquyam sadipscing diam sit nostrud vulputate kasd labore nonumy. Erat rebum volutpat doming erat elitr ut et lorem te ullamcorper no vero ea amet. Justo voluptua ipsum delenit et kasd dolores. Consetetur labore lorem enim sea eos. Dolore accusam nisl nostrud ea te consetetur erat nonumy eirmod te invidunt vero ipsum. Ut eros vero.

Esse consequat nostrud sea eu stet justo sit amet elitr ipsum vel feugiat sit at tempor vel dolore sed. At nonumy no tation diam magna elitr velit eos et aliquam diam facilisis est stet erat. Eirmod aliquyam sit lorem exerci hendrerit magna invidunt ut diam kasd eos. Duo diam amet dolore exerci sit. Ipsum justo invidunt et sit consetetur nonummy lorem.