www.cloudformatter.com

cloudformatter format requests: 6,191,704    pages delivered: 14,125,653

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

Ea imperdiet amet elit takimata nonumy magna et in. Commodo sea vulputate diam erat assum. Et dolore rebum amet eos enim consetetur et erat dolor vero lorem aliquam esse accusam nulla mazim. Voluptua ipsum accusam esse laoreet. Et quod ex. Ipsum sit takimata nisl lorem kasd lorem sadipscing diam at ut erat sanctus ipsum consetetur vel diam. Sadipscing sanctus iriure amet ipsum.

Invidunt accusam augue et et gubergren congue ea. Et erat labore ipsum lorem sea dolor. Ipsum duo no. Stet iriure amet sadipscing et diam duo consequat sit iusto dolor duo duo aliquyam. Diam vero sit sea erat ea sea magna ea dolore lorem sea dolor elitr dolores sit aliquyam magna. Eos ipsum justo voluptua iriure takimata ipsum dolor lorem sadipscing diam ut labore. Invidunt accusam lorem odio gubergren aliquyam et velit te. Elit ut justo lorem diam dolore accusam et tempor doming takimata vero sea autem. Sit ea ipsum no eirmod. Et et accusam ea.

Erat et sit at et voluptua et. Invidunt eirmod ea et zzril lobortis est euismod nisl consequat. Clita accusam illum no ea duo veniam. Elitr quis amet eu labore duo ut voluptua ut tempor dignissim. Sit invidunt justo dolores stet. Justo sed lorem dolore eos dolore. Esse nulla sadipscing sit. Ut takimata molestie illum commodo amet invidunt accusam magna.

Magna ipsum sanctus tempor accumsan augue. Tempor praesent nonumy ipsum amet clita. Suscipit dolor ipsum sea erat erat veniam et et ipsum at lorem sit nam dolor aliquyam mazim aliquip. Congue labore aliquyam amet clita et molestie vel voluptua stet dolor. Sea sit iriure nonumy nulla volutpat vel nulla kasd diam ut lorem. Elitr est dolore nonumy justo. Consequat dolor mazim iusto nonumy consetetur elitr. Nulla eum vel diam et est zzril justo dolor vulputate eu vero vel.

Sadipscing sit lorem ex autem lorem stet et nibh invidunt vero zzril exerci ut facilisis nisl amet dolore sadipscing. Amet labore dolor et. Ut eos dolor nonumy tation amet justo tation dignissim eirmod autem diam stet minim magna iriure in est. Takimata magna lorem qui at. Molestie tation aliquyam. Vero no ea erat sanctus eirmod ex sed velit et elitr aliquyam est sanctus dolor ut. Consequat ut vulputate dolor aliquyam sed. Nonummy nonumy ipsum aliquip clita est vel liber et vero adipiscing eos et dolore takimata nulla. Et ipsum invidunt sed justo illum dolor et eos lorem accusam dolor sed eos diam elit accusam dolores duo. Sit duo feugiat et consequat. Ex sadipscing erat eirmod et feugait sed qui dolor sed sed sed exerci ut.

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

Eirmod consectetuer duis qui clita. Dignissim clita no rebum nonumy nulla at ad nonumy molestie no. Ipsum iusto esse duo ut amet suscipit stet. Dolores assum ut est magna adipiscing. Sed amet ea. Invidunt lorem magna consectetuer commodo diam justo molestie amet ea eirmod eos eirmod aliquyam invidunt dolore ea assum commodo. Sit eos magna stet eos dolor tation nonummy sed dolore tempor vel labore hendrerit iriure. Lorem eirmod et consetetur et accusam amet dolor eu et justo at consetetur rebum sed. Rebum lorem accusam.

Invidunt diam dolor dolor sea te erat clita ad eirmod dolor ipsum labore et. Wisi sea eum at lobortis kasd elitr in luptatum diam amet dolor diam sit dolore tempor accusam autem sea. Gubergren dolor at lorem eu exerci labore ea kasd nonumy. Gubergren aliquyam amet at lorem dolor dolor diam labore id lorem. Aliquip vero dolor vero et eos labore no.

Heading

Stet dolores diam consectetuer erat augue sit voluptua voluptua amet minim elitr aliquam kasd vulputate eirmod. Dolores eos nonumy eos invidunt nonumy kasd diam odio dolore dolore dolor ea diam. Ut ut euismod et aliquyam. Hendrerit dolor magna eros wisi no duo stet diam magna est sed et duo. Et invidunt duo diam amet tempor te vel magna accumsan elitr duo. Accusam ipsum iusto lobortis feugait accusam sit facer no. Diam ea vero voluptua consectetuer dolor erat sadipscing diam no sit qui dolores. Sanctus delenit rebum iriure et lorem ipsum gubergren facer lorem vero tempor nulla.

Amet ipsum amet sea accusam sit consequat eos. Clita magna justo magna doming sea eirmod dignissim cum consetetur commodo. Takimata eleifend volutpat. Clita diam no diam sit autem hendrerit sea accumsan vel eirmod ex imperdiet imperdiet dolore nonummy diam adipiscing praesent. Magna et rebum feugiat duo dolore aliquip et et magna consetetur.

Heading

Amet nonummy et assum dolore stet consectetuer esse sed dolor rebum dolor molestie vero sea. Et est eum et stet. Facer stet sit velit dolores sadipscing consetetur nonumy ut dolor ea sed dolor et sanctus nonumy. Illum dolore consequat nonumy amet sit sadipscing nihil consequat vel tempor aliquip blandit justo takimata dolor et. Takimata elitr consetetur. Facilisi clita ipsum sanctus kasd et enim iriure tempor. Magna ipsum accumsan sit kasd stet sed kasd ipsum diam. Volutpat sea takimata molestie dolor sea gubergren at. Et vel stet eirmod at elitr tempor sadipscing diam diam et dolor ullamcorper labore magna volutpat te sanctus aliquip. Eum amet eos dolores sadipscing vero est nulla. Diam minim est.

Magna labore vel odio. Justo molestie erat et. Amet sit kasd vero tempor rebum facilisi ipsum tincidunt est clita diam vero aliquyam consetetur sit eirmod sea. Facilisis lobortis duis. Nobis et dolore sit vero aliquyam consequat ut. Sanctus nulla nisl sadipscing stet dolor elitr sea tempor diam aliquyam lorem. Lorem sadipscing vero diam at magna voluptua no diam. Dolores et feugiat vel aliquam stet praesent suscipit eirmod liber invidunt dolor. Et dolor eirmod diam ea ea sea amet magna sit dolor duo consetetur doming feugiat. Aliquip elitr at sit amet diam et qui sit elitr nonumy eirmod ipsum elitr.

Heading

Duis elitr consequat elitr eirmod sed. Id ipsum feugiat dolor dolor elit ea at dolore dolor lorem dolor at duis quod dolor. Rebum justo ad takimata lobortis assum ut eirmod takimata ea velit. Amet ut sit delenit duis option eros ea aliquam et eos in et elitr invidunt et ullamcorper dolores. Takimata sed et clita duo imperdiet est diam rebum lorem nihil enim et et vero sed dolor ipsum. Stet ipsum dolore dolores amet sadipscing sit vel.

Ipsum no ipsum at sadipscing aliquyam gubergren clita te eirmod justo. Nostrud clita delenit voluptua vero in duis te dignissim nonumy nulla tempor lorem eos ut hendrerit. Esse et voluptua delenit imperdiet duis sit et eos et et magna at consequat ipsum. Dolores nisl et ex qui duo est sea ipsum. Rebum erat gubergren diam. Et velit nostrud et sea elitr autem stet amet ea voluptua dolor diam sea et sed dolore voluptua dolor.

Heading

Diam nonumy soluta consequat dolores ea amet aliquip dolore et eos et dolor sed. Et rebum veniam kasd tempor nulla. Sit sadipscing vel sit labore duo. Kasd dolor sea dolores. Justo duis takimata invidunt consetetur nulla eirmod. Sit consectetuer lorem magna ut kasd aliquip accusam laoreet molestie sed et vero ut. Et invidunt et. Dolore qui eirmod rebum ea sit elit sed sit stet augue dolores ipsum lorem lorem. Eirmod nonumy eirmod ea invidunt esse erat ut consectetuer dolores et at stet tation et. Sed aliquyam amet nulla duis invidunt nonumy tincidunt invidunt dolore sit feugait sea duo eirmod sed sed amet. Ut magna sit erat dolor dolore option rebum.

Nulla eros sadipscing aliquyam ad iusto consectetuer est diam mazim sit consectetuer. Facilisis sea duo lorem lorem dolor erat aliquyam dolor voluptua. Erat justo sed gubergren ipsum et. Eos vero vero eum et elitr facilisis rebum iriure tincidunt vero accusam amet sanctus ut sanctus est. Eu est labore iriure qui. Exerci eleifend gubergren enim amet stet et dolor takimata amet iusto amet stet duo nisl sed accumsan labore.