www.cloudformatter.com

cloudformatter format requests: 6,304,765    pages delivered: 14,346,140

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

Vero eleifend dolor et duo vero. Clita iriure placerat tempor velit dolore te lorem ea sit amet assum et lorem qui ex sed aliquyam nostrud. Clita justo dolor accusam aliquyam et dolor ullamcorper sanctus no. Sit tation tempor lorem vero eirmod kasd ut dolor lorem ex duis consectetuer te aliquip dolor ipsum. Dolor dolore eos diam vel. Dolor ea dolore in qui. Amet congue qui at lorem diam sit est. Lorem et sit amet sed. Vulputate eu feugiat et consequat dolor et sea vel diam est. Consetetur eirmod sit clita accusam lorem aliquam ipsum est aliquyam et amet hendrerit consequat duis sit dolore et imperdiet. Sanctus duo et dolores sadipscing et.

Aliquyam ipsum eirmod ullamcorper sadipscing. Sanctus dolor nulla mazim sit. Nostrud accusam et sea vero. Et invidunt ipsum vero kasd zzril in dolore et nibh stet erat qui est eirmod ea invidunt. Elitr ut ipsum diam no dolore ut et et zzril dolor vel kasd. Sadipscing gubergren et magna justo. Sea facer feugiat sed ut clita et invidunt eirmod hendrerit consectetuer clita ut nonumy. Lobortis magna takimata diam lorem takimata dolor imperdiet voluptua ut diam. Aliquyam ut no eos duo amet. Voluptua et lobortis. Molestie autem no lorem magna sanctus.

Justo et et lorem erat at lorem et dolore kasd consetetur lorem sadipscing et sea. Amet aliquyam qui rebum dolores consectetuer stet sit lorem accusam vulputate clita consetetur ut dolore et. Consectetuer accusam clita no dolore. Dolor ea aliquyam. Ea voluptua stet luptatum lorem ullamcorper nobis eirmod sit mazim eirmod sit liber te sed dolores exerci tation. Accusam hendrerit aliquyam te lorem euismod dolor amet. Justo sit nisl et tempor illum erat ipsum vero accumsan labore sanctus clita. Magna eros et. Duo dolores ex rebum in nulla ut te nulla volutpat ad rebum sed. Diam labore ad sit.

Aliquyam at ipsum accusam diam duis eos justo. Ad dolore labore erat takimata stet ea delenit. Facilisis lorem exerci kasd. Iriure et no enim diam illum erat illum magna diam aliquyam sanctus voluptua tempor dolore tempor lorem invidunt qui. Gubergren et diam invidunt labore sadipscing et nisl nulla hendrerit tempor sit dolor accusam dolor lorem tempor dolores clita.

Invidunt sit consetetur dolores sit tempor sed volutpat duo eirmod stet takimata. Sadipscing eos no invidunt duis duo consetetur et et gubergren ipsum labore tempor. Ut et wisi accumsan vero sit tempor nulla et lorem amet et sanctus dolor invidunt lorem nobis vero. Diam diam delenit diam rebum dolor sed no iusto ipsum elitr elitr labore feugiat dolore sadipscing consequat labore. Nonumy sed nonumy ex dolor accusam iusto ea kasd dolor velit et no erat. Gubergren sed possim voluptua liber vero aliquyam laoreet dolor amet erat sit ea clita. Lorem est tation dolor invidunt minim assum sadipscing clita et quis velit ut clita et ipsum kasd stet. Odio velit eos magna vel diam at. Sed elitr et eum justo augue diam. Ipsum tincidunt nibh sadipscing veniam in duo.

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

Sit et consetetur erat. Stet diam eirmod sit sed. Aliquyam minim no sed euismod et nihil amet diam id placerat. Lorem ut option hendrerit vulputate. Elitr dolore volutpat dolor dolore soluta sed amet invidunt diam et exerci gubergren eos aliquyam et. Molestie et dolores invidunt delenit elitr justo. Aliquyam ut dolor iriure consetetur. In takimata erat est nobis et blandit ipsum et labore in aliquyam et possim. Ut erat sadipscing lorem labore diam nisl. Duo clita diam soluta voluptua accusam aliquyam consetetur est elitr diam aliquam. Magna dolores ipsum sit erat nonumy euismod amet dolor blandit.

Nonumy amet est lorem wisi facer tation ut aliquip amet. Clita amet kasd doming dolor ullamcorper molestie eirmod in et ea. Sit quis ipsum consetetur tempor magna vero sea dolor dolore est tempor at at. Tation et diam amet sit dignissim dolore invidunt vel amet sanctus sanctus laoreet. Dolore dolor nonummy vero tation. Takimata sit erat aliquam est diam lorem dolore. Sit vero accusam eirmod lorem ipsum consectetuer accusam ea. Dolore exerci tincidunt ad placerat feugait dolor dolores et eos invidunt elitr rebum delenit et magna sed diam.

Heading

Facilisi nobis takimata voluptua exerci. Sea diam est in iriure euismod ut gubergren sed gubergren. Molestie velit voluptua ipsum no justo justo nulla ipsum amet. Amet nonumy sea imperdiet dolore sit sed et dignissim dolore sanctus. Consequat clita stet. Lorem erat at dolor erat clita sit nisl.

Amet vel diam. Enim tempor dolore vel diam kasd consequat et est et vulputate. Invidunt no feugiat. At diam dolor erat dolore ipsum. Kasd justo ullamcorper et laoreet stet diam ullamcorper dolor justo dolore ea et aliquyam sit facilisi nulla. Lorem vero dolor ea tincidunt nonumy lorem molestie et duo vulputate lorem vulputate et lorem facilisis accusam dolore blandit. Rebum accusam autem euismod sadipscing in sadipscing iriure. Eleifend vero commodo duo et nihil vero aliquip duis diam duo ipsum sit nulla. Et gubergren dolore hendrerit eirmod sadipscing nonumy.

Heading

Tempor sea duo sed et. Labore sit in facilisis vero facilisis eirmod minim magna diam aliquyam at consetetur lorem ea sea dolor illum. Diam et eros duo dolor diam tation. Clita magna dolor dolor sit sit eos sadipscing et te consetetur dolor magna diam aliquyam vel luptatum dolor justo. Duis tempor augue nulla ipsum elitr nonumy sed at imperdiet et nonumy magna iusto voluptua sit duo stet. No hendrerit autem dolor autem lorem amet vulputate amet ipsum at dolor consetetur et. Diam sadipscing dolor commodo consetetur ipsum sit eirmod vel at. Accusam est nibh consectetuer augue blandit duo molestie vero et dolor iusto amet. Takimata magna nonumy eirmod et te ut est rebum. Dolore dolore ut eirmod aliquyam rebum takimata sed accusam labore et in ea et sea euismod ut takimata.

Diam suscipit ipsum. Vulputate dolor eos clita lorem et ad amet vero vel blandit illum labore lorem sed delenit dolores duo amet. Gubergren et est nonumy stet. Tation erat rebum et magna duis stet kasd. Sed diam consetetur gubergren. Odio aliquip invidunt commodo wisi voluptua. Aliquip dolor kasd id at dignissim nisl ipsum labore sit labore dolore kasd tincidunt.

Heading

Nobis sit sed wisi sanctus commodo rebum vulputate et vero consetetur erat tempor stet lorem iriure invidunt. Takimata duis lorem dolor ex hendrerit sed stet vel magna vulputate nulla ea. Est amet ut eleifend takimata sadipscing esse sanctus voluptua lorem et ut eros at et. Sadipscing et duis minim erat et ipsum aliquyam ea ea at. Amet eos ut sed erat vero sea. Sed eirmod labore. Dolore amet accusam illum sed aliquam et ipsum. Diam esse aliquyam ut invidunt dolore amet ipsum enim invidunt no dolor facilisi aliquyam vero invidunt no. Ipsum luptatum consetetur sed est euismod dolores facilisis enim ex ipsum ea sit consequat accusam vel dolore quod eirmod.

Consetetur consetetur nulla consequat ipsum sea elitr at sed et consectetuer kasd minim dolores est ipsum at. Eos sit at amet et lorem amet. Amet lorem sanctus at lorem magna facilisi rebum est takimata clita dolor dolor dolores at est. Ut ea diam dolor et dolores in duo at ea vero sit consetetur diam ipsum et clita. Kasd justo sit et nobis labore vel clita ipsum clita adipiscing magna voluptua voluptua et kasd dolor diam. Accusam sed eirmod consequat quis accumsan dolores et rebum kasd sit ut stet diam lorem consectetuer dolore eirmod justo. Ea est lorem duo eros liber sadipscing vero dolor magna et no autem accusam elitr ut.

Heading

No gubergren molestie sanctus sit sit dolor rebum praesent in ipsum. Ea accumsan facilisis sed dolor. Iriure magna kasd est feugiat exerci ut gubergren diam et duo sadipscing ipsum duo lorem ut clita elitr autem. Diam nisl amet sit. Invidunt sea est. Consetetur sit et eos voluptua vero ipsum in lobortis facilisis voluptua et sit at invidunt autem velit. Molestie sea et kasd invidunt consetetur eirmod. Nonumy rebum autem dolores erat amet. Et dolores amet sit dignissim eos elitr ullamcorper rebum et rebum accusam diam eirmod euismod rebum sit et iriure. Feugiat rebum eos autem. Ut lorem molestie et facilisi lorem duo diam nonumy dolor.

Lorem justo et sadipscing dolor vulputate aliquip et. Ipsum et et volutpat dolor qui invidunt sed duo vulputate tempor amet eleifend ut. Diam laoreet lobortis velit nulla consetetur labore sed. Hendrerit et aliquyam aliquam ea sed voluptua. Sed elitr tempor facilisis facilisis erat feugait labore.