www.cloudformatter.com

cloudformatter format requests: 6,326,923    pages delivered: 14,387,728

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

Eos veniam in sed facilisi ullamcorper vulputate nibh molestie nonumy ipsum amet esse sea. No diam magna nisl eleifend eu lobortis et et luptatum delenit id et rebum diam eos. Exerci cum tempor vel. Ut diam stet est diam eros iusto enim sed diam consectetuer diam erat et sed. Elitr facilisis ullamcorper nonumy takimata dolor sea.

Nostrud gubergren ea sit invidunt dolore hendrerit doming vulputate ut elitr tempor iriure. Magna amet dolores at vero. Takimata nisl no sit eos. Eos at exerci autem nam ut ipsum congue sit volutpat sea amet eos no aliquyam dolore velit duo. Justo vel lorem at eos. Accusam ut elitr et no sit justo consetetur dignissim no vero. No amet at aliquyam ipsum delenit consectetuer kasd ut dolor et eum vero rebum sed consetetur esse ipsum et. Invidunt est amet vel takimata sed lorem volutpat aliquyam eos qui lorem nisl eum gubergren vero ad. Adipiscing vero dolor stet sanctus et ipsum facilisis clita sed no no in. Vulputate vero amet takimata amet lorem vero justo veniam et et stet gubergren. Consetetur clita ut duo nulla dolores ea.

Vero luptatum aliquyam et amet dolores no lobortis eu eleifend dolor sadipscing at amet sit sed eos et magna. Dolore diam sadipscing dolore ipsum esse illum est. Aliquyam eos dolore dolor possim diam tincidunt. Sea eum ipsum praesent voluptua te dolore ea elitr ipsum luptatum eos nonumy sanctus sit tempor eos. Labore vero nulla aliquyam gubergren kasd lorem aliquyam amet nulla blandit option lorem justo sed zzril molestie qui diam.

Ipsum stet nam consetetur et dolor amet lorem. Eos sit illum amet tincidunt nisl dignissim nonummy amet liber delenit duis amet ipsum ea sadipscing. Nihil dolore exerci dolor. No dolor dolor qui consetetur accusam volutpat at aliquyam aliquam kasd consetetur est aliquam duo. No tempor amet sanctus dolores sed.

Lorem gubergren sed dolores et et ea aliquyam luptatum diam tempor erat magna eos consetetur lorem. Vero at diam ut dolores. Tincidunt et sed eirmod consetetur minim sit lorem. Dolor sed eleifend duo veniam justo eu euismod tempor eos kasd wisi. Eirmod accumsan invidunt nostrud sit amet elitr ea diam. Tempor rebum adipiscing te sanctus ut sed dolor dolores feugait praesent diam diam elitr no justo ullamcorper enim. Lobortis tempor magna sit. Consequat dolore invidunt ea dolores molestie eos laoreet clita ipsum ad accusam et no justo sed dolor eum. Est justo kasd dolor sadipscing qui diam duis imperdiet et nobis diam dolore erat hendrerit. Ea congue ullamcorper justo luptatum.

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

Ea sed sed eirmod invidunt duis sed no consetetur sed clita aliquyam vero vero invidunt elitr eum nonumy. Iriure ullamcorper et elitr dolore. Exerci justo ut te. Dolore diam lorem et vel quod et aliquyam sed. Est sed takimata ea justo. Et ea minim iusto. Rebum amet in nulla. Amet eum sit sadipscing in. Labore et commodo labore tincidunt dolor sed clita vero et.

Et lorem nonumy exerci stet gubergren aliquyam lorem nonumy lorem nulla stet elit kasd et sed sadipscing lorem et. Eos amet eos duo consectetuer ut diam rebum tempor eirmod consetetur. Duo diam esse. Nulla tation praesent invidunt stet nonumy zzril rebum rebum consectetuer invidunt magna sit amet. Elitr et aliquyam et tincidunt sadipscing lorem voluptua sed justo ea et vel no iriure consequat no amet diam. Invidunt consequat sit lorem et et tincidunt lorem sit lorem sadipscing exerci eirmod invidunt odio aliquyam lorem. Gubergren dolores at adipiscing. Duo erat et amet lobortis dolor eirmod gubergren liber vel dolor dolore.

Heading

Dolor dolore est amet erat at sanctus autem nonumy erat sit vero ea consetetur sit. Eos eos vero magna quis vero sit sea vero dolor clita tation esse. Tempor lorem ea diam feugait elitr accumsan nobis at liber diam lorem no in et dolore tempor amet no. Dolore sed hendrerit at vulputate odio eirmod dolor gubergren luptatum rebum est et at et dolore. Est justo at gubergren diam feugiat justo lorem et ea ea erat voluptua amet. Lorem nobis sea no sit nulla eirmod. Accusam vero elitr no sed sanctus et et velit lorem nonumy magna dolor aliquyam amet ea ipsum et.

Nisl tempor justo labore labore dolore lorem takimata. Gubergren ut dolore volutpat dolor. Dolores rebum et sit ad eirmod dolore et erat tempor nobis. Ipsum sanctus nonumy kasd eos labore nonumy molestie sit suscipit sed at kasd luptatum diam et et zzril. Consequat eos at consetetur accusam at doming velit euismod et eirmod vulputate ipsum ex eos accusam sit. Sanctus iriure dolore sanctus stet eos. Sanctus dolor molestie ea clita ipsum amet commodo aliquyam justo gubergren. Kasd duo consequat. Ad id sea sit et minim.

Heading

Rebum voluptua est ipsum justo te accusam duo dolores consectetuer. Erat kasd dolore volutpat eros sadipscing. Dolores magna duis nostrud diam consetetur qui dolores stet blandit est diam dolor sadipscing consequat. Volutpat justo at ipsum. Et ipsum gubergren augue amet et in blandit elitr diam sit. Vulputate sit stet consetetur lorem molestie gubergren. Ipsum dolor velit rebum possim sed lorem voluptua et lorem ipsum stet sit dolore dolor. Tempor amet erat suscipit diam labore et laoreet esse sed lorem autem. Dolore dolore eu dolore labore euismod.

Sit at et lorem lorem aliquam nonumy sed tempor quis eos dolore. Hendrerit sea takimata dolor ea ipsum diam kasd laoreet ea tempor. Cum dolores accusam sit doming kasd elitr diam lorem at accusam in sadipscing augue delenit magna clita. Congue magna et consetetur sed vero dolore sit dolore molestie dolor wisi nonumy. Et no nonummy labore duo stet sed lorem minim elitr. Et tempor eos sed nam nonumy nonumy ipsum at amet sanctus. Consetetur gubergren ipsum no clita at in sadipscing ipsum dolor sit veniam duo dolores wisi stet. Nonummy lorem molestie at lorem ipsum tempor diam takimata diam elit dolor. Dolor in diam justo accusam at accusam nisl. Lorem diam ipsum elitr duo tation.

Heading

Facer mazim et option rebum aliquam dolor et consetetur hendrerit kasd aliquip est amet est sed enim est. Duo ea delenit in elitr rebum duis amet. Diam nulla sanctus amet liber stet suscipit sed lobortis et labore vero qui lorem diam. Gubergren ipsum at blandit est takimata iriure aliquyam eos suscipit. At ipsum diam vel dolor tincidunt labore nonumy amet. Illum amet hendrerit magna duis ullamcorper imperdiet accusam augue zzril exerci lorem invidunt ea kasd molestie sea.

Labore elitr et sit molestie sed nonumy magna suscipit et praesent magna rebum no accusam kasd sea et. Sanctus aliquam sit no sed diam invidunt sanctus et sea magna. Ipsum dolores justo velit sed stet amet tempor volutpat te elitr elitr eirmod sit. Clita erat consequat accusam lorem possim velit amet blandit diam dolore consetetur gubergren consequat vero et sanctus magna. Ipsum lorem amet eos dolore ipsum sit. Sit magna sed est.

Heading

Amet at consetetur praesent aliquam ut sea nostrud labore ea ipsum no justo. Erat nihil sit justo consetetur lorem exerci sed. Accusam lorem et. Consequat tempor rebum et consequat clita nonummy ipsum eos. Sanctus dolore sit gubergren. Ea dolor et et erat. Gubergren justo veniam exerci facilisis amet dignissim ipsum sea eirmod. Ex sadipscing sadipscing odio takimata consetetur elit. Takimata sanctus vero enim adipiscing invidunt ipsum consetetur dolore voluptua at zzril eleifend tempor et facer. Accusam et lorem kasd at consetetur dolore sed nulla.

Dolores elitr nulla consequat voluptua elitr. Nonumy ex vulputate erat eos ea et eirmod diam amet elitr. Vero sed dignissim eirmod invidunt sed amet justo illum kasd sadipscing laoreet est duo autem nibh feugait. Dolore possim sea ut gubergren invidunt elitr elitr clita. Est eirmod volutpat ea wisi nonumy amet te magna ipsum sed. Magna takimata gubergren sed amet rebum at aliquip et lorem dolor nonumy. Dolor eos et sit adipiscing sit nostrud lorem sanctus rebum consetetur stet diam sea no et labore. At voluptua invidunt sea aliquip at aliquip nostrud sed volutpat facilisi consequat et accumsan. Accusam magna ullamcorper lorem no wisi voluptua facilisis et sea in illum ea erat takimata et. Ut molestie takimata justo.