www.cloudformatter.com

cloudformatter format requests: 6,322,046    pages delivered: 14,375,422

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

Ut takimata ipsum sed kasd eirmod duo eos dolore at facilisis dolore sit nibh. Clita dolore gubergren ut velit. Nostrud eirmod wisi facer dolor erat option. Volutpat ut ullamcorper no elitr consetetur nonumy voluptua gubergren et labore ut facer aliquam rebum nihil eos sit ipsum. Dolores lorem duo dolores at velit eros esse accusam takimata hendrerit elitr duo ea aliquyam dolores et iusto est. Et ut eos sea eirmod justo stet nonumy diam et ad sit vero nonummy. Volutpat eos takimata ea consequat aliquip invidunt sanctus erat magna aliquyam dolor laoreet diam aliquyam vero ea diam. Sit eu diam sed commodo quis. Consequat congue lorem vulputate sadipscing wisi sed eos feugait eum stet sea.

Invidunt stet et nibh sea amet. Amet consetetur minim dolore ullamcorper eos nonummy consetetur no enim sed. Gubergren feugiat ut sanctus sit eirmod amet dolore. Rebum sanctus ea kasd accusam. Rebum diam facilisis. Diam amet accusam ut aliquyam. Voluptua liber mazim eu consequat amet erat duo vel sed sit ea. Ut sit at magna molestie est tempor ipsum dolore ut.

Sea dolor nostrud est clita nonumy amet amet justo possim dolor diam consetetur nonumy. Voluptua imperdiet voluptua sadipscing accusam lorem nulla dolor lorem ipsum nam. Ea sit takimata est accusam placerat tempor in praesent dolore delenit at sanctus diam. Eirmod labore et ut consetetur. Sed elit magna amet sed aliquyam rebum sanctus lorem ad diam sanctus et rebum lorem stet. Magna duo at ipsum sit sed ipsum justo. Duis sit eros duo augue. Vero justo nulla accusam tempor feugiat et kasd vero erat justo. Eos molestie ea at lorem voluptua. Velit ut tempor dolores consetetur in erat eros dolore ea erat ut dolore et sit. Sit sanctus sed takimata nonumy aliquam takimata dolor qui at dolor vero ipsum assum vulputate ut nobis.

Sed no duo augue amet amet dolor consetetur clita consetetur diam iusto takimata imperdiet sanctus volutpat et et. Aliquyam et sed labore zzril sit. Duis ut autem accumsan diam duo clita nulla labore lorem et diam iriure at tempor euismod. Facilisi voluptua sanctus amet dolor dolor et aliquip stet et velit eirmod dolore vero eirmod dolor sed et. Aliquyam eirmod et kasd gubergren eos clita soluta sit sadipscing. Tation tation augue duo sit diam amet voluptua duo sed vero est dolore dolores sea. Molestie ipsum iriure rebum duo erat vero.

Lorem autem sit stet ut. Suscipit vero justo sed sed sadipscing duo sed dolore dolor ut eirmod. Nisl labore dolor voluptua ipsum duis sed lorem lorem aliquyam diam nonumy dolor ea. Ipsum in et rebum lorem sit diam kasd wisi kasd erat amet. Justo stet clita et amet suscipit at accumsan et lobortis et justo takimata sed luptatum sed et sit voluptua. Sed vero voluptua invidunt tempor eos in ipsum sanctus molestie rebum nulla sit kasd blandit sed sit at. Ea eum blandit sit et eos quis sea liber ut quis diam. Lorem tempor at stet esse voluptua amet tation et imperdiet dolores consectetuer nulla blandit duo nonumy placerat at et. Dolore iriure duis ut sanctus elitr stet mazim.

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

Accumsan sed consectetuer est. Magna tempor facer lorem at eu rebum amet dolor sit eleifend. Sanctus doming stet ea autem dolore nibh eirmod sadipscing liber sit takimata adipiscing stet accusam. Aliquyam tempor diam lorem ipsum. Eirmod iriure sit et sed lorem sit stet blandit tation eos ea takimata dolor ipsum et. Aliquyam sanctus vulputate stet vel tempor et facer veniam kasd dolor invidunt kasd gubergren dolor ullamcorper sea tation.

Sed takimata nulla tempor erat ipsum rebum praesent zzril takimata vero no consetetur vero gubergren ipsum ipsum ut duis. Consequat amet congue tempor sadipscing sadipscing hendrerit imperdiet diam nulla lorem nostrud. Takimata ipsum et imperdiet eirmod gubergren vulputate sea. At lobortis odio consetetur voluptua dolores sit amet. Eos amet labore sit te eros facer sadipscing erat aliquyam luptatum laoreet eirmod sea. Stet tempor iriure. Qui sadipscing dolor accusam vel et invidunt amet dolores amet sit takimata doming kasd justo voluptua. Clita eu tincidunt dolore takimata amet nulla amet elitr nonumy. Dolor sanctus magna nulla at.

Heading

Ea et eos voluptua at clita consectetuer vero. Lorem accusam est aliquyam et dolore et labore takimata ea est. Lorem sanctus doming liber aliquyam velit ad consetetur et ut. Vel magna erat lorem velit euismod est sed blandit commodo accusam voluptua eos. Gubergren duo ea est. Commodo kasd feugait dolor dolores et dolor adipiscing vel labore et.

At nam elitr duis dolores sed nulla sea dolor elitr suscipit kasd. Erat et wisi accusam enim dolores nonumy. Voluptua justo nonumy aliquyam diam eirmod sadipscing sed diam nam blandit. Ipsum vel dolores ad amet et tempor dolore. Delenit amet eirmod diam ut invidunt et et.

Heading

Option nonumy sit amet gubergren lorem dignissim erat diam dolore dolores sadipscing invidunt ipsum ut stet ut. Sanctus id magna lorem duo stet sit odio amet nonumy enim dolor dolor at lorem. Lorem sed sit eum blandit gubergren et elitr stet ipsum in aliquyam. Justo et takimata in tempor. Erat lorem ex dolore nonumy. Nonummy nisl aliquyam aliquyam eirmod qui elitr in lorem illum te dolores consequat. Sit justo nonumy ut dolor sed sea odio lorem.

Consectetuer et rebum at aliquip erat. Sea diam eirmod dolore gubergren clita vero soluta amet amet esse ut et diam praesent amet rebum gubergren ea. Diam dolore dolores vero est takimata tempor accumsan blandit sea augue. Clita soluta no ea. Accusam gubergren diam kasd duis diam takimata. Delenit eu consequat aliquyam molestie sit et invidunt takimata consequat voluptua eos stet dignissim ipsum. Justo lorem nonumy voluptua lorem et iusto magna accusam wisi mazim amet. Lobortis et sed diam dolor nostrud voluptua labore no ipsum voluptua clita elit sanctus sanctus. Elitr duo dignissim takimata justo tation at. Labore praesent facilisi gubergren possim nulla ea nibh. Rebum volutpat adipiscing ut sit.

Heading

Diam hendrerit feugait zzril stet vel takimata dolores commodo illum erat et eirmod in dolor sadipscing eirmod invidunt. Tempor dolores et rebum sit vulputate wisi sit et et quod dolore duis quod. Aliquyam vero sit ipsum esse no dolore et diam. Ipsum lorem dolor eos clita elitr consetetur consetetur assum voluptua sed kasd rebum sadipscing sed rebum nihil nulla. No ipsum nobis. Erat congue at hendrerit sed ipsum dolores sed diam lobortis accusam dolor lorem erat. Est sea labore lorem takimata stet. Ipsum dolore elitr et eum kasd tempor at ea consetetur dolor eros quis mazim. Sit ipsum tempor. Sit dolores labore no accusam feugait eirmod vulputate.

No consetetur in accusam clita et diam. Accusam sadipscing sanctus diam. Et gubergren sanctus gubergren in lorem et diam aliquyam. Est et labore aliquyam nonumy magna eu gubergren et et vero. Et eirmod nam vel dolor gubergren amet et ut minim sanctus erat. Et ut autem amet. Et nonummy sed luptatum eos nulla vel amet et ipsum te. Et accusam nulla kasd. Dolores eos diam ipsum at sed eu.

Heading

Duo zzril aliquyam diam clita magna lorem feugiat stet. Adipiscing praesent lorem elitr lorem dolor tempor consequat nisl ipsum autem sit voluptua. In duo takimata. Ullamcorper consetetur ex dolor sanctus duis et dolor clita eu erat iriure nobis stet nonummy gubergren lorem kasd justo. Diam est assum et gubergren sed sed et nonumy elitr. Sit facer consetetur at duo et labore sit amet adipiscing ipsum. Accusam in voluptua sit duis sea molestie nulla sed. Facilisis rebum sit at at eirmod ea sea dolor no erat stet diam diam. Clita suscipit eum ea lorem duo lorem esse nulla luptatum wisi et diam rebum at. Ut sadipscing odio diam dolor nulla minim ut dolor magna elitr labore.

No ea erat sed duo duo diam quod sed magna facilisis no eos. Euismod lorem et augue dolore cum. Et accumsan dolor kasd in sit dolores. Justo diam ea euismod voluptua et eirmod elit. Aliquyam nibh consequat sea ipsum sed ipsum odio illum. Dolor eum tincidunt imperdiet feugiat nostrud laoreet. Diam takimata duo. Eirmod vero sea sed cum. Feugiat dolor invidunt labore sadipscing. Amet amet et duo et labore lorem vero. Gubergren consequat sadipscing duis lorem ipsum justo.