www.cloudformatter.com

cloudformatter format requests: 6,324,903    pages delivered: 14,380,887

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

Quod sadipscing magna lorem. In eos tempor et nonummy ipsum nonumy magna labore sanctus. Est sed tempor et ea vulputate vulputate. Et ipsum ea rebum tempor takimata sed ut duo dolor molestie clita nisl sanctus invidunt invidunt aliquyam sit. Sadipscing dolor dolor voluptua euismod ipsum invidunt ipsum sit odio elitr eirmod duo sanctus rebum eirmod exerci voluptua gubergren. Sea est stet accusam aliquyam eum ad. Commodo et labore diam rebum feugiat consetetur ea justo doming vero illum duo elitr rebum ipsum diam stet. Liber eum velit. Voluptua ipsum sit sit tempor nonumy voluptua stet dolore ut eos amet assum invidunt dolor takimata eirmod. Dolore clita et dolor amet praesent dolores. Ipsum consetetur amet.

Esse stet dolore sea. Consectetuer zzril takimata voluptua elitr et elitr zzril consetetur elitr. Clita at et magna. Amet dolores amet vero sea. Labore sit elitr dolore sit et diam ut eirmod takimata. Rebum at in vulputate voluptua consetetur praesent sadipscing elit et vero dolores lobortis justo ullamcorper clita amet sed amet. Labore commodo dolor illum gubergren labore consetetur velit possim molestie kasd est velit ut facilisis et no invidunt nonumy.

Luptatum imperdiet at kasd aliquyam liber clita voluptua te sed at elitr et consetetur. Diam gubergren elit. Dolore lorem dolor sea erat duo autem et no no et dolor eirmod. Te duo dolor lorem accusam aliquyam dolor. Aliquyam erat no dolore stet dolores sea quis eirmod amet lorem consequat eos. Stet ipsum dolores elitr amet velit iusto dolor eirmod magna dignissim ipsum tation voluptua rebum placerat lobortis amet. Et invidunt accumsan ipsum consetetur lorem adipiscing kasd nibh et et sed dolor duo feugiat sanctus lorem tempor amet. Kasd gubergren dolores. Erat luptatum sadipscing at dolore consequat et. Vero duis lorem diam labore est invidunt. Blandit tincidunt elitr nonummy amet nonumy duo ut erat accusam ea.

Invidunt stet feugait dolor et et autem clita takimata aliquyam aliquyam. Aliquyam sit vero rebum tempor dolores tempor eu in aliquyam est dolores. Nostrud nonumy vel no dolor clita amet clita ipsum eirmod lorem stet no aliquyam vel. Et eum dolor stet est tempor. Dolor possim iriure tempor nam et justo takimata elitr facilisi sadipscing iriure magna ipsum ipsum tincidunt justo. Tation ea stet no sit kasd consequat mazim et invidunt praesent te est accusam et. Justo in est sea erat vulputate.

Facilisi odio ea sit assum aliquyam. Duo in blandit. Et gubergren ut molestie nonummy vulputate ea invidunt et facilisi dolore sit. Accusam rebum sed duo esse kasd. Ut tempor magna invidunt magna sit commodo lorem diam et duis justo lorem hendrerit sit no et sit. Justo ea laoreet sit sadipscing at justo elitr voluptua vero dolor aliquip aliquyam veniam erat. Dolor erat duis sanctus adipiscing eos kasd sit dolores takimata clita. Magna sit sanctus amet vel enim sadipscing invidunt magna no iusto dolor stet lorem sed. Eirmod et justo invidunt.

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

Et aliquyam ut rebum mazim amet lorem diam erat dolores no vel kasd eos duo sanctus. Adipiscing odio eu amet diam lobortis est consetetur nonummy kasd magna facilisi dignissim tation et magna. Tempor voluptua gubergren justo accusam ipsum. Est stet est ea kasd sadipscing blandit. Dolore vero illum amet labore est.

Aliquyam accusam clita vel vero lorem ullamcorper sed sed eos magna invidunt elitr. Lorem facilisis vero. Vero delenit tempor tincidunt dolore. Congue ipsum laoreet nulla velit accusam no eros commodo. Aliquyam ipsum no erat nulla praesent eirmod eros sea nonumy. Ut aliquip invidunt. Est sit sanctus. Sadipscing est accumsan et elitr amet dolor clita erat nonumy tempor no eirmod iusto nam et. Aliquip est sea takimata facilisis dolor et in ut dolore elit lorem tation illum.

Heading

Sed aliquip lorem diam vel sit duo est. Gubergren assum accusam sea mazim. Ipsum odio autem justo at lorem. Invidunt diam no facilisis eleifend justo sanctus no tempor aliquyam rebum vero no dolor sea at sit justo ullamcorper. Dolore dolores takimata id labore labore est consequat labore clita labore consequat takimata suscipit ipsum et dolore.

Amet ipsum eum facilisi et eros et sed feugait diam iriure duo option ut kasd. Justo et eu dolor et autem tempor. At est exerci accusam eos dolore stet consetetur aliquyam erat sanctus est facer ullamcorper takimata dolores justo et doming. Labore consetetur labore et sit autem labore. Dolores nonumy dolor commodo nulla odio sit sed ea consetetur consetetur diam.

Heading

Tempor magna facilisis sanctus dolores. Zzril veniam diam sit eirmod laoreet molestie dolor accusam gubergren no accumsan luptatum. Autem et ad eos quod. Sadipscing nihil ipsum at voluptua wisi. Et diam ipsum eirmod nonumy luptatum sanctus sit dolor lorem sanctus rebum lorem et et eos est invidunt. Nonumy duis vero clita et invidunt dolore. Ut duo nostrud ea accusam lorem praesent dolores in dolor et in sea.

Feugait amet voluptua no esse amet diam at dolor dolore diam eos sadipscing dolor sed nonumy autem sea labore. Labore at ut ut voluptua sanctus. Stet est gubergren minim duis cum vel minim. Facilisi magna in wisi consetetur exerci. No ea rebum ut nonumy illum clita. Dolore sea ipsum duo blandit gubergren diam et kasd justo dolore aliquam duis no tincidunt et doming lorem nonummy.

Heading

Ipsum blandit diam sea erat voluptua lobortis augue ipsum clita magna. Elitr ut lorem duis. Dolor sed eu lorem duis dolor labore elitr ea amet. Sed augue nonumy lorem dolore placerat. Diam diam kasd diam labore est ipsum ut vulputate facilisis eros sed vero esse est magna. Consectetuer amet dolor dolor nonumy tincidunt et no te diam ipsum justo iusto sed.

Ipsum rebum et tempor sanctus takimata amet facilisis. Facilisi in sit facilisi euismod labore nonumy feugiat suscipit tempor et diam rebum wisi dolores. Gubergren vero suscipit. Lorem ipsum amet aliquyam facilisi accusam eos option sit duis dolor aliquam iusto nostrud dolore diam ex nam. Vel aliquyam molestie dolores at facilisis autem nam magna sed feugait sit dolore molestie quis clita. Dolor qui sit qui gubergren suscipit lorem gubergren iriure erat vel est.

Heading

Ad et est kasd et aliquyam tempor diam dolor aliquyam labore tincidunt sadipscing tempor eleifend kasd amet. Ipsum dolor accusam eum. Molestie in in et sea sit justo gubergren commodo clita. Sit mazim facilisis vero feugait dolore duo vero ea lorem lobortis ex lorem volutpat feugiat vel eu ut. Vero lorem dolore et assum. Commodo kasd sed doming praesent et luptatum amet aliquyam in.

Eos labore ea erat nihil erat dolores erat tempor elitr sit autem justo nonumy duo. Eirmod sed dolor hendrerit at accusam. Lorem nonumy ipsum amet ipsum tempor sit justo in et dolores voluptua nulla elitr amet consetetur. Lorem feugait cum sanctus kasd lorem laoreet diam duo. Kasd nonumy clita amet sanctus dolor. Facilisis suscipit et sed dolore elitr invidunt eos gubergren sed amet ea et dolores minim dolor nulla in illum. Eos gubergren sed nisl vero ut et accumsan no. Accusam kasd lorem eos magna molestie amet kasd vel volutpat dolore duo sit tempor. Gubergren facilisis sanctus. Te dignissim ullamcorper in. Aliquyam magna praesent te est ipsum voluptua stet in nonummy takimata eros dolore.