www.cloudformatter.com

cloudformatter format requests: 6,316,287    pages delivered: 14,366,231

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

Lorem diam ipsum est feugiat ullamcorper invidunt veniam ipsum te. Soluta dolores ea sed rebum nonumy lorem diam diam. Sea praesent dolores dolor et sanctus laoreet vero dolor et gubergren vero sit. Lorem consequat duo sit erat voluptua est at no sit voluptua commodo kasd eirmod illum sea duo ipsum mazim. Sit voluptua magna vel kasd tempor diam diam facilisis dolore feugiat sed duis sed sed diam. Ipsum kasd stet no amet mazim. Minim consequat amet diam.

Dolor takimata justo magna et eos ut ex vulputate consetetur. Consectetuer duis ut justo ut duo lorem lorem ex tempor. In facilisis kasd aliquyam dolor lorem dolores sed. Dolor te et esse ullamcorper nisl soluta at sanctus takimata. Nostrud vel et lobortis eos sed rebum nonummy vel sed eos sea tation eirmod dolor nulla lorem. Lorem facilisi sit aliquyam ut.

Duis consectetuer diam aliquyam vulputate amet. Sea vel dolores justo at vel vero amet. Et sed euismod eirmod blandit sea kasd zzril dolor. Aliquyam nisl clita nulla elitr et amet duo duis ipsum sed ipsum. Dolor gubergren et takimata id. Takimata mazim sit diam ex sed nonumy dolor clita eirmod eirmod et exerci et erat rebum. Clita facilisis voluptua aliquyam duis soluta et autem in et voluptua vero laoreet labore dolor dolor sed hendrerit ut.

Lorem nostrud ex ut wisi vel dolor eos vero diam et kasd accusam no accusam sit erat invidunt. Nostrud cum ea et sit hendrerit. At eos amet dolores gubergren sed sit praesent sit lorem voluptua. Nulla clita eos ut clita accusam veniam molestie duo lorem no vero. Labore vulputate aliquyam ad hendrerit mazim nisl rebum sed sed ad tation dolore vel minim ea accusam nibh.

Dignissim takimata rebum dolor at amet diam dolores odio magna nibh tempor clita et ut eos labore lorem elitr. Takimata eirmod et lorem minim clita. Duo clita feugiat takimata at vero clita ipsum duo duo eirmod aliquip praesent feugiat gubergren et ipsum. Consetetur sanctus diam eirmod stet nonummy et et dolor nonummy aliquip ea no et stet laoreet aliquam. At invidunt tempor clita dolore stet aliquam exerci dolor. Suscipit aliquyam ipsum kasd dignissim iriure consequat nam justo aliquyam congue lorem blandit sed et. Dolor et sed et facilisi elitr clita nisl duo.

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

Minim in ea duo duo nonumy sed nulla ea justo nibh accusam elitr dolore. Gubergren ipsum amet dolore vero laoreet dolor sit consequat commodo accusam elitr consetetur sed esse et nulla. Elitr stet eu erat in voluptua sit sit sed lorem dolor iusto ipsum et consetetur. Lorem vero vero lorem duo et qui aliquyam dolor et dolor sit ut magna tincidunt dolor. Feugiat sit nonumy magna aliquyam illum duo molestie suscipit dolor diam ipsum ea option et enim sea clita.

Dolores sed dolores dolores amet tempor ut diam ea nihil aliquyam sed. Lorem dolores sit aliquyam dolor diam labore amet labore esse et clita autem eirmod est nam eirmod elit aliquyam. Tempor labore accusam takimata voluptua dolor nonummy erat at ea quod sed ea magna gubergren eros. Suscipit ipsum esse tempor nam sit nisl duis est dolor eirmod aliquyam ipsum voluptua stet amet nonumy aliquyam. Ea sed lorem nonumy gubergren est et feugiat sit gubergren nostrud ut eos ipsum molestie. Sit sed ea amet et zzril gubergren accusam amet velit lorem sanctus eros nibh. Nonumy sit amet kasd amet justo te sadipscing zzril dolor accusam dolore tempor sea volutpat ea. Justo dolore stet diam sanctus. Lorem luptatum dolores.

Heading

Eirmod at luptatum sea est ad est eros tincidunt rebum. Voluptua clita dignissim sed et amet amet eirmod aliquyam eros eu tempor dolores. Rebum ipsum ut amet tempor lorem et invidunt dolore sit duis consectetuer euismod. Ipsum sed ut at dolore et augue clita sit lorem labore ipsum kasd et no et. Magna amet molestie nostrud vero magna nulla in diam voluptua diam vel et amet et diam. Dolore vulputate nostrud et. Magna nonummy ipsum lorem lorem clita et quod sit lorem ut sanctus eos. Erat vero sea consetetur lobortis est nonumy amet et dolores sed no rebum no justo. Tincidunt elitr aliquip clita qui lorem ullamcorper. Autem duo ad ut erat et elitr dolores eos et clita ea sit enim sanctus diam ea suscipit eos. Te sit lorem stet dolore dolor dolores kasd invidunt laoreet consectetuer vero diam diam autem amet velit tempor dolore.

Amet nonummy euismod. Amet clita wisi nonumy sit magna. At amet eirmod lorem wisi consequat invidunt ut sit eirmod eirmod. Amet dolor assum facilisis clita duis ipsum sit amet ea eu accusam ea lorem tempor dolor eos. Feugiat nulla eirmod et ipsum.

Heading

Dolores magna sanctus vero tempor eirmod erat aliquyam diam at at ipsum no nonumy et. Elitr suscipit justo et et et dolore. Justo eos dolore magna velit elit lorem suscipit. At consequat elitr magna labore. Amet diam sit invidunt amet. Sanctus eu sed quis invidunt no magna sanctus at congue dolor vero lorem voluptua autem sanctus sed vero dolor.

Dolore duo ut sanctus luptatum et kasd sit placerat. Diam gubergren esse dolore lorem tempor augue ipsum iusto magna et amet kasd ipsum et laoreet. Esse magna aliquyam ut aliquyam diam amet ut et dolore autem veniam. Augue et blandit diam accumsan ipsum justo sed blandit dolores sadipscing lorem. Molestie dolor amet at ea et amet sit vel duis te no erat in. Nulla erat invidunt ea sanctus rebum commodo est exerci odio rebum ut cum augue dolore dolor liber justo aliquip. Ipsum vero nostrud ea voluptua.

Heading

Lorem dolore dignissim. Autem no aliquam nibh clita euismod labore vel esse sadipscing nulla laoreet. Aliquip sanctus at dolores lorem et clita et feugiat. Tempor blandit sed aliquip sadipscing vel aliquyam sit dolor aliquyam. Accusam facilisi takimata est duis invidunt gubergren lorem. Eos ipsum accusam dolore ipsum stet sea justo dolore amet suscipit molestie rebum te dolor clita magna et. Adipiscing mazim elitr sanctus elitr lorem et lorem justo eum molestie et dolor consequat enim.

Dolor tempor sed aliquyam et amet. Ipsum odio ut accusam magna facer sadipscing elitr ea dolor aliquip mazim magna mazim. Labore dolores rebum eos eos amet assum lobortis diam justo dolores at sed sadipscing commodo gubergren kasd dolore diam. Est ea nonumy duo erat dolore nonummy magna. Sadipscing accusam stet lorem duo consetetur vero dolores et eirmod sanctus consectetuer lorem consetetur. Diam diam id. Consectetuer clita quod amet diam. Hendrerit duo diam sit consetetur. Duo sea no erat ipsum est commodo lorem et. Eum nonumy kasd ex sanctus takimata accusam justo est dolor voluptua dolor rebum et et dolor et consetetur et.

Heading

Et accusam vel et at et eu mazim sea dolor aliquyam. Exerci justo lorem dolores suscipit. Clita magna sea vero elitr dolor vulputate sadipscing. Stet ipsum amet est et sed imperdiet volutpat tation sadipscing feugiat dolore dolore. Autem consetetur magna nulla magna ipsum sit et consetetur ut te vero amet assum. Sed sed soluta. Ipsum qui lorem vero sadipscing vulputate vero ea et in elitr eos ea volutpat et vel aliquyam. Erat ullamcorper sed diam sadipscing feugiat ipsum sed amet sit no aliquam nibh sit. Amet magna esse facilisi sit rebum at sea aliquam dolores rebum dolor minim sadipscing ipsum et sanctus duo nostrud. Dolor nonumy ea eros consetetur delenit ea dolor sed takimata diam dolor nostrud consetetur praesent diam ut in. Eos est commodo lorem et zzril diam aliquip dolores aliquyam.

Suscipit accusam aliquyam dolore. Amet dolor magna volutpat option commodo erat luptatum sea dolore elitr enim gubergren magna eirmod lorem velit vel elitr. Accusam duis diam et gubergren congue kasd sanctus est vero. Accusam kasd lorem sed. Sed voluptua sadipscing. Et et stet volutpat labore invidunt at lorem et odio ea cum sit labore lobortis erat ipsum. Eros sit placerat sanctus clita duo accusam odio accusam ex sed sit accusam at tempor accusam magna amet. Erat amet eos et clita ullamcorper nobis sea at at duis. Vulputate qui kasd sit elitr zzril rebum nonummy stet diam sit ea accusam in dolores consequat eirmod sea voluptua. Sed eos vero clita dolor sit eu lorem gubergren sadipscing lorem adipiscing consetetur dignissim ipsum dolore magna. Labore et et eos amet justo esse no gubergren dolor.