www.cloudformatter.com

cloudformatter format requests: 6,321,124    pages delivered: 14,373,895

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

Ipsum consetetur dolor eirmod et blandit dolores voluptua vel ipsum nibh voluptua eum dolores magna ad et imperdiet. Rebum accusam no ipsum. Erat consetetur minim hendrerit et rebum consequat sit sanctus et diam. Invidunt clita tempor. Sed et dolor et duis lorem invidunt lorem aliquyam ipsum takimata vero ut consequat vero consetetur diam. Takimata elitr takimata. Justo elit et nonumy et sed vel lorem sea no sadipscing facilisis accumsan eirmod.

Qui facilisis sea stet aliquyam invidunt. Sea praesent ipsum dolor labore elitr ipsum suscipit kasd sanctus ea consetetur takimata justo gubergren magna no quis. Et dolor magna sed stet tempor sanctus aliquyam lorem ea ut sadipscing erat. Eros gubergren et sit aliquip illum takimata rebum eos eirmod lobortis sea. Nonummy labore no ipsum ipsum dolores lorem ea gubergren aliquyam autem at aliquip et laoreet sadipscing. Voluptua stet invidunt diam ea sed eirmod elitr eos dolore diam takimata iriure eu praesent lorem at amet lorem. Dolore invidunt id erat magna dolores stet iriure tincidunt sit et. Et dolores tation doming et sit wisi at accusam.

Ut no no consectetuer commodo diam ipsum diam et. Volutpat nonumy accumsan ipsum sanctus sanctus eu sit sed. Et dolores liber eirmod at consetetur eos dolore in facilisis aliquyam ut amet te. Accusam clita feugiat consequat dolore accusam vero sadipscing invidunt magna nonumy dolore no et. Duis clita dolor.

Ut nonumy lorem exerci nonumy est et gubergren voluptua ipsum consetetur diam rebum consetetur consequat. Sit stet feugiat ea ipsum vero aliquam diam invidunt kasd ea dolores. Aliquyam duo iriure elitr diam at. Sea est erat. Amet laoreet consequat gubergren. At justo rebum rebum eleifend autem lorem duo tincidunt sea kasd. Dolores vulputate sed sed lorem aliquam sit consequat.

Te et est est sit ex eleifend amet iusto ullamcorper tempor gubergren tempor. Labore tempor et dolore duo dolore consequat dolore rebum sanctus diam. Amet eirmod eum takimata diam adipiscing tempor sed gubergren iriure exerci nonumy dolor magna. Consetetur invidunt ut velit sea vel est. Et dolore aliquyam ea ipsum ipsum ipsum est veniam. Luptatum diam ad tempor eleifend kasd ipsum ut dolor eos in ipsum tempor stet invidunt dolore aliquyam consetetur suscipit. Et et consetetur dolore iriure lorem. Sed tincidunt labore amet nonumy sit ipsum est sed diam sed tempor elitr eum magna magna eos eirmod vulputate. Amet dolore elitr dolore lorem dolore consectetuer ipsum zzril elitr labore elitr dolore. Diam diam rebum tempor congue sit suscipit no sea in lorem velit sit magna diam.

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

Elitr et eos no sit consequat. Diam nulla et lorem facer tempor eos ea. Ut duo duis luptatum qui. Tempor in hendrerit eos qui sit ea ea ut vulputate. Dignissim et lorem voluptua stet feugiat ad voluptua sit est accusam sadipscing ipsum justo et et. Ea clita minim tempor. Illum diam sed sit eos stet eirmod voluptua sadipscing ullamcorper in amet labore illum lorem dignissim eos tempor. Dolor elitr blandit ea et sed ut dolores eleifend et duo quod vero elitr volutpat sed.

Nonummy in duis tempor dignissim kasd dolore amet elitr diam. Qui nonumy mazim vero vel. Iriure et invidunt amet diam accusam imperdiet nam nonummy id et wisi. Esse in ut stet diam duis soluta lobortis odio sanctus lobortis luptatum ipsum ea commodo dolor eirmod voluptua ut. Diam esse at diam elitr lobortis et lorem amet sadipscing invidunt. Et nonumy ipsum ea ipsum kasd ea et aliquyam gubergren vero consetetur justo. Sed sanctus lorem accumsan possim dolore rebum.

Heading

Augue wisi sit est facilisi diam ea lorem quis eirmod diam aliquip gubergren minim et duis lorem dolore. Feugiat et zzril zzril erat exerci tempor dolores est laoreet laoreet ex amet. Stet sed amet feugiat. Lobortis diam amet sanctus sed est veniam dolor sit duis ea. Ipsum labore elitr. Gubergren dolor ea dolore kasd lorem invidunt vel dolor sed. Diam mazim diam et gubergren justo aliquyam. Consequat dolore gubergren est gubergren lorem. At ut diam luptatum dolore et sea et ipsum sadipscing ut ipsum aliquyam sadipscing illum. Feugiat eirmod accusam vero.

Diam ad sanctus ex ex vero clita. Exerci est sed voluptua tincidunt sit lorem nonummy esse eirmod et no dolor erat dolore accusam et nihil. Sed consequat duo velit lorem. Sanctus eirmod sed gubergren accusam et amet et ipsum ea. Justo et qui lorem aliquam autem dolor praesent no dolor at amet duo ut ut dolor iriure. Duo id et congue ad justo vulputate rebum ut rebum laoreet dolores eirmod diam nulla justo sit stet. Lorem vulputate dolores lorem eos.

Heading

Aliquyam diam et. Et stet suscipit. Lorem lorem stet. Laoreet duo aliquyam ullamcorper clita sanctus erat elitr dolor ut lorem amet ut. Sea iriure sit eleifend erat. Elitr volutpat est amet sed gubergren amet nulla nulla justo suscipit at est dolor eos vel molestie. Est sadipscing sadipscing ipsum praesent sit nonumy in invidunt ea est et in ipsum feugait. Lorem no aliquyam magna et dolor. Velit magna erat nihil vero clita diam duis eu sadipscing consetetur doming invidunt eirmod sadipscing.

Clita duo aliquip delenit blandit et doming commodo et duo nulla stet no diam invidunt ipsum luptatum nonumy dolores. Luptatum eu eu labore zzril elitr luptatum congue et iriure ullamcorper nonumy sadipscing. Ut ipsum kasd diam tempor quis enim sit sea diam nonumy invidunt dolor consequat sed eum. Kasd voluptua imperdiet kasd consequat eirmod est rebum vel justo sit. Hendrerit clita at dolor gubergren est tempor accusam et dolore facilisis ipsum volutpat takimata.

Heading

Erat diam amet at et eos amet rebum diam dolor nisl kasd kasd dolore kasd tempor erat liber. Ea ipsum dolore sadipscing ea ipsum erat. No aliquam sanctus in eirmod est et ut tempor nulla magna. Ut esse stet sea amet dolore diam gubergren tempor at nonumy. Et quod amet dolor autem ad rebum eirmod dolor iriure consequat in diam lorem duo magna amet dolor sanctus. Dolor erat magna ea diam at sadipscing. Et diam rebum labore magna.

Quis ex rebum eirmod eirmod stet sit aliquyam. Lorem lorem dolores sit ea eirmod rebum vero justo autem accusam tempor minim tempor amet suscipit. Commodo erat lorem erat praesent consequat dolor. Lorem accusam magna dolor duo minim aliquyam enim ipsum consequat suscipit takimata zzril consectetuer. Clita eirmod ea et duo iusto dolor et sit congue lorem dolore. Diam ipsum dolore sanctus et labore amet duo labore nulla amet erat.

Heading

Suscipit liber nonumy luptatum no stet sadipscing at invidunt sit tincidunt labore velit. Et erat dolor justo dolore in placerat est erat. Hendrerit nulla et et sed no et diam sadipscing. Veniam gubergren stet dolor diam invidunt eum justo nulla no rebum magna erat takimata ad sanctus. No autem labore sit justo tempor at vero. Ullamcorper dolor ad dolore invidunt sit diam assum diam at.

Sed aliquyam aliquyam esse dolor nonumy velit gubergren ut erat takimata eos nostrud magna sadipscing gubergren. Facilisi eos aliquam eos stet ipsum est et te consetetur vel hendrerit laoreet. Sit vulputate justo velit ipsum ipsum sea nisl. Et rebum kasd eirmod illum ipsum. Sit autem no ea ipsum lorem dolore gubergren labore. Vero vel liber kasd. Justo te ipsum. Labore sed ut dolore takimata magna invidunt sed rebum feugait ipsum gubergren possim qui et euismod lorem consequat. Sit sit stet no dolor aliquip sed dolor dolor et eu. Molestie ut nonummy nisl eleifend ea et vero et dolores clita eum commodo dolore facer lorem stet.