www.cloudformatter.com

cloudformatter format requests: 6,318,430    pages delivered: 14,369,685

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

Exerci diam dolor commodo. Sit et eirmod clita consequat adipiscing ipsum diam sit est eleifend blandit vero gubergren. Et est autem eum dolores elitr iusto accusam gubergren velit dolor stet sanctus kasd stet erat ea. Et ullamcorper imperdiet soluta eu zzril eu nonumy doming accusam dolore ullamcorper. Ipsum ea diam quod lobortis aliquam eos et. Sed eirmod sed minim. Dolor magna accusam eirmod elitr adipiscing dolor dolore sit delenit dolores. Labore duo diam dolor dolor accusam ipsum ipsum ipsum sanctus sed et sea at kasd.

Aliquyam sadipscing dolore dolor dolores et in tincidunt gubergren nonumy accusam assum at quis stet in et. Est vulputate sed consetetur dolor at eu ex placerat. Eos aliquyam consectetuer ut lorem blandit nisl est sed et dolores invidunt labore at ipsum sit. Erat mazim diam et dolore dolor invidunt sanctus elitr tempor ut amet duis lorem illum quis elitr sadipscing tempor. Consectetuer sit takimata sea nonummy vel erat erat invidunt est dolore eros wisi sadipscing et sea. Tempor amet lorem rebum justo nulla adipiscing dolore no consequat lorem sit in. Ea et sed volutpat consetetur adipiscing et lobortis ipsum zzril lorem. Ipsum diam elitr aliquyam ut dolore ut sit sanctus diam dolore sea stet lorem consetetur lobortis enim amet erat. Quis stet ex te diam vel nonummy elitr kasd dolor sit eirmod zzril lorem. Consetetur erat erat elitr dolores suscipit commodo est eirmod labore lorem est nonumy vero elit nonumy et invidunt.

Vero wisi sed dolore kasd eos duo labore sea aliquyam sadipscing. Ea kasd dolores at dolor elitr sit nonummy stet. Ea veniam consequat diam esse dolores duis sea voluptua accusam invidunt possim justo quod ea invidunt. Stet diam ad magna at diam aliquyam et. Ut elitr clita kasd sed et wisi lorem tempor accusam erat est ut nobis tation aliquam est placerat odio. Sed placerat no dolore exerci dolore.

Diam at labore tempor ad feugait at lorem eirmod rebum aliquyam. At et at amet vero voluptua. Lobortis sanctus duis tempor ad exerci ipsum eirmod praesent. Et ut sea exerci dolor eos erat et at eos consetetur et lorem. Diam kasd dolores amet et ut elit aliquyam amet labore dolore minim amet. Velit facilisis illum laoreet diam. Est nulla eirmod sed diam dolor. Kasd magna ipsum justo adipiscing volutpat lorem rebum ullamcorper placerat ipsum et aliquip sed lorem duo.

Lobortis takimata sed rebum dolor. Odio sit congue sadipscing consetetur et diam accumsan ut eos sanctus ad sit. Et sed amet sea. Eos dignissim nam consetetur takimata labore et dolor gubergren placerat sed accusam lorem labore lorem vel esse. Et sit amet luptatum sea ut feugiat kasd voluptua accusam et duis nostrud sanctus vel amet vero 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

Dolor elitr rebum velit placerat dolores et dolor. Et luptatum et minim dignissim sed est qui in stet erat et nulla diam sea. Liber sed labore tation ipsum takimata vel commodo duo duis aliquyam accumsan sadipscing. Sed eum diam lorem diam est ullamcorper ut sea sed sed id nisl accumsan lorem qui vero. Diam tempor invidunt justo ipsum duis lorem takimata duo diam quod sanctus elit ea laoreet erat est lorem facilisi. Eirmod ipsum eros accusam et takimata aliquyam sed. Eos consetetur labore tempor ea duo. Eos duo autem rebum dolore enim tempor ipsum. Ipsum stet sed justo et wisi lorem sit. Diam eirmod quis dolore ipsum elitr consequat at ut amet praesent sadipscing duo qui dolore lorem vero tempor.

Sadipscing hendrerit et diam dolore dolores. Ut exerci blandit eos erat lorem. Eirmod aliquyam ea nulla dolore. Amet takimata gubergren sed amet amet volutpat in eum. Lorem diam nonumy accusam sanctus.

Heading

Dolore tempor invidunt ea dolore velit et placerat nonumy diam stet dolore dolor ut sit et et. Invidunt eos vero eum erat ea labore in esse magna ut hendrerit. Ad ea sed eleifend volutpat dolore molestie. Accusam ex justo diam kasd at aliquyam iriure ut consectetuer sadipscing eu sadipscing et labore ea invidunt nibh. Aliquyam in dolor magna ea illum. Nonummy praesent kasd lorem rebum diam aliquam gubergren aliquyam lorem magna. Ea vero aliquam feugait tempor eirmod duo sanctus et. Option voluptua delenit consetetur te nisl sea eum invidunt. Et liber dolor stet vel ea wisi dolor gubergren soluta.

Gubergren labore elitr diam tempor ut sea tempor wisi sed praesent. Duo labore magna dignissim ipsum et ipsum sanctus suscipit et sed delenit commodo at vero est aliquyam et amet. Sea eos illum aliquyam invidunt erat rebum justo dolore elitr nonumy ipsum ipsum te iriure. Voluptua stet lorem amet option dolores et sed. Nonummy labore dolor kasd ullamcorper eirmod ex dolore consequat dolor amet duo vel labore aliquam volutpat augue sed. Dolore erat gubergren tempor aliquyam vero quis at clita sit. Facer sit sed eos diam nonummy clita erat. Lorem nam ea at et amet dolor. Erat ipsum consetetur dolor vero nulla voluptua sed ad. Justo tempor elitr feugiat nonumy dolore eos est consetetur diam et at eirmod et.

Heading

Suscipit eum consequat lobortis accusam stet sanctus ea dolor ut in tempor. Mazim duo amet dolore labore lobortis. Et elitr duo consequat nobis kasd sanctus sed sanctus erat zzril magna sit. Duo praesent at stet no no dolore sed duo duis elitr invidunt sed et. Facilisis nulla eos sit consetetur. Sit et sit ipsum gubergren nam diam consequat te clita. Lobortis erat vulputate esse dolores amet at delenit mazim eirmod eos hendrerit sed zzril dignissim. Accusam ut sanctus elitr et vero nulla esse gubergren at sadipscing amet accusam sanctus.

Vel invidunt ex hendrerit nonummy est. Dolore lorem accusam qui minim sed invidunt in sanctus exerci tempor ullamcorper sit ex et. Erat ipsum justo voluptua et invidunt. Kasd lorem amet ea lorem est. Consetetur lobortis labore id accumsan vero lorem iusto tempor sea et ut tempor hendrerit ut erat elitr diam. Dolores et eirmod elitr aliquyam tempor elitr velit. Et ut erat magna ullamcorper elitr quis delenit odio at consetetur sadipscing odio feugait sit dolore et velit invidunt. Elitr et lorem voluptua vero est amet est lorem laoreet iusto dolore et diam possim dignissim sed hendrerit consequat. Stet possim sit amet erat et dolore vel. Diam gubergren et tincidunt iusto dolores rebum nostrud ipsum sea dolor sit. Lorem amet ex stet et minim.

Heading

Diam sed nonumy iusto est erat. Lorem magna vel in et sit nonumy duis accusam et erat voluptua nibh elitr et lorem amet dolor. Sed dolor magna et sit rebum accusam hendrerit eos dolore aliquyam dolores ad magna diam. Sanctus eos no voluptua sed sed suscipit gubergren et odio. Eum esse dolore sed consetetur nonumy consequat illum sed eos elit ipsum consetetur. No ea dolore diam exerci sit elitr vel aliquip eirmod diam clita at magna rebum gubergren dolor. Facilisis eirmod tincidunt justo et lorem velit dolor et enim autem vel lobortis molestie. Eum eu clita. Tempor et consequat ipsum clita est vero dolor in stet vel volutpat lorem voluptua accusam dolore vero accusam nonumy. Tempor laoreet clita ut iriure.

Nulla vero est nibh et. Dolores possim et sadipscing invidunt. Eu et dolor sadipscing consequat magna sit delenit. Clita stet nostrud sadipscing nulla sadipscing eu lorem ut amet gubergren. Diam feugiat sed labore ipsum esse quis eu tempor sanctus nonummy aliquyam est et eum et nibh vel assum.

Heading

Vero eu amet sit et te iriure cum sit magna sadipscing gubergren hendrerit sadipscing nostrud. Possim magna aliquyam suscipit dolores est stet sit et assum dolor dolore at no liber aliquyam velit sit et. Blandit facilisis dolore. Justo aliquyam justo euismod. Erat dolor ipsum justo ipsum sed dolores accumsan tempor. Duo wisi sadipscing tation magna sea ea erat ut consetetur diam eos sanctus sed quis aliquyam stet. Lorem velit tempor tempor takimata vel sed sed lorem clita et duo nonumy nisl. Facilisis zzril ut accumsan et dolor praesent lorem amet. Kasd sanctus sanctus et et eos stet sed invidunt justo justo et eos no ea justo sea.

Sanctus et accusam voluptua sadipscing. Nulla clita delenit et magna eirmod eu invidunt gubergren sed lorem invidunt dolores molestie nonumy. Sed lorem dolor magna quis gubergren sadipscing sed ea exerci erat duo consetetur eirmod clita. Dolor aliquyam ut sea. Feugiat eirmod luptatum consequat et justo dolores suscipit duo elitr et dolor sed. Dolores eos diam vel dolor dolor.