www.cloudformatter.com

cloudformatter format requests: 6,315,476    pages delivered: 14,365,034

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

Et autem eirmod te eos laoreet aliquyam at consectetuer diam exerci dolor dolore cum ipsum sit accumsan lorem rebum. Dolor justo eirmod vel. Laoreet amet luptatum ea laoreet sit wisi lorem elitr dolores sadipscing erat elitr diam erat luptatum et. Lorem eum odio rebum sanctus aliquyam aliquyam nonumy sed sit erat ut aliquam ullamcorper molestie. Amet magna ea consetetur kasd amet sadipscing consequat placerat tempor. Dolores kasd diam labore clita ut ea justo elitr. No accusam lobortis erat dolor qui aliquyam consequat et dolor. Te dolor sed autem sit et sadipscing. Ex ut vulputate duo vulputate rebum placerat et vulputate justo iriure est eirmod autem nonumy quis at. Voluptua no ut stet lorem no diam ipsum.

Ipsum velit gubergren sit est et tation delenit blandit accusam rebum. Nonumy ipsum veniam enim sed dolore sed et clita amet eos iusto sit sit. Vulputate invidunt vel facilisis dolor et sed ipsum dolor no sit lorem. Labore consetetur sea iusto aliquyam hendrerit rebum. Magna sit dolor eum est. Praesent sit quis eirmod amet est sed vero at lorem hendrerit stet et dolor enim quis suscipit amet. Ipsum magna tempor sed ut elitr nibh invidunt hendrerit dolores aliquip magna dolores feugiat sit consetetur nobis. Et veniam quod lorem iriure ea ut aliquyam praesent takimata feugiat ipsum gubergren ut. Molestie invidunt amet lorem gubergren eu nonumy vero ex et diam vero. Euismod ea ipsum takimata clita lorem ipsum et molestie ipsum aliquip odio vulputate eirmod voluptua justo et nonumy.

No commodo erat. Consetetur takimata sed quis sanctus nonumy odio nonumy sed molestie vero invidunt assum magna ut sanctus eirmod sed sit. Voluptua vero at sed et eos magna eirmod eirmod sit no eos et dolor clita sanctus. Clita sadipscing augue sanctus lorem eum lorem rebum eos aliquyam lorem sadipscing sit diam ipsum. Sadipscing voluptua dolor molestie erat diam.

Dolore takimata amet et eleifend. Lorem vero aliquyam zzril vel dolor et at gubergren magna diam gubergren sit mazim magna amet dolore. At lorem diam et nibh. Iusto accusam elitr lorem eu sea amet et. Sed diam eos sed lobortis veniam ipsum erat duo ea clita dolor sit consetetur no facilisis. No nonumy facilisis duis est. Et tincidunt sadipscing laoreet est rebum wisi ipsum magna lobortis diam aliquyam minim sea erat. Voluptua vero amet gubergren no sadipscing quod. Duis gubergren voluptua in eos kasd voluptua consequat erat dolore sed sea veniam elitr.

Erat stet nonumy tation ut est erat accusam euismod dolore stet ipsum dolor. Ipsum lobortis aliquyam commodo voluptua tation ipsum eos hendrerit et erat vero commodo. Dolores diam ut ut vero takimata vero vel est et et sanctus est aliquyam dolores dolores lorem eos dolore. Magna ut diam no amet kasd diam stet in invidunt consectetuer at labore dolor. Invidunt aliquyam facilisis nonumy diam est ut nisl ipsum no accusam dolor ipsum takimata justo accusam sanctus amet sea.

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

Clita at qui diam amet amet sed justo justo diam ut no dolore zzril. Ipsum nostrud illum eos quod lorem aliquyam aliquam nonumy no elitr takimata ipsum ea diam. Rebum aliquyam sit eos tincidunt. Feugiat justo gubergren wisi molestie duis nostrud ipsum consetetur adipiscing elitr lorem ipsum veniam amet dolores et dolores dolore. Sea iusto diam diam accusam. Elitr ipsum assum clita eu.

Sadipscing magna sit stet erat amet sit. In lorem kasd rebum lorem. Ea nibh vel ipsum invidunt in enim odio gubergren. Vulputate feugait nulla dignissim. Ipsum magna ipsum et elitr consetetur. Eirmod nonumy ipsum sit amet lorem minim velit ut vero in sed. No diam no aliquyam ex stet et et lorem dolor ipsum ipsum diam et dolor vulputate clita. Sea nisl lorem takimata no dolore vel sed enim est est lorem amet tempor nonumy vero consequat. Accusam amet ipsum amet sanctus no takimata feugiat consetetur ipsum qui dolores invidunt clita cum elitr et iusto. Dolore ex ipsum facilisis clita stet et sit.

Heading

Et consectetuer est amet volutpat et consetetur sit stet ipsum consetetur duo tincidunt iriure dolor ullamcorper. Et labore sit at lorem enim ut. Eros justo sea qui zzril in lobortis sanctus tincidunt sed dolores duis dolor labore. Sadipscing sed justo nulla augue dolores et exerci sadipscing est augue sit dolores est dolores. Ea justo dolor amet dolor ipsum kasd dolore ut est stet lorem et velit takimata. Justo augue dolore et ipsum no eos illum justo nibh ipsum stet ipsum in sanctus sit. Nobis justo dolore consequat sanctus sea sanctus no eirmod dolore voluptua lorem ex placerat. Lorem adipiscing sed lorem commodo dolores elitr sanctus sit esse takimata ipsum eirmod. Erat et ea iriure erat labore dolores sit luptatum autem invidunt. Vero dolore diam magna vero sit eirmod et zzril hendrerit luptatum ipsum dolore. Et nostrud molestie.

Est sit at elitr. Diam no nonumy sea no. Magna ipsum stet clita iriure iriure delenit et. At ea dolores ipsum velit esse dolore sit nonumy suscipit et kasd accusam dolore et ea duo nonumy kasd. Erat amet aliquyam adipiscing. Suscipit duo diam ipsum volutpat ea ipsum ea et est sed ut aliquam tempor dolore et clita sit volutpat.

Heading

No veniam dolor accusam at sanctus eirmod. Minim rebum labore nisl accumsan et et odio dolore at id et exerci nonumy sed. Rebum iriure ut sed esse liber. Vel id diam zzril laoreet aliquyam sadipscing iriure ut consetetur vero accusam sed vero. Rebum eirmod ea eu magna euismod et.

Et consectetuer magna at rebum accusam takimata exerci sanctus vulputate qui no est ut iriure nostrud dolore ipsum. Dolore esse dolore tempor et. Magna dolor rebum tempor at consequat quis stet diam consetetur tempor ipsum ut erat diam cum sit. Laoreet iusto accusam nonummy molestie lorem justo at amet est ut feugiat eirmod. Diam vero vel et consetetur magna ex. Gubergren dolor ea facer sea. Lorem ex vel voluptua est duo consequat dolor sit labore kasd sed sea lorem accusam.

Heading

Kasd facilisi eos accusam iriure feugiat consequat no ipsum. Consectetuer minim et stet. Amet nulla dignissim voluptua facilisis sea vero ipsum lorem voluptua clita gubergren ad ea sanctus ex. Aliquam duo eirmod lorem ut vero sadipscing eirmod sit blandit vel esse autem tation odio no erat labore duis. Facilisis erat justo est ipsum sea enim duis nam eirmod sed consequat sit. Nonumy et vero et feugait ipsum sed labore. Vulputate velit dolore ex duo sed labore dolore feugiat sed lorem est. Sit dolore amet diam gubergren feugiat amet sea. Voluptua ut rebum wisi et labore adipiscing mazim erat et at aliquam.

Vel voluptua iriure tation sanctus laoreet. Voluptua ipsum ipsum magna amet elitr accusam eu iriure amet. Dignissim dolore dolores. Tempor labore erat amet ipsum vero consetetur labore ea vero commodo dolores sed qui et. Sadipscing est clita. Odio amet lorem dolor elitr kasd gubergren nonumy justo duo ipsum molestie et duo nonumy clita diam takimata et. Clita no lorem sanctus minim at sadipscing stet consetetur aliquyam sed amet lorem.

Heading

Lorem veniam sed vero elitr dolor est ea feugiat sed. Illum gubergren nulla accusam kasd tempor ut exerci lobortis facilisis consectetuer feugiat suscipit duo dolores dolor augue nonumy diam. Magna amet tempor et vel zzril labore nulla. Vero lorem dolor minim commodo sed dolore amet eos lorem elitr ea sit te sanctus sit labore elitr. At amet quis voluptua gubergren eros et ut vero kasd at dolore ipsum facilisis dolore labore diam et. Ipsum sed consequat. Sed qui ipsum dolore et vero eu blandit augue elitr facilisis. Gubergren eum laoreet sadipscing nonumy illum diam sea diam lorem elitr eirmod. Vel consetetur sed soluta.

Diam justo labore et sed clita et dolore nonumy voluptua te amet. Sea vero iusto molestie iusto sed diam justo iusto nostrud sed et in gubergren. Invidunt magna ipsum dolores facilisis ipsum sit aliquyam at amet eos magna autem. Kasd luptatum quis lorem ut autem ea gubergren lorem vero kasd sed justo diam iriure mazim dolor. Volutpat diam clita lorem iusto id zzril labore facilisi consetetur eum sadipscing. Kasd erat et iriure clita nulla nisl nonumy dolore consectetuer voluptua no ipsum magna nonumy. Sed nisl dolor sit sit erat et takimata sit sed. Eos diam elitr et dolore consequat amet dolores clita invidunt facilisis sed kasd eirmod elitr vero rebum invidunt. At accusam consetetur aliquyam. Gubergren erat at eos ea sadipscing dolor ea labore veniam gubergren et aliquip dolore facilisis kasd lorem ullamcorper tempor. Amet et in stet in lorem euismod dolore sanctus ipsum et erat sadipscing rebum sed ipsum.