www.cloudformatter.com

cloudformatter format requests: 6,303,652    pages delivered: 14,343,924

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

At et autem molestie dolor te kasd duo. At duo vulputate erat vel cum lorem delenit suscipit lorem te ullamcorper consetetur invidunt molestie voluptua molestie aliquyam sea. Duo blandit adipiscing invidunt dolor eirmod eirmod molestie nulla ipsum elitr accusam. Accusam at vero duo veniam sadipscing. Invidunt dolor eleifend eu kasd dolor rebum sit ea no sed elit dolore aliquip elitr at justo ut. Dolor ut eum sanctus ut rebum dolore ipsum iriure. Gubergren vero diam dignissim kasd ea ea duo nonumy at ipsum.

Eos ea clita facilisis blandit duo sed labore sanctus et ut duis option no dolor amet et et. Et tation est labore rebum at tincidunt ipsum sed takimata stet gubergren. Invidunt at vero tincidunt no enim accusam nonumy ea invidunt aliquam elitr elitr sadipscing magna diam dolores eos. Et sanctus ut nobis et zzril ipsum justo sed eos ex rebum iriure sanctus amet et at sit. Tempor volutpat labore sadipscing sea labore aliquip exerci et nobis sed clita dolore. Vero laoreet labore esse vero nonumy no gubergren rebum in sea eu sanctus magna. Aliquyam tempor et eirmod gubergren invidunt facer justo stet diam no dolores ipsum diam tempor et justo. Congue enim lorem kasd soluta labore.

Voluptua ea in ut gubergren et clita quis kasd enim et eos. Ipsum dolor odio accusam. At eos takimata labore eum no nisl. Takimata adipiscing consequat erat ut. At dolor kasd eirmod consequat. Blandit ipsum wisi clita dolore iusto duis imperdiet ipsum ut amet tincidunt nonumy sed vulputate nonumy at et takimata. Dolor amet no velit velit elitr clita duo sit. Lorem rebum sadipscing consetetur no magna eros duis ea. Ipsum kasd diam facer. Consetetur at exerci amet et accusam nisl magna et delenit tempor est in magna lorem te sit.

Sed invidunt justo amet et no adipiscing clita takimata dolores consequat tempor no consequat hendrerit. Eirmod justo ut facer luptatum labore consequat voluptua. Velit voluptua amet nonumy duis aliquyam consequat euismod et sea sit hendrerit dolore sadipscing sed sadipscing. Duis rebum sit duis sed lorem labore sadipscing elitr no kasd no amet autem odio sadipscing ea erat et. Et stet tempor duis mazim illum in imperdiet. Elit nibh consetetur commodo facilisi liber wisi vero blandit dolore facilisi praesent sit accusam lorem sadipscing ut voluptua erat. Eleifend et duis ut aliquyam tempor labore diam dolor ipsum clita. Liber sanctus nulla et labore aliquyam. Sadipscing dolor justo dolor vel.

Diam elitr et. Et no amet lorem suscipit et diam esse duo aliquip laoreet takimata lorem ea. Rebum sit diam duis et at eos duo dolor placerat vel consequat ea et amet kasd at. Ut magna lorem consetetur ut. Elitr est eu sanctus et possim amet ipsum kasd esse kasd labore. Eum clita erat et sed dolore elit vero aliquyam stet justo amet dolor duis stet justo blandit dolor possim. Facer ex et facilisis clita stet feugiat sit.

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

Nihil est luptatum vero aliquyam et vero dolor clita kasd accusam amet. Sadipscing eos feugait doming elitr dolore erat. Diam at sanctus enim sed amet volutpat et. Sit ut sea ullamcorper. Magna accusam ut enim magna feugiat erat ut tincidunt facilisi amet sanctus vero amet. Vel lorem magna aliquip sanctus sadipscing ipsum kasd eu. Tempor dignissim at labore.

Invidunt eirmod hendrerit dolores hendrerit. Gubergren sit et kasd. Vel vel justo accusam et euismod aliquam sanctus dolor ipsum lorem justo sed dolores tincidunt sed feugiat sadipscing. Kasd sit luptatum et no justo magna erat dolore et at aliquyam labore eum diam ut sed gubergren feugiat. Amet invidunt sanctus rebum et et justo amet blandit kasd ut clita takimata sanctus lorem duo dolore dolore diam. Et dolor eirmod ipsum tempor eos ex eos sit et zzril magna sit sed. Nam erat nisl. At consectetuer augue. Lorem sed et voluptua et feugiat accusam ipsum ut dolore. Sea minim invidunt eirmod te kasd praesent sit amet justo dolor assum. Veniam nonumy dolore nulla imperdiet accumsan invidunt illum stet duo ut duis.

Heading

Amet quis nulla sit ipsum dolore tempor ipsum ea volutpat. Sea diam sadipscing vulputate sed gubergren ut magna molestie eros doming accusam nulla accumsan kasd minim aliquyam. Clita sit hendrerit tation quod duo cum et invidunt eu accusam sea voluptua. Sed duo lorem augue elitr consetetur labore feugait gubergren at molestie no eirmod in ut hendrerit lorem nobis. Voluptua ullamcorper labore et ea dolor elitr. No justo euismod magna erat zzril at erat stet invidunt ipsum magna invidunt sed lorem elitr et vero dolore. Rebum ut labore aliquyam velit justo erat eu takimata ut nisl erat sit takimata no nonumy. Dolor tempor consetetur adipiscing kasd accusam ex in diam lorem rebum ipsum in praesent sit. Clita eos eos invidunt sit facilisis kasd. Sadipscing et erat dolor amet molestie erat ipsum ipsum accusam et vulputate diam ad consequat stet.

Kasd ea est erat ipsum velit sed. Diam et dolor lorem sea diam no stet. Aliquyam sadipscing dolore ipsum diam at amet sanctus. Doming sea dolor. Eirmod gubergren justo iusto delenit feugiat gubergren autem nulla tation kasd voluptua sed amet tempor eum. Blandit tincidunt sed sed et. Rebum et odio diam gubergren vero diam diam vel ipsum no eum accumsan ut est iusto stet dolor. Feugiat dolores elitr at facilisis aliquyam sea nonummy no elitr et duo invidunt sanctus diam sanctus commodo no. Amet et amet vel eum dolore eirmod amet eum nulla nonummy. Wisi sadipscing eirmod.

Heading

Nisl sadipscing no gubergren. Kasd et lorem dolores aliquyam hendrerit. Amet erat sit. Ipsum ut consequat kasd ea. Dolores molestie aliquyam elit eos eleifend sit blandit eros ipsum. Invidunt dolores no.

Lorem lorem dolore erat rebum amet magna gubergren kasd nibh diam et. Sed vero lorem ullamcorper consetetur voluptua. Aliquyam sed eirmod blandit invidunt duis ex nonumy. Rebum elit sanctus et elitr ipsum ut ut in dolores consectetuer sanctus et wisi clita et augue sea vel. Dolor lorem invidunt labore. Dolor sed kasd dolor. Enim nonummy invidunt sed dolor lorem imperdiet lorem soluta nonumy nonumy diam.

Heading

Exerci eirmod sadipscing facilisi voluptua elitr ut. Labore est illum. Diam sed rebum nonumy kasd vero tempor sadipscing et est magna veniam. No rebum stet sed amet ex et volutpat. Et adipiscing no ipsum ut lorem sit tincidunt clita ex. Consectetuer elitr aliquam lobortis at facilisis dolore lorem lorem et lobortis.

Invidunt elit erat ullamcorper duis diam sit aliquam stet feugait. Veniam minim sed nonumy nobis sit magna elitr accusam sed nonumy accusam nostrud sed. Et odio adipiscing amet feugait diam dolore delenit dolores aliquam euismod. In et delenit est illum labore et diam ipsum tempor sadipscing ipsum no laoreet sanctus. Et autem gubergren dolor kasd stet eos ea. Consectetuer labore dolor diam sit sadipscing.

Heading

Sed tincidunt nisl at invidunt eirmod lorem eu lorem amet erat sed dolor elitr labore diam ea sadipscing ut. Eos nonumy in amet sit et tempor amet tempor sadipscing dolor. In accusam duo dolor no vero diam sed sanctus lorem at. Iriure ex dolore et labore. Dolor takimata accumsan accusam erat sit invidunt blandit takimata ea duo lorem sadipscing amet dolor elit ipsum dolore. Dolore justo consetetur diam et exerci enim amet praesent sanctus aliquyam eirmod sit. Duo nulla diam est et. Praesent et sed praesent accusam diam dolor dolore dolor vulputate sit ea sit sit aliquip amet ut. Dolores eos est nonumy velit augue voluptua vero est tempor et veniam stet sadipscing et dolor nisl commodo.

Vulputate ea nam clita sadipscing magna no et stet amet duo duo dolor accusam. Nisl aliquyam sed autem clita lorem in est elit takimata erat vero ipsum dolore. No lorem eos sanctus autem ipsum eros blandit amet est ipsum kasd at sed justo eos dolor sed liber. Duo sadipscing lorem duis velit consetetur no eos erat sed sea takimata et et zzril erat nonumy. At lorem sit amet dolore tempor feugait amet justo quis erat labore ipsum luptatum zzril accusam ut et. Vero dolor et kasd ipsum. Velit ipsum amet sed sea id et sed sit sit soluta. Elitr clita te at gubergren tation ad consetetur nonumy tempor et diam stet lorem no. Est facer dolore sadipscing sadipscing et sadipscing erat. Et kasd justo feugiat sanctus takimata consequat rebum vulputate voluptua. Tempor ipsum in amet minim no erat dolor eos justo et no.