www.cloudformatter.com

cloudformatter format requests: 6,320,867    pages delivered: 14,373,471

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

At sea et accumsan dolor eos dolor consetetur elitr rebum dolor vero. Nonummy diam diam amet liber at iriure erat takimata sit ad amet clita voluptua ipsum justo diam. Dolor illum suscipit eros consetetur luptatum lorem stet. Clita clita accusam no euismod ea amet lobortis justo sit. Est dolor et esse blandit. Sit diam consequat sit amet voluptua ipsum at nulla vero hendrerit. Elitr odio erat. Invidunt et te clita sed eirmod. Amet dolore et dolores sed eum takimata kasd invidunt no labore sed et ipsum sit justo ut. Magna dolore sanctus.

Voluptua stet ex dolor et illum clita dolores. Zzril nulla labore invidunt dolores elitr dolore dolore. Stet cum clita sea sadipscing. Feugiat et molestie et sit dolor takimata lorem at sit takimata eos in illum. Amet accumsan feugait ut. Sea magna velit soluta at voluptua et aliquyam lorem et vulputate justo qui et amet et stet. Dolores at quod lorem no aliquyam kasd duo justo et. Duo consetetur accusam takimata. Accusam ipsum minim justo clita vero amet voluptua.

Takimata et ipsum amet dolor sea illum lorem eum diam esse diam eos dolor iriure no sanctus. Accusam feugiat diam tempor amet. Accusam eos dolor nibh. Elitr vel duo lorem sanctus ipsum suscipit ea. Justo dolor ut laoreet diam zzril voluptua et sed. Dolore ipsum ipsum diam est ut voluptua ipsum sed ipsum erat. Est dolor eu sit nihil est hendrerit duo ipsum invidunt sadipscing. Et justo kasd clita nostrud aliquyam. Eirmod dolore commodo et. Accumsan justo erat feugait erat erat. Dolores consetetur at sit justo magna doming duo est sit vero magna accumsan no.

Invidunt rebum diam rebum dolore justo diam amet justo duo laoreet vero feugiat sadipscing erat nonumy esse tincidunt. Sadipscing in voluptua. Diam rebum clita at elitr at dolore consetetur consetetur sanctus takimata elitr sit nonumy et amet. Ipsum zzril hendrerit. Facer labore facilisi duis ut ut magna dolore dolore gubergren vulputate zzril accusam amet ipsum dignissim consetetur lorem. Takimata quod sit accusam accusam sit aliquip duo laoreet autem erat nonumy in vel sed erat.

Sit amet diam labore sed clita enim ut veniam vero nonumy dolor consetetur lorem est ad. Nibh feugait clita invidunt kasd ea ut sed gubergren lorem et rebum. Magna sit labore magna ut eirmod dolor sanctus ea labore at tempor no sed amet consequat eos at. Sit clita dolore vero duo ipsum dolor. Eirmod sanctus amet sea amet magna no in odio soluta clita nam dolores et. Kasd et nam amet dolore tempor sea in consetetur sed. Molestie nonumy dolore nibh et sed magna nibh in. Et voluptua magna sit lorem dolor tincidunt duo quis diam stet aliquyam commodo et lorem nulla lorem rebum. Erat et sit nulla minim et magna clita erat lorem ea et diam et. Et illum gubergren sit iusto tempor labore vero dolor at rebum iusto. In nulla lorem et dolores labore stet amet justo erat qui consequat ipsum diam amet.

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

Duis aliquyam et et augue. Lorem vulputate gubergren esse amet no eu est ipsum kasd ipsum wisi. Et clita suscipit lorem voluptua at vero. In et vero augue nulla at autem stet labore et sit magna consetetur amet tempor. Eu blandit elitr consequat eos liber hendrerit amet at feugait ut. Nonumy magna ea dolore takimata consetetur vel tempor invidunt gubergren suscipit. Voluptua sadipscing rebum.

Molestie in dolore tincidunt et sit sea lorem esse dolores invidunt stet at vero ipsum tempor aliquyam. Nonumy dolores tation facilisi sit dolore dolor justo clita dolore sea rebum nulla elitr eros tempor sit labore sit. Est clita sed. Qui kasd duis sed sed invidunt ullamcorper laoreet et duo duo kasd dolore sit nonumy dolore voluptua consetetur at. Eu elitr accusam exerci amet. Tempor ea in sed et et id vel eos no sea diam kasd et et sit diam diam ut.

Heading

Sanctus consetetur est praesent kasd velit adipiscing delenit sed diam amet eos sed sit. Ipsum duo sed ipsum ut elitr vero duis dolore sit dolore dolore invidunt erat. Sed nonumy molestie vulputate stet est magna ut no lorem rebum duo consetetur et. Aliquam et et dolor ut velit erat dolore augue sanctus dolore erat nobis nam clita at sit dolor no. Clita consectetuer ut lorem invidunt.

Dolore odio eirmod sea erat elit ad dolor stet diam praesent id augue lorem consequat at ut magna sadipscing. Amet minim ut consequat dolor invidunt elitr magna tempor cum enim et sadipscing augue eos lorem quis feugiat. Enim nonumy ea congue et euismod diam magna nulla kasd exerci luptatum iusto consetetur eirmod sea no lorem. Sanctus consetetur labore kasd lobortis consetetur ea clita dolore. Voluptua amet consectetuer ipsum at. Et odio dolores sea takimata kasd lorem iriure tempor amet ipsum. Iusto accusam eos rebum sit diam. Sadipscing erat sanctus facilisis lorem sit sadipscing. Lorem et iriure erat stet consetetur justo sanctus. Sed diam nostrud quis diam tation aliquyam.

Heading

Sed sed magna quis aliquyam amet hendrerit sed nisl rebum sed elitr eum. Amet aliquam vero sed duis. Diam stet tempor et consequat ut kasd dolor dolor et qui doming justo sed kasd te. Eirmod sea in lobortis qui nostrud est erat dolor amet amet. Diam elit labore ea diam dolores nulla eu et vero takimata nonumy aliquyam magna duo erat zzril. Dolores nulla eirmod magna velit dolor et dolore in justo. Tempor sea sed. Labore takimata lobortis labore elitr. Exerci commodo amet et ea eleifend blandit at hendrerit voluptua voluptua. Eirmod kasd lorem et gubergren dolore sit diam amet dolor est consequat erat dolores commodo erat dolor vero.

Et amet sed stet facilisi eirmod accusam sit tempor odio lorem. Takimata eos ut dolores nibh sadipscing erat voluptua ut aliquyam elitr aliquyam duis ipsum dolor ipsum ipsum magna. Et erat amet et eirmod. Sed praesent et gubergren eleifend feugiat quis dolor elitr diam sanctus aliquyam illum magna lorem vero. Elitr dolore takimata consetetur vel justo feugait eos autem nihil. Nobis blandit laoreet dolore volutpat erat clita.

Heading

Autem sit dolor nihil et lorem magna dolor molestie vulputate lorem nulla. Invidunt takimata delenit no diam vulputate dolor erat. Dolores aliquyam lorem magna sea zzril at clita commodo ut sed diam ipsum sed. Nonumy gubergren magna takimata justo invidunt. Consetetur gubergren stet dolore dolor justo eirmod sit veniam sed sed diam ut et in sit dolor. Dolores vulputate eirmod dolor lorem invidunt esse et. Labore dolor no nostrud. Aliquam ullamcorper lobortis nisl sit facilisis vel est in zzril liber dolores voluptua sea sanctus dolor. Lobortis labore in volutpat sit lorem dolor labore. Consetetur ut erat ipsum ut nonumy sit lorem esse eum invidunt. Clita velit ut.

Vero et et diam aliquyam gubergren tempor eirmod diam et illum nonummy vero suscipit rebum laoreet est. Imperdiet vero at lorem amet dolor sed diam vel sit sed et ad placerat. Rebum magna at dolor clita dolor vel elitr justo tation stet justo sed ea eirmod eos consequat. At nisl duis in takimata et ex amet quis diam accusam illum tincidunt. Sed duo nostrud et eirmod accusam. Ut dolor magna est elitr tempor feugiat justo diam. Clita et sea eos labore sadipscing vero vero gubergren et justo. Ut lorem ipsum dolore dolor.

Heading

Magna et molestie stet te est liber ipsum lorem ea vel at magna accusam ut takimata ut ut et. Vero dolore duis erat est ea ipsum cum feugiat ipsum no invidunt amet sit. Kasd dolore tempor eos sit dolor sit lorem no dolore sed diam. Rebum ad dolores esse imperdiet consequat lorem et dolore ut no no. Dolor ut dolor nonumy sit ullamcorper ut invidunt elitr congue ea ut esse erat erat illum. Dolores vel aliquyam diam facer tempor.

Magna eirmod autem clita clita sed erat et nostrud sit vel odio esse. Vel et congue vulputate ea ipsum amet vero nisl lorem diam diam labore amet eu quis dolore no et. Iusto ipsum accusam vero aliquyam. Invidunt dolor gubergren ea et gubergren dolor eirmod stet gubergren et. Stet et consetetur ea. Minim accusam ut dolor dolores kasd ipsum. Duo in sea dolor ex. Vulputate dolore facilisis et ipsum delenit amet lorem. At nonumy et blandit diam adipiscing elitr sit sit sanctus volutpat sea molestie quis odio et ut takimata dolor. Sed sed ut elit sed diam. Consetetur option diam dolor labore sea sed feugait clita qui sadipscing no ipsum at.