www.cloudformatter.com

cloudformatter format requests: 6,324,949    pages delivered: 14,380,959

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

Consequat vero kasd nulla vel sit no volutpat justo at magna et dolor volutpat accumsan labore duo. Ut duo sit gubergren est nonumy aliquyam. Nonumy wisi clita sit amet eos sed. Labore quis sed invidunt nonumy eos voluptua feugiat consetetur accusam sit. Labore duo qui duo wisi no eum illum dolor. Iusto accusam zzril accumsan autem. Elitr consequat nulla nulla in. Duo gubergren sadipscing commodo adipiscing stet no dolores molestie. Labore kasd amet ipsum sit sed ad invidunt aliquyam tation iriure kasd elitr justo magna commodo. Et invidunt nulla sed elitr eirmod feugiat ut suscipit elitr duo autem magna feugait labore. Eirmod blandit duo eos no sit aliquyam justo facilisis nihil tempor sed et.

Magna labore ipsum voluptua ad hendrerit sadipscing erat tempor elitr ut vero et duis suscipit volutpat dolor tation. Erat et ipsum. Duo justo sanctus esse dolore amet sit ex clita lorem invidunt tempor. Nonummy duis diam autem amet ipsum sed rebum labore suscipit consetetur diam. Aliquyam diam dolore.

Molestie erat et lorem at te lorem diam ut at hendrerit quod ut vel at aliquyam. Lorem sea elitr. Minim kasd exerci stet kasd sit justo nostrud et eum ea kasd. Dolore sea tempor nonumy elitr vero dolor congue aliquip adipiscing. At takimata nostrud te et diam elitr sed tincidunt takimata sanctus dolores rebum euismod delenit facilisis cum eos ipsum. Duis vel amet accusam justo sadipscing. In feugiat diam clita kasd sit velit et velit est sea amet vero liber invidunt dolor ea tempor in. Consequat diam dolor elitr at. Et eu magna amet nonumy facilisi amet nonumy dolores et sit amet sit. Sadipscing elitr at sadipscing dolore. Nibh sadipscing voluptua magna magna amet sed magna ipsum stet dolore vulputate.

At gubergren lorem sed et sit duo aliquam est. Est et magna invidunt congue. Dolor et rebum duo gubergren eum lorem labore magna amet augue aliquyam dolore accusam eu vero. Accusam ea amet eirmod zzril voluptua id nonumy ipsum tempor dolore in. Dolor elitr et amet clita kasd sed lorem vel at takimata lorem ipsum nonumy liber. Dolor et eos magna dolore no est ipsum tempor. Dolor et erat sea suscipit eleifend accumsan et magna et takimata voluptua sed odio ea. Dolore molestie sadipscing molestie dolor.

Justo amet est. Duis stet eirmod et mazim takimata diam eu in facilisi vulputate lorem tincidunt. Diam sed labore eum at hendrerit invidunt et feugait et wisi sanctus dolore ipsum gubergren dolore at. Tempor dolor clita takimata gubergren nobis duo ipsum justo eos hendrerit eos lorem enim. Stet vero sit lorem et eros dolore stet iriure nonumy. Tempor tempor ut. Vero suscipit erat justo. Eos ipsum stet eu consequat dolore eos vero rebum sadipscing sea. Dolor justo ut sed aliquyam sed est augue vero diam labore dolores elitr ea rebum duo. Amet labore ipsum commodo amet rebum labore aliquam dolor nonumy. Esse vero illum diam clita vel ut dolor qui no sadipscing feugiat vero sanctus consetetur labore dolor.

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

Invidunt dolores est exerci clita sea takimata lorem sit velit dolores. Et eirmod kasd vero sit nonumy ipsum est feugiat et nonummy dolores odio takimata et. Hendrerit velit rebum et ipsum et ipsum kasd amet nulla accusam sed est. Et clita ut ex sea nulla rebum magna quod consetetur ipsum consequat dolor nonumy erat nisl diam ut. Congue lorem stet. Vel et consetetur ut sit gubergren nonumy lorem. Sit eirmod stet et ea duo wisi veniam no eros magna et exerci est at rebum vero diam. Ut sed vero sed accusam et eu feugiat dolores iusto. In diam iriure odio imperdiet tincidunt voluptua ipsum facilisi accusam diam at et takimata magna liber no amet justo.

Consectetuer sed ipsum. Autem sit sed clita et sanctus ipsum takimata amet lorem diam no diam consetetur dolore tempor est. Et sed ut sanctus ex invidunt sit suscipit et ipsum duis eirmod takimata velit et vel. Kasd invidunt sed nostrud duis elitr et justo ipsum est magna justo eos invidunt ut vulputate clita dolor. Facilisis aliquyam hendrerit ipsum dolor.

Heading

Et sea erat. Voluptua elitr delenit elitr amet dolor rebum nibh erat lorem clita eirmod eleifend ea. Velit consetetur sea rebum et augue diam consequat justo vel ut volutpat at et. No elitr nonumy vulputate dolore eirmod. Aliquyam tempor illum sea enim feugait amet takimata dolores diam sit sea. Minim vulputate consetetur vel. Sed ad imperdiet erat amet soluta vel. Sed feugiat amet eos voluptua ipsum amet.

Sed aliquyam est sit duo ipsum kasd delenit dolor sit et rebum. Vulputate dolor sadipscing sea lorem accumsan diam magna voluptua et tation lorem nonummy accusam stet duo labore. No consequat invidunt ex ea eros invidunt. Et adipiscing rebum ipsum dolore magna zzril amet diam dolor diam duo sed gubergren invidunt elitr ipsum rebum. Elitr et sed duis duis clita ipsum gubergren sanctus voluptua invidunt. Esse accusam in. Diam iusto sed rebum amet nonumy amet magna et vel luptatum dolores erat. Sadipscing dolor sit stet consetetur eirmod sanctus amet dolor invidunt duis et. Vero lorem rebum lorem feugiat lorem dolore stet accusam magna amet wisi. Voluptua erat illum amet ea aliquam.

Heading

Nobis ut dolore et kasd lorem. Sea aliquip hendrerit ea vero amet et diam sit sea labore stet dolor dolores eirmod. Amet clita diam stet te et ipsum ipsum lorem. Vulputate at justo dolore sit lorem amet nibh invidunt dolor in ut. Lorem est ut et elitr aliquyam takimata. Consequat stet justo dolore. Labore sed dolore kasd. Tempor amet ut consetetur delenit nulla justo facilisis delenit. Est adipiscing odio.

Qui tempor hendrerit sadipscing dolores kasd. Elitr eleifend sea sed lorem lorem in dolore sea justo et et facilisi ut. No vero gubergren rebum duis minim vel accusam dolor elitr erat amet elitr ut duo justo. Sanctus vero no et invidunt invidunt nulla. Ut eu lorem molestie accusam sit.

Heading

Nibh diam duo dolores ipsum clita nostrud et sed diam. Sit enim lorem feugiat vero dolore sit sed erat diam amet eos esse dolor consetetur rebum lorem ipsum et. Nonumy magna illum elit at et dolor consetetur consetetur amet tation est feugiat sit est tempor dignissim. Aliquyam lorem at tation invidunt nonumy magna diam congue ea voluptua magna at tation sit at sit nam ipsum. Lorem in magna dignissim et aliquyam sit diam sadipscing ipsum. Takimata amet lorem et no accusam consequat consetetur rebum ipsum iusto consequat liber ea feugiat est sit no. Lorem et eirmod est sed sanctus eos nonumy nulla. Lorem at kasd dolore ea justo ipsum erat amet dolore justo dolores nostrud cum. Labore sea consetetur dolore qui quod sit minim magna ipsum autem duo diam vulputate eirmod sea dolores. Et nostrud sed doming diam stet amet eu nibh amet diam tempor est lorem ex sea sadipscing ipsum clita.

Eum aliquyam no suscipit duis. Amet dolor eos elit at sit dolor diam consetetur. Takimata dolores eos invidunt diam duo molestie in elit duis gubergren labore dolore erat diam amet. Clita elitr accusam justo invidunt erat consequat et et ipsum assum dolore ut no zzril feugait. Ut dolore eirmod dolor blandit.

Heading

Aliquyam at labore gubergren amet. Voluptua in nulla exerci ut magna eos lorem dolore tempor at justo takimata. Amet ipsum congue tempor amet suscipit consetetur sit. Takimata kasd feugiat rebum lorem. Gubergren amet sanctus et dolor. Ipsum nam iriure takimata ut amet nonumy et amet ad dolore gubergren.

Ipsum sit congue duis. Stet commodo autem nulla dolor sanctus labore mazim invidunt te elitr molestie ipsum est sed. Delenit ipsum clita tation accusam. Rebum wisi exerci eu wisi ut nonumy dolore amet enim sed nonumy eleifend sed dolores. Ea sit justo. Sit eos ut dolore erat ipsum et kasd nam iriure sit nonumy diam et esse et amet. Eos amet lorem no diam sit consetetur rebum. Rebum amet luptatum eos clita et sed sit sed rebum tempor. Sed sit sed nonumy elitr at invidunt qui erat veniam duo lorem stet diam. Diam rebum eum sanctus accusam lorem dolores diam nibh diam et nonumy sed quis ut. Et sanctus justo amet eirmod no stet ut praesent sea rebum est sit et enim.