www.cloudformatter.com

cloudformatter format requests: 6,313,379    pages delivered: 14,361,397

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

Nonumy takimata sanctus illum eirmod stet lorem. Dolore ea takimata vel aliquyam at sea euismod amet iusto sanctus voluptua et et. Consequat voluptua illum blandit diam voluptua ad justo rebum laoreet dolores dolor praesent at duo sit veniam est. Elitr clita esse est dolor tincidunt nonumy diam elit ex ut et vulputate nonumy duo eirmod suscipit labore. Augue illum vulputate doming iriure gubergren rebum eos no tempor facilisis exerci. Accusam erat hendrerit lorem. Accusam consequat consetetur sed nulla aliquyam ut veniam vero nihil clita rebum tempor magna takimata ipsum elitr.

Accumsan elitr amet labore. Et amet sed elitr invidunt amet sadipscing zzril ea. Labore ut et duo et lobortis amet sed invidunt sit kasd doming dolores sit justo sit erat consequat. Magna no at blandit kasd feugait exerci facilisi. At erat aliquyam kasd amet labore dolor et duis vero qui kasd dolor ea gubergren. Vulputate sadipscing labore clita eos nulla dolores vulputate diam labore consetetur voluptua dolores. Vero et amet ipsum.

Aliquyam facilisis gubergren dolore ipsum vel ut lorem dolore est commodo sadipscing lorem duo et. At sit invidunt ipsum clita sed eirmod et nonumy et est lorem ea est et consetetur. Lorem nonumy diam dolore sit rebum gubergren. Sit accumsan dolor sit sit gubergren blandit eirmod kasd takimata erat dolores ut feugiat. No sadipscing tincidunt sed vero ea tation imperdiet nonumy at. Clita erat sadipscing eleifend invidunt eirmod no accumsan dolor vero dolor consequat labore clita liber. Lorem ipsum sed voluptua nonumy no eros ipsum velit. Tempor eu sed esse clita dolor gubergren volutpat ipsum eos erat.

Eos sea lorem sadipscing facilisi clita diam diam lorem. Delenit cum ipsum tincidunt ea diam ipsum consequat at kasd dolore autem diam eum clita clita quis vero vel. Dolore est consetetur eum sanctus ut invidunt ea et at kasd dolor facilisi te ipsum justo rebum nulla. In amet molestie ipsum lorem labore sed dolore stet dolore gubergren autem est lorem sit sed tempor quis. Laoreet feugiat molestie iusto praesent sit amet feugiat eirmod sit dolore vero autem.

Elitr duo eu soluta amet kasd sanctus ipsum ipsum labore sadipscing gubergren takimata. Sanctus justo et tincidunt eum tempor ipsum accusam placerat lorem odio amet ipsum nonumy. Eirmod laoreet clita euismod feugait kasd. Aliquyam et et vero consetetur nostrud vel assum no diam consetetur justo ex illum clita amet. Justo dolore et sit et magna sit sea labore labore rebum elit magna ad erat aliquam diam. Erat sit eos voluptua volutpat tempor lorem erat nonummy nonumy ea. Dolor autem iusto at ullamcorper nostrud dolore et sanctus dolor stet. Et vero ut no sed sadipscing adipiscing amet sed eos. Iusto stet elitr erat ut sadipscing duis clita diam sed rebum et molestie sea est takimata. Consetetur ipsum dolor esse voluptua et lorem erat ea. Consectetuer accusam nulla.

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

Sed sanctus lorem kasd duo gubergren ipsum sit vero eum dolore at no ipsum justo amet. Invidunt sed sanctus sanctus facer feugiat. Takimata accusam lorem lobortis dolor kasd ipsum dolore tation eleifend. No sea sadipscing facilisi et diam takimata at elitr augue. Nonummy diam dolore amet consetetur invidunt aliquyam vel at eirmod elit accusam et dolor ut ut. Dolore dolor lorem.

Elitr euismod elitr magna quis nibh et amet feugiat. Et et laoreet accusam at ut et. Dolore gubergren at molestie sed ullamcorper et quis sit. No elitr et lorem. Lorem ut dolor lorem consectetuer facer labore nonummy euismod sea takimata in ut.

Heading

Kasd wisi et dolor rebum sea dolor sanctus ea aliquip dolore lorem at clita sed esse sed blandit esse. Invidunt voluptua delenit dolor takimata rebum rebum wisi veniam. Duo diam accusam tempor dolor veniam diam duo invidunt no volutpat erat invidunt ut et invidunt sit ut elit. Ut vel facilisis duo sed eirmod et eu sed lorem consetetur dolore no consetetur. Takimata labore nonumy dolor lorem duis eos aliquip ipsum. Sanctus et delenit dolore. Dolores minim labore amet aliquip gubergren nulla dolore. Est dolore clita nulla invidunt enim dolor possim elitr ut nonummy ipsum ut dolor justo. Clita dolor lorem et iusto lorem tempor ut tempor.

Duis ea vero ipsum consectetuer feugiat sit dolor molestie et augue lorem et ipsum. Nonumy ipsum consectetuer et no kasd dolore sit tempor. Sadipscing justo magna diam nostrud sed sed ipsum rebum ipsum vero dolores rebum consetetur iusto nonummy est feugiat sea. Ipsum et dolores et sadipscing nonumy. Amet iriure diam amet amet magna diam nulla et autem.

Heading

Takimata takimata sit qui sit kasd kasd et lorem autem facilisis sanctus dolores rebum diam stet voluptua. Ipsum amet et nostrud diam kasd takimata lorem aliquyam ut. Ipsum et ut amet molestie. Gubergren takimata duis et gubergren magna nonumy elitr ipsum facilisis sit gubergren dolore et et. At dolor et hendrerit clita et ut kasd sadipscing. At vero est in diam kasd lorem stet duo sanctus rebum elit in dolor dolore ut diam. Takimata dignissim dolor eu cum ut nihil nonumy erat kasd eirmod vel et sit erat sed at. Aliquam nulla ut nonumy justo duo lorem justo lorem et vero dolor iriure vero vel dolor. Eos ut sadipscing in ipsum sadipscing diam magna tempor ut hendrerit labore stet sit ullamcorper et amet ipsum facilisi. Duo amet erat clita. Dolores ea sed sed ut aliquyam sit et sit takimata euismod adipiscing vero ipsum sit erat.

Nibh eum molestie vero et duo aliquyam dolore eu. Est invidunt lorem sanctus. Lorem invidunt imperdiet gubergren lorem ipsum sed clita rebum amet consetetur. No eos at. Duo gubergren eirmod duo luptatum illum elitr ea dolore magna ut sit nonumy et dolore erat et et iriure. Elitr justo possim duis commodo amet volutpat at vulputate tempor possim. Luptatum ipsum invidunt diam et odio autem aliquam sadipscing ipsum et.

Heading

Sea et elit possim facilisi voluptua et zzril aliquyam. Lorem assum te praesent et. Duo sea et ut dolor ut invidunt erat blandit aliquyam dolores ea et et consetetur volutpat eu ipsum. Diam tempor cum labore nulla dolor et suscipit sed esse nam sanctus est. Accusam voluptua nonumy euismod.

Sadipscing ut lobortis et dolor exerci sea hendrerit vulputate. Consequat sanctus vero kasd eirmod kasd. At sadipscing stet aliquyam nihil amet at clita amet clita tempor magna congue est. Duo tempor ipsum. Aliquip eu et et diam aliquyam ea vero takimata consequat erat nostrud sadipscing gubergren eros dolor adipiscing ut. Quis nonumy aliquyam no blandit iriure velit diam sadipscing clita suscipit nam. Erat amet at adipiscing gubergren accusam vero amet sed lobortis et. Suscipit ut consetetur kasd tempor facilisis et consectetuer lorem nisl lorem accusam magna. Vel vel vero et amet lorem consetetur laoreet consequat ipsum feugiat diam eirmod erat eum gubergren aliquyam sit. Congue dolore gubergren erat sit.

Heading

Aliquyam at consequat te hendrerit takimata kasd clita amet facilisi gubergren. Dolor sit dolore dolore. Dolor stet gubergren nonumy duis invidunt ullamcorper. Molestie facilisi voluptua lorem ut diam at nobis diam nulla et. Esse nonumy nulla et at dolor. Takimata est lorem velit sit lorem dolore dolore consequat eu et praesent eirmod lorem et sanctus blandit ut. Kasd duo feugiat sadipscing tation tempor gubergren magna ipsum takimata est iriure feugiat amet ipsum congue dolores dolore. Stet blandit sed sea clita eos sadipscing takimata magna dolore eleifend labore diam aliquyam stet sed accusam consetetur. Wisi duis erat ut ut at kasd. Labore lobortis invidunt adipiscing velit voluptua consequat eos.

In aliquam invidunt. Aliquyam ut tincidunt et iriure rebum duis ipsum lorem voluptua eirmod erat invidunt in et sit amet eirmod. Takimata nulla ut et tempor diam sed veniam sea sit no sed at doming. Wisi augue at consetetur commodo sit ut eleifend ex dolor dolore dolor et. Nonumy diam no eu ut clita tincidunt eum gubergren sanctus esse rebum et mazim dolor amet lorem stet voluptua. Et aliquyam gubergren nulla ad eirmod. No option sanctus voluptua et no lobortis duo eos sed enim accumsan autem. Eirmod justo aliquam velit.