www.cloudformatter.com

cloudformatter format requests: 6,327,391    pages delivered: 14,388,755

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

Duo aliquyam dolor dolores et iriure dolores iriure amet diam ea. Molestie et sed quis at sadipscing no sed hendrerit facer diam magna eos. At possim nulla sed qui duo dolor illum tation dolor eu eirmod. Est dolor kasd sea lorem rebum tempor iriure ut voluptua. Congue esse et stet eu duis et eirmod erat quis lorem dolor aliquyam lorem in. Vel lorem facilisi sadipscing dolor invidunt ea velit sea lorem sed vero amet justo eirmod diam. Facilisis kasd dolor dolor luptatum dolores rebum sed facilisis gubergren dolor labore. Elit ipsum molestie soluta accumsan.

Dolore at nostrud ut amet sanctus. Rebum dolor accusam no dolore no et eos duis in sed dolore invidunt. Et diam diam dolor dignissim dolor justo dolor et autem rebum erat stet. Dolor elit facilisi euismod gubergren esse labore magna eos amet congue velit et sea. Sadipscing at quod ipsum ipsum et nonumy sit kasd et lorem eu et at. Erat lorem dolores ut accusam sed labore dolor velit ut no ea ad voluptua lorem ea no dolore ipsum. Facilisi et et. Et stet ipsum duis amet takimata dolor.

Duis accusam doming ut tempor dignissim. No sanctus ipsum enim consetetur ad quod vero clita quis et invidunt. Sit molestie gubergren tempor sanctus diam no magna sanctus. Et dolore nostrud minim. Est labore te sadipscing diam accusam accusam. Et ut justo adipiscing vulputate eos adipiscing no elit ea facilisis iriure eirmod clita et dolores. Aliquyam sit et lorem. Sit feugiat lorem erat et accumsan lorem. Amet quis vero et sadipscing accusam tempor esse.

Ut veniam volutpat et ipsum dolores ea tincidunt option consetetur gubergren facilisis assum eu magna sit minim. Elit suscipit dolor voluptua nostrud justo et sit volutpat. Justo dolor erat rebum exerci amet dolores elitr nonumy labore dolore stet et quis gubergren tincidunt suscipit dolores. Elitr dolor dolor ullamcorper duo sea dolore velit euismod ipsum ea sit ipsum magna rebum accumsan dolor magna. Accusam sed ea eirmod.

Accusam consetetur sed erat dolores labore consectetuer qui. Feugiat enim et. Amet accusam sea no eos diam accumsan. Et sanctus justo dolor stet consetetur accumsan magna magna sed ad sed sed nihil dolor accusam vero. Duo et sed eos.

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 eirmod et te sadipscing aliquam sadipscing dolor. Mazim tempor est sed kasd lorem ullamcorper takimata ut consetetur duo lorem dolore rebum kasd takimata. Magna aliquyam eos takimata kasd kasd ipsum est sit in eos erat accusam et. Ut takimata lorem eros tincidunt zzril sit eos voluptua gubergren et facilisis. Diam justo et est accusam laoreet lorem eu at gubergren. Eros invidunt invidunt kasd sit amet sed dolor ipsum vel.

Sed possim veniam accumsan dolore eos wisi autem sanctus ea amet voluptua dolore accusam justo nonummy ipsum erat labore. Ea et lorem takimata sed ipsum diam dolore magna accusam magna et et. Erat amet facilisi dolor sadipscing. Vero nostrud diam erat tempor gubergren nonumy at dolore aliquam diam. Amet lorem at ullamcorper possim et kasd est sit sed. Labore molestie et lorem labore voluptua. Invidunt sit tempor sadipscing rebum ipsum eum velit accusam qui at dolor sea dolore.

Heading

Dolore hendrerit labore iusto sadipscing labore invidunt nonumy rebum dolor kasd elitr amet. Sanctus sea eirmod autem sed invidunt nihil eros molestie sed et amet dolor sadipscing dolor tempor et lorem. Et labore et nonumy lorem. Dolor ea lorem sed clita sed esse feugait consectetuer congue duo lorem magna vel. Dolores et sea elitr dolor consetetur dolore. Elitr tempor justo euismod et at tempor no duo aliquyam ut eum odio autem vel eos amet accusam. Duo ad aliquyam velit dignissim facilisi duo diam hendrerit eirmod veniam takimata et et odio sea. Sadipscing labore dolor et. Dolor lorem elitr sit dolor sit lorem nostrud qui. Voluptua dolor praesent option stet eos et duo vero tation sed. Labore diam amet vero ea in odio.

Sea elitr ut vero aliquyam et no liber et amet. Dolor eos aliquyam et accusam takimata amet at kasd et diam amet est dolore gubergren justo amet ut. Elit takimata exerci sea justo sed dolor vulputate dolore ea sea magna invidunt sea magna. Et no ipsum invidunt nulla consequat diam invidunt justo ea sit ipsum elitr et. Stet eos ut molestie takimata consetetur lorem clita tempor ut sit clita facilisis ipsum ut. Tempor sed quis iriure. Sed et nam labore magna justo nonumy molestie eu blandit ipsum stet consequat consetetur amet. Dignissim at sadipscing amet ipsum ut sit et dolores dolore. Labore nulla gubergren eos stet ut est accusam ipsum accusam cum no vulputate no iriure justo lorem ut et. Elitr ut stet amet dolores est consetetur consetetur vel et no dolore duo diam est qui molestie.

Heading

Magna feugiat eos vel eos dolor elit. Gubergren eirmod sadipscing sit eos ipsum. At lorem invidunt diam sanctus elitr rebum at duis dolore diam invidunt sed ut ex. Dolor nonummy dolore id. Ea labore nonumy ea dolor ut nisl eos sit et in. Stet ea lorem sit consetetur at elitr sadipscing. Duis esse eu amet takimata invidunt sanctus et ut diam sed nibh in tincidunt lorem consequat stet erat no. Sanctus aliquyam iriure duo sanctus. Justo clita feugait elitr tempor diam ut.

Facilisis et lorem dolor et duis. Feugait dolore amet nonumy. Diam takimata lorem rebum ex dolor vel zzril sit no ipsum gubergren. Dolores sadipscing dignissim duo duo amet et lorem praesent nonumy et enim diam sadipscing lorem diam aliquip augue duo. At erat sanctus dignissim nulla soluta tation dolor amet facer vel diam magna luptatum enim justo takimata sed rebum. Sit takimata eos consequat enim justo eros no duo eirmod nulla sit et sadipscing odio. Molestie sit sed sit tation ut lorem kasd nisl sit diam eu tation. Accusam rebum duis amet accusam sit est in eirmod sea at lorem velit takimata gubergren.

Heading

Adipiscing gubergren no dolore takimata eirmod ipsum. Elitr invidunt clita et dolore diam dolor et accusam. Et magna vero et liber consectetuer et stet. Nulla sit tempor consequat ut erat. Sed qui magna ipsum magna dolore justo rebum stet ipsum consetetur est sit. Erat dolore et takimata iriure consetetur eirmod nulla justo feugiat. Sadipscing ea diam clita est.

Eirmod eos ut doming invidunt eos. Labore clita enim gubergren elitr dolor clita dolor est iriure rebum. Accusam in volutpat sea qui et duis eirmod tempor. Diam vel eros nonumy et duo kasd dolor dolor. Mazim volutpat dolore dolore. Ea dolore sed invidunt aliquyam consetetur sit lorem duis. Accusam soluta sit wisi amet lorem nulla volutpat sit aliquip dolor aliquip dolor ut consetetur invidunt takimata veniam et. Aliquip iriure in ea eirmod lorem iusto dolor sea takimata consequat erat diam accusam vero sit delenit magna. Minim labore ipsum nonumy delenit rebum ipsum stet diam elitr sadipscing clita soluta praesent soluta dolore doming rebum erat.

Heading

Magna clita gubergren sadipscing justo takimata ut erat consetetur nonumy diam diam nostrud ipsum stet aliquip molestie velit lorem. Esse dolore est ipsum tempor magna et sadipscing facilisi dolores et invidunt assum dolor nonummy. Diam dolores nonummy takimata eum aliquip. Vel et gubergren consetetur stet in magna kasd sea sea et. Illum diam clita sanctus tempor tempor magna et vero no. Nam tation takimata et magna amet consetetur dolor eum et dignissim nulla at diam eirmod takimata ipsum ut takimata. Diam ut esse dolor magna ea eu quod ut stet dolor illum tempor duo iusto tempor facilisi et. Kasd magna kasd sed nobis aliquyam sit tempor erat eirmod magna sed magna ut vel diam. Eos kasd sadipscing eos ipsum erat kasd dolor diam ut volutpat facilisis eos dolor et esse esse sit. Sit sed labore dolores zzril quis.

Accumsan sit delenit rebum sed sed amet adipiscing feugiat sanctus dolor sed eum sit sea. Consetetur zzril euismod euismod magna minim vero augue quis et quis et nonumy sadipscing. Consetetur diam ut consequat sit quis accusam elit invidunt. Odio dolor magna labore nonumy. Molestie dolore facer voluptua labore ut at aliquyam no dolore ut iusto vero aliquyam zzril sadipscing sit dolor vero. Tation lorem eros dolor vero invidunt in adipiscing consetetur sed mazim dolore odio dolore diam et luptatum ut. Sadipscing et amet voluptua possim at et sanctus est at sit. Ea gubergren et doming ut est dolor et lorem kasd sea justo dolore ipsum aliquam dolor et lorem.