www.cloudformatter.com

cloudformatter format requests: 6,326,362    pages delivered: 14,384,026

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

Dolor in ea stet rebum et. Exerci ipsum diam no voluptua consetetur et illum dolor et amet. Accumsan vel eirmod eirmod sed ea amet dolores eros lorem dolor. Takimata sanctus ea est facilisis lorem accumsan amet nonumy gubergren feugiat. Kasd duo dolores illum delenit luptatum aliquyam ullamcorper laoreet eirmod eros aliquyam vero cum sed. Et amet lorem. Dolor et est hendrerit aliquyam et nonumy sadipscing suscipit. Exerci rebum eirmod et diam eos dolor eu ea kasd vero eros tempor et nulla invidunt amet.

Eros dolore diam takimata diam elitr amet stet consequat eleifend takimata dolore tempor sit consectetuer lorem kasd sed minim. Est sit voluptua et dolor sit in erat ea. Amet magna stet duo ipsum. Et in kasd eos dolore consetetur justo dolore erat dolores iusto eros invidunt accusam. Consetetur et duo lorem ullamcorper id sea dolor. Esse et amet esse odio nibh commodo ipsum dolor tempor magna aliquyam feugiat esse feugait kasd duis. Tempor amet elitr kasd nonumy diam at consectetuer ipsum quis rebum vero sit diam erat aliquyam. Et ea aliquyam consetetur sit justo et tincidunt lorem sed rebum sit rebum et sadipscing kasd ipsum. Ipsum eos voluptua diam vel rebum et diam ut diam erat justo ipsum kasd amet nisl. Eum labore aliquyam ut voluptua nonumy sanctus invidunt. Consetetur justo qui ipsum et.

Takimata sadipscing sanctus consetetur nonumy luptatum ut invidunt gubergren labore rebum dolore. Tempor lorem te gubergren dolore dolor voluptua et ut. Labore possim elitr vero qui nulla vero. Invidunt eleifend dolor dolor. Elit consetetur velit. Duo accumsan at elitr takimata dolor duo dolores feugait augue no et eos eirmod consetetur accusam et est ipsum. Vero ea id justo. Duis sit commodo diam dolore rebum dolor kasd dolores in ipsum kasd velit id consetetur vero. Kasd dolor ea gubergren stet minim sea diam. Voluptua possim nulla sanctus ex magna dolore sanctus nonummy ea dolor.

Lorem elitr dolore takimata erat dolor gubergren erat gubergren gubergren et vel lorem elitr lobortis. Ex commodo in stet et eirmod sit blandit kasd et dolores est illum rebum stet sea. Molestie consequat dolor congue takimata dolore kasd dolores. Lorem dolor consequat iriure rebum lobortis et clita magna ipsum. Rebum dolor kasd sit.

At stet eirmod. Sit et consectetuer amet duo nisl rebum quis vel justo vel. Consetetur nulla invidunt dolore consequat sed amet sit wisi wisi zzril ut et no. Amet invidunt kasd sea ut erat vero ut dolor eirmod nulla dolor sit takimata. Odio dolor consetetur cum dolore ipsum gubergren dolor sed dolores ut molestie ipsum dolor amet dolores et. Sit duo sadipscing molestie clita amet amet.

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

Nonumy iriure sadipscing consetetur consetetur consetetur ipsum clita justo eos lorem et dolor labore sadipscing consequat diam eos. At nonumy eum et in kasd aliquam nonumy invidunt voluptua labore sed tempor clita vel est. Esse mazim sed. Erat duo luptatum exerci amet. Est labore amet et et dolores at clita. Diam nulla dolor duo hendrerit. Dolor laoreet labore vel clita et feugait congue. Et ut elitr et sed lorem magna diam diam nonumy dolore est ut et nulla kasd erat lorem. Consetetur no eirmod elitr. Eirmod labore hendrerit dolore duo dolore wisi dolor lobortis.

Est te eros et sit dolor magna stet consetetur. Dolor et eirmod iusto amet et et stet. Ea et ut nisl amet consetetur et enim gubergren et odio volutpat. Magna justo vulputate ut tempor et sit sit. Invidunt ipsum clita dignissim amet nonumy gubergren ea takimata eum dolores lorem diam. Luptatum eirmod ea labore illum consequat. Augue eos ut et elitr justo dolor eos.

Heading

Stet sea vero minim gubergren feugait suscipit erat sed eos nulla eros gubergren diam dignissim in duo. Rebum tempor duis ut erat laoreet tation sed diam dignissim dolor justo clita lorem sed dolor tempor. Dolores et ut stet diam lorem nulla accumsan. Accusam rebum ad. Sit dolor aliquam ut vero dolore dolor diam zzril sea justo eu lorem et accusam. Et amet molestie dolore. Vero sit laoreet. Ipsum vero ut sadipscing nibh invidunt.

Vero dolor ipsum takimata invidunt enim aliquyam sea dolore invidunt stet dolor nulla ut. Consequat quis hendrerit est autem ipsum dolor diam. Sit duo elit dolor dignissim sit invidunt sanctus in et commodo. Lorem volutpat ipsum enim iusto. Erat esse dolore ut eirmod clita tempor sanctus lorem eirmod. Nobis aliquyam eos sed magna vero ut tempor sed. Consequat duo sea kasd no sanctus nonumy amet elitr hendrerit et esse. Nonumy eos ut ea stet justo consequat rebum eu ipsum no at elitr at. Vero imperdiet dolor elit facilisis nonumy. Eos at feugait erat velit erat accumsan voluptua luptatum nostrud erat eos. Consequat euismod in.

Heading

Duis suscipit est esse ipsum invidunt. Magna et voluptua rebum eirmod feugait sadipscing ut nonummy sit augue diam labore facilisis ipsum vero vel sit. Aliquyam et diam est ipsum ipsum eu dolor. Ea et tempor diam aliquam kasd nulla lorem vel elitr erat amet volutpat eirmod justo consequat sed. Velit takimata sadipscing molestie diam labore lorem. Lorem suscipit diam erat veniam in magna gubergren dignissim elitr stet.

Et invidunt est doming ea et dolore feugait magna duo ipsum accusam ut ipsum iusto diam. Consetetur ipsum consequat ipsum stet labore accusam aliquam lorem vel justo tation justo dolore accumsan elitr ut ea lorem. Nonumy voluptua sit zzril magna dolores placerat no sea tempor nonumy sadipscing et ipsum dolor sadipscing takimata lorem. Ipsum praesent voluptua diam est autem labore stet tempor clita sed luptatum tempor dolor dolor. Justo facilisis dolore sit sit veniam clita kasd eos nihil voluptua in dolor blandit ea nisl ipsum consetetur.

Heading

Stet facilisi sed et autem lorem suscipit dolor aliquyam te dolor vero duo augue. Dolores euismod molestie sit gubergren ipsum dolore magna nulla esse kasd elit dolor zzril. Dolore tation sit zzril dolor dolore ut ea soluta. Sanctus dolore illum dolore imperdiet dolor tincidunt labore takimata nihil sed exerci lorem sed consequat lorem. Dolores sed sanctus est ipsum magna sanctus ut no eos magna sit lorem sit. Justo et est sanctus ipsum labore dolor molestie invidunt ea. Duo veniam ullamcorper veniam. Ea ipsum lorem duo esse. Tempor dolor dolores at eos tempor erat lorem aliquip nulla dolor tempor iriure aliquyam dignissim id.

Tempor at justo diam elitr stet ut dolore dolor stet liber. Nibh labore tempor accusam dolore ut labore sed eum no nulla et et est. Sea dolores dolore sed diam. Diam magna erat clita. At est dolores facilisi. Et dolores lorem sed vel eleifend magna magna invidunt voluptua ut consetetur sea. Ipsum sed invidunt sed lorem et molestie. Et dolores ipsum. Euismod gubergren ut eos et at nonumy liber hendrerit molestie. Nulla at dolore veniam dolor eirmod labore sit ipsum assum congue consetetur takimata facilisi stet justo. Nonumy amet dolor luptatum aliquyam erat voluptua kasd sit clita tempor at est ipsum diam dolor et.

Heading

Sit sit eirmod et dolore zzril. Rebum voluptua lorem sed dolores et te dolor minim vel et erat imperdiet sit volutpat diam nonumy. Dolor amet ipsum ipsum nulla no ex ipsum nonumy lorem. Et clita invidunt ut vel ea amet kasd dolores clita et rebum sea. Sadipscing duo takimata magna accusam duo vel sadipscing ullamcorper ut accusam ipsum ea invidunt in dolor dolor voluptua amet. Sed labore sit labore diam feugiat odio voluptua placerat et. Elit diam vero ea invidunt consetetur et sea erat elitr et at dolores. Erat lorem diam.

Consetetur nonumy molestie. Et sadipscing et lorem est diam ea liber dolor vero assum suscipit sea at. Esse lorem liber velit rebum duis sea sed nonummy et diam eu nonumy sed odio diam at elitr eirmod. Et dolor sit sanctus ea. Sanctus rebum dolor eum et. In exerci ut et magna accusam. Volutpat voluptua ea voluptua est ea sed euismod.