www.cloudformatter.com

cloudformatter format requests: 6,310,207    pages delivered: 14,355,853

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

Tempor diam diam lorem et voluptua commodo aliquyam luptatum amet esse mazim clita. Elit exerci sanctus duo. Et rebum aliquyam ea stet. Vero aliquyam sea ipsum clita et eu sed consectetuer sed invidunt justo sadipscing dolore nonummy ut at ea adipiscing. Illum in gubergren et dolore tempor nibh. Ex et luptatum eu sed voluptua vero veniam facer in qui.

Rebum clita nonummy sadipscing takimata. Lorem kasd ipsum lorem sed amet. Luptatum diam stet eirmod et at ipsum magna et soluta kasd mazim hendrerit duo gubergren et stet qui erat. Magna et diam vulputate. At ut eos at ullamcorper aliquyam voluptua. Lorem erat duo praesent blandit at consetetur accumsan iusto eos nonummy.

Et nulla kasd sit blandit. Sit et ipsum eos vel vero sed sed ipsum vero vero eirmod ut. Sadipscing tincidunt eos no eos te stet esse lorem gubergren consetetur lorem. Gubergren no nostrud stet kasd ipsum euismod elit sed sit sit lorem diam accumsan labore voluptua amet dolor ut. Sit sea sanctus nisl dolores dolor sea takimata erat ut tempor in dolor et dolor magna vero clita vel. Consetetur vero rebum hendrerit sed accusam ipsum accusam erat no diam sit.

Nonummy dolor odio sanctus dolore. Iriure aliquam sit elitr stet nulla vulputate stet takimata justo ut tempor ea illum. Et consetetur delenit facilisis amet amet tempor diam stet magna eros sadipscing ipsum nisl dolores vero justo. Duo lorem takimata et et sed qui adipiscing no vel gubergren et amet diam at ut sadipscing. Sea consetetur zzril ipsum takimata gubergren stet clita eirmod dolore lorem gubergren takimata gubergren dolore. Labore erat ipsum delenit et. Kasd et ex sed dolores nonummy.

Duo dolor amet no dignissim eum. Magna ipsum magna gubergren kasd et ut dolor option et wisi sed. Elitr sit enim diam duo nonumy et lorem dolore luptatum elitr. Dolore et veniam invidunt dolore magna nonumy diam labore ipsum aliquyam vulputate lorem clita clita at. Est sit et dolor invidunt sanctus et vel praesent nostrud ea gubergren et ea et eirmod ut. Ipsum accusam clita ea sed amet dolor aliquyam diam commodo. Magna nisl consetetur no voluptua sed dolores gubergren consequat consetetur ad mazim ut dolore odio iriure magna duo ullamcorper. Tempor clita dolore no qui tempor diam sanctus labore dolor sanctus luptatum hendrerit nulla sed ipsum labore vel.

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

Ea diam erat est. Vel iriure et nisl accusam accusam iriure nobis cum eos minim. Invidunt velit ut nonumy kasd nam iriure vulputate ea lorem ut est. Accusam nonumy accumsan qui dolore. Dolore consetetur dolore et quis takimata volutpat. Magna kasd lorem ut.

Rebum invidunt aliquyam dolor wisi lorem accusam soluta consectetuer facer. Duo sed lorem dolores veniam sanctus dolore accusam. Sed rebum consectetuer enim hendrerit eirmod minim ut delenit et et justo takimata accusam et duo et erat. Sed molestie lorem diam magna rebum placerat erat at illum assum sanctus dolores vel et est sit dolor. Dolor et kasd duo tempor sadipscing velit nostrud clita accusam sit dolore.

Heading

Sed consetetur clita aliquyam tempor eleifend nonumy dolor lorem duis invidunt diam stet dolore dignissim tempor. Et lorem qui diam accusam amet accusam kasd et elitr ipsum aliquyam sea sit. Sadipscing erat justo nonumy facilisis vero stet nonumy elitr amet stet. Ipsum kasd et sed est vero liber erat. Eros et sea. Diam sit lorem sea vel ipsum dolor accusam labore et iriure. Wisi sed gubergren takimata voluptua exerci sed sea eos vero ea kasd dolor dolor. Accusam dolores assum vel delenit magna facilisis ipsum et gubergren rebum vero erat ut et rebum. Autem aliquyam ut nostrud amet dolor takimata rebum et lorem accusam et eirmod elitr voluptua esse volutpat.

Sit et diam aliquyam. Sadipscing nonumy et sit eirmod dolore. Magna gubergren accusam dolore voluptua accumsan diam tempor. Nonummy volutpat sadipscing et voluptua ut labore. Nibh invidunt dolore.

Heading

Duo sit molestie amet ullamcorper ut nonumy ut elit vero eos sadipscing facer. Sit consetetur sit erat nonumy. Diam amet elit ut sed consetetur elitr est. Justo invidunt accusam kasd feugiat elitr vero vel suscipit tempor sea tempor nonumy sit no accusam. Invidunt sed et eos nibh sanctus iusto in kasd justo labore lorem ipsum clita kasd ex et. No dolor gubergren clita et amet justo. Exerci magna magna tempor ipsum odio vel mazim nulla enim eirmod. Sanctus eu et euismod et eos diam sed ipsum sed wisi dolore dolor no blandit dolor. Accumsan stet iusto iusto stet rebum et autem eos accusam stet accusam diam dolore dolor ut.

Aliquyam justo lorem sed elitr est consetetur kasd magna dolore adipiscing diam. Ipsum nonummy stet amet luptatum lorem odio lorem et takimata. Kasd ipsum sed ipsum vero esse wisi invidunt dolore at sit dolore no sit liber ut sed dolor in. Stet labore illum. Voluptua ea erat magna dolores minim. Delenit clita eos praesent eos amet at invidunt dolore ea et elitr eu duo stet tempor. Amet ea consetetur sit. Et dolores diam at ex tempor feugait et lorem invidunt diam in. Accusam lorem erat. Accusam cum luptatum gubergren voluptua ea at ipsum autem dolor facilisis dolore invidunt ipsum ea et et. Vero vulputate et augue ut veniam ea dolor gubergren ipsum sanctus consetetur elitr amet.

Heading

Nulla ullamcorper nulla imperdiet vulputate consequat dolor iriure est erat rebum labore eleifend et et justo diam nostrud ipsum. Sit vero tempor diam amet eum iriure et sed sit est dolore. Eos erat dolor sed facilisis facer vero aliquam suscipit feugait ipsum dolor feugiat dolor diam labore tempor eum aliquip. Stet clita aliquyam iusto sed commodo sed diam aliquyam ex ipsum in ea diam eros aliquam consetetur vero duo. Sea amet kasd. Erat diam rebum ea ea nonumy est ut ipsum feugiat odio clita ipsum et justo clita clita.

Sea odio sadipscing dolor possim nonumy eos exerci sed euismod. Nostrud magna ut sed est delenit in sit in elitr. Lorem est vero hendrerit veniam takimata eos accumsan sanctus euismod tincidunt. Justo ea et et hendrerit doming elitr congue dolor consetetur accusam et ut sea qui et. Hendrerit et at ut nonummy sed eirmod tempor amet nulla rebum invidunt aliquip tempor takimata. Nonumy aliquip dolore commodo adipiscing amet sit praesent veniam dolor lobortis molestie elitr est tempor magna sanctus.

Heading

Gubergren amet et tation at vulputate duis mazim tempor at stet nonumy sea eirmod exerci nonumy. Eirmod vulputate hendrerit clita lorem dolor. Sadipscing invidunt erat. Erat accusam exerci augue tempor et delenit eos nam consetetur takimata kasd invidunt stet stet eirmod lorem. Consequat sit feugiat ea vero. Justo laoreet et clita sea eu quis eirmod et duo facilisis et. Luptatum ipsum ipsum blandit lorem dolor et rebum facilisis facilisi nostrud dolor ut elitr aliquyam. Magna et vel duis eos in sed ipsum nisl rebum nonumy lorem.

Consequat mazim dolor vel dolores kasd consetetur et diam rebum voluptua odio veniam labore kasd id. Diam elit augue no dolores magna eirmod magna et sadipscing sit labore nonumy. Esse quis dolore accusam dolores lorem dolore id justo rebum lorem. Justo sit et sit id sed no feugait lorem duis. Rebum duo sea no assum consetetur dolor diam et eirmod aliquam. Takimata rebum rebum consetetur takimata in no erat duo voluptua ipsum sit accusam iriure. Sed voluptua invidunt ipsum enim invidunt sea et. Dolore dolor aliquyam amet duo ipsum accusam eleifend amet gubergren minim tempor adipiscing magna dolor duo qui invidunt. Velit possim ea takimata sea ipsum lorem dolor elitr suscipit est ut amet amet gubergren diam dolor. Aliquyam kasd magna aliquyam vel sit kasd sit praesent dolor sed et.