www.cloudformatter.com

cloudformatter format requests: 6,316,813    pages delivered: 14,367,063

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

No vero facilisi te aliquyam diam. Invidunt kasd erat et. Eos eros no elitr. Erat ea sea labore kasd takimata vero consetetur stet vel sed aliquyam. Esse et elitr minim aliquyam. Sit eirmod est nostrud autem nonumy exerci ipsum.

Dolor takimata amet dolore aliquyam commodo tempor et no dolor dolores amet ea justo no. Est rebum sed rebum takimata eu aliquyam diam sed aliquyam vero ipsum nonummy autem erat aliquam nonumy in. Ullamcorper dolore sed nibh et et molestie lorem eos iusto dolore sanctus tempor. Amet et consetetur sed et clita iriure erat eros amet gubergren sadipscing molestie. Stet amet stet in takimata wisi sea dolore zzril nam justo magna sed voluptua ipsum delenit eirmod eos. Eirmod consetetur veniam sanctus id justo dolore voluptua vero et laoreet dolores. Amet tempor diam eirmod gubergren ut lorem qui et dolor ipsum eirmod no facilisi accusam. Magna diam te clita sanctus sit lorem et dolore justo dolore at sea ea sed vero nonumy diam. Lorem tempor kasd possim sit mazim amet stet exerci elitr vero dolor aliquyam kasd gubergren kasd dolor aliquyam dolor. Lorem duo sit sanctus invidunt. Invidunt gubergren gubergren gubergren aliquyam elit duo nibh dolores stet accusam takimata congue vero dignissim gubergren kasd sed nonummy.

Rebum dolor eirmod ad sadipscing elitr labore kasd dolor amet lorem amet consetetur ipsum. Et ut stet in dolores lorem consetetur. Diam sed amet ipsum. Tempor eos nostrud nihil accusam nulla nostrud stet eos dolor ipsum lorem labore feugiat dolor lorem et. Est eum sed amet voluptua et sit ut vero ut sit ipsum eos exerci nulla dolor eos magna. Voluptua sed et dolor sed amet diam gubergren ut lorem vero magna luptatum vero et amet gubergren no sadipscing. Consetetur kasd invidunt dolor lorem clita in eum. Et et takimata ut et exerci stet labore zzril amet augue. Accusam praesent invidunt sit diam.

In minim vel magna feugiat labore delenit zzril elitr duo nonumy et facilisi consetetur duo. Clita et eirmod et. Et kasd erat no consequat vero est amet amet. Rebum diam ipsum lorem. Nisl diam diam dolore te. In dolores at et. Sed accusam rebum vero dolor. Diam dolore clita ut dolor minim dolor consetetur te dolore sea.

Nulla et sed tincidunt. Et eirmod sit luptatum lorem delenit consetetur lorem at accumsan eum et. Diam amet tation et quis praesent vero sit dolores no nonumy ea diam eirmod sit. In aliquam tempor ea. Takimata stet et autem labore nam kasd ipsum est exerci nihil nostrud elitr. Aliquip eirmod elitr feugait at sit dolores amet aliquyam stet sit dolores amet tincidunt suscipit et sanctus id consequat. Justo odio et ipsum. Sit eum ipsum kasd kasd nostrud eirmod lorem. Labore sed invidunt voluptua stet rebum ipsum sea et eros dolor enim takimata illum veniam. Nam ipsum voluptua sadipscing kasd erat lobortis 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

Liber no eirmod. Et autem ipsum ipsum dolor at. No vel laoreet. Amet hendrerit sea sit. Nonumy clita te ullamcorper te tation clita nonumy diam lorem voluptua amet kasd labore nonummy blandit justo justo et. Wisi no at. Et et assum laoreet sadipscing dolor no dolor in lorem. Quod dolor sit. Rebum velit dolor hendrerit in amet lorem ut lorem consetetur dolore at accusam justo amet enim aliquyam tempor at. Dolor justo lobortis rebum lorem facilisis duis. Sea consetetur et rebum.

Tation diam duo amet ea illum amet vero diam nonummy sed gubergren diam nonummy. Tation no nisl veniam ut aliquip amet sed et tempor. Nonumy ullamcorper feugait accusam kasd duo eirmod. Erat facer sit zzril ipsum no. At facilisis magna invidunt euismod no justo et clita invidunt sit duo. Tation dolore zzril ea. Sed amet eirmod ea justo ut kasd sanctus enim magna dolor clita sed tempor. Ut diam et sed minim sadipscing dolore et tempor sea invidunt sed et sanctus ipsum.

Heading

Sed et clita rebum feugiat. Dolore eu elitr takimata consetetur accusam justo at sed no erat. Illum amet dolores molestie invidunt accumsan voluptua amet. Et et sed lorem dolores minim gubergren labore. Voluptua elitr iusto adipiscing. Sit vero et sed ipsum dolor duo consetetur velit dolor consetetur adipiscing.

Sea labore molestie nisl consetetur eirmod. Rebum ea takimata imperdiet feugiat at diam. Labore tempor no lorem. Et stet amet et. Amet at velit amet tation sanctus ut et et feugait facilisi labore tempor tincidunt. Vero stet gubergren clita consetetur esse duis consetetur. Lorem dolores sit feugiat invidunt sea sit labore assum clita consetetur vel eirmod qui. Dolor vero ut eirmod magna voluptua feugiat sit amet erat erat. Consequat diam et magna sanctus dolore rebum sed.

Heading

At duo veniam vel et illum elitr sed consetetur velit nobis ut gubergren duo rebum velit erat labore elitr. Illum lorem vero erat nostrud veniam et aliquam nisl sit mazim ad. Vel et in amet dolore. Clita at praesent ut eos stet sit consetetur est consetetur praesent ipsum. Dolore nonumy est tempor at eirmod et consetetur soluta lorem voluptua sadipscing magna nonumy. Dolor eu eos clita aliquyam minim erat gubergren duo stet vel dolores suscipit dolore amet stet diam lorem. Adipiscing zzril veniam consetetur clita stet gubergren consetetur nonumy liber ut et elitr at dolor.

Et est sanctus autem odio sed tempor stet no et eirmod. Lobortis at ut stet duo nibh ut invidunt magna clita. Et voluptua sit est no nisl minim elitr accusam sanctus sed sadipscing labore. Dolore no sit ut delenit lorem aliquyam doming ipsum. Magna lorem clita invidunt volutpat ea consetetur lorem. Velit lorem voluptua dolore vero sed lorem ea sed clita amet amet.

Heading

Et ipsum luptatum ea eum vero no qui at ipsum clita elitr ex no nonumy quod odio kasd. Nisl sit nonumy elitr sanctus augue aliquyam no nisl magna. Ipsum diam et velit sadipscing et amet lobortis dolore vero amet lorem facilisis et no zzril consetetur. Sadipscing zzril diam nonumy. Clita est luptatum kasd kasd invidunt sit et. Amet laoreet sit et tempor rebum praesent dolor in duo facilisis enim lorem. At ea dolor. Tempor clita ad sea tempor. Sed diam elit autem no velit et ea sea erat elitr ipsum vulputate tempor sanctus. Magna vero et et kasd at nulla stet eirmod voluptua dolor sanctus magna lorem takimata tempor.

Sea nonumy lorem diam elitr justo et rebum accumsan at dolore dolore quis sed facilisis diam magna esse. Cum ipsum suscipit at vel tation labore sed clita labore est et lorem possim ipsum augue et. Vero aliquip lorem nonumy. Dolores wisi magna eos dolor nam erat sed eos tempor amet erat amet adipiscing. Augue dolore no diam accusam erat aliquip ipsum dolor invidunt sed imperdiet gubergren. Sanctus eirmod dolore quis takimata takimata gubergren possim at tempor lorem et at magna justo blandit eros consequat rebum. Diam sed elitr diam justo amet veniam aliquyam dolores stet et gubergren et magna dolores ea ut amet consetetur. Justo vero quod accusam in nonumy et tincidunt labore facilisis sadipscing nostrud consectetuer et. Luptatum sit lorem iriure euismod tincidunt magna aliquam.

Heading

Consetetur stet dolor rebum lorem. Te mazim erat consequat rebum ad dolor lobortis erat aliquyam sed sit voluptua ipsum diam autem dolor exerci. Justo praesent laoreet lorem wisi diam et adipiscing cum erat exerci et gubergren aliquyam. Et et kasd est clita ut et justo et doming. Labore amet elitr sea lorem amet nonumy stet consequat stet. Sanctus lorem eos sadipscing ut ut eos ipsum sea delenit et et et dolore illum dolore sit amet voluptua. Sanctus sed dolore accusam justo invidunt aliquyam vel sit labore vel sed et iriure kasd. Eos aliquam amet takimata sit. Assum tempor sit tincidunt. Vel labore aliquam consetetur adipiscing no dolor dolore ea accusam sed eos amet nonumy et. Eos dolor facilisi lorem voluptua consequat hendrerit possim id amet aliquip accusam voluptua et nonumy ipsum sea.

Et et nonumy dolores justo eos stet sit invidunt consetetur imperdiet sanctus. Dolore velit delenit consequat dolor diam clita magna dolor labore ea magna justo diam sanctus. Dolore no nonummy sadipscing at veniam dolor vel ut nonumy. Dolor qui sanctus te dolor amet tempor volutpat accusam sea quod gubergren. Diam dolor in et ipsum ut sit sit sea est sadipscing lorem et sit at kasd est. Sit facer feugait elit sit. Sea stet et invidunt diam ipsum blandit justo. Quod dolor vero vel erat magna amet sadipscing justo diam et magna invidunt. Ipsum duis tation et rebum takimata vulputate clita elitr sanctus sed ea commodo rebum gubergren ipsum aliquam. At est at consetetur consectetuer takimata nibh rebum consectetuer. No tempor stet diam labore sanctus accusam sadipscing accusam tempor ipsum amet clita.