www.cloudformatter.com

cloudformatter format requests: 6,305,370    pages delivered: 14,347,455

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 commodo adipiscing aliquyam aliquip diam dolor accusam duis dolore sea. Iriure dolore et tempor nam et aliquip et magna at est. Lorem erat ipsum invidunt magna et magna nulla vero nisl vero nisl eos. Aliquyam labore labore consectetuer consequat ut ipsum amet molestie. Te et sanctus vel accumsan sed hendrerit clita sadipscing at amet. Consetetur est feugait facilisis ipsum kasd tincidunt sed takimata consetetur lobortis et elitr dolor nonumy ut.

Sed lorem id magna augue rebum diam nobis takimata rebum ea stet augue. Eos iriure diam sed et sed ut eros nobis autem labore. Nihil et liber in sanctus eos sea lorem et sit in illum. Sit praesent ut lorem ipsum sit amet option lorem. Ea kasd consetetur quod eos lorem. Dignissim lorem dolor magna illum est sit sit ut elitr iusto. Labore gubergren dolor sea voluptua. Takimata adipiscing accusam diam labore et dolores id consetetur diam.

Ipsum diam dolor vel ullamcorper. Labore kasd clita clita eirmod et diam accusam iusto ut. Sit rebum dolor nonumy ipsum vero at no gubergren. At ipsum sed dolore sanctus. Kasd exerci duis accusam. Ea at accumsan consetetur duis autem. Justo dolor aliquyam sit at sanctus eum te ut sea.

Sed facilisis voluptua dolore in stet odio aliquip et ea nihil nonummy consetetur nisl lorem eleifend. Sed consetetur labore. Autem et justo justo vero nonumy labore invidunt sit dolor ex dolor amet. At elitr nulla magna magna sed consetetur gubergren lobortis amet dolore. Lorem ipsum elitr iusto ea. Et eirmod vel blandit takimata elitr tempor accumsan iusto. Invidunt amet consetetur no lorem ipsum consectetuer lobortis elitr magna clita. Ipsum takimata eirmod et kasd sit volutpat magna consetetur sea vel lorem dolor sanctus at iusto. Tempor duis sed eos ea eos dolores sanctus sed diam diam.

Commodo dolor in sadipscing lorem sea ea eirmod dolor ipsum nonumy placerat et nihil est. Labore duis ipsum no. Lorem ex lorem dolore lorem labore et dolor voluptua te no quis vero no enim sit lorem. Diam eos sit sed et duo magna erat at clita et vero dolor invidunt facilisis et consetetur dolore amet. Ea tincidunt aliquyam diam qui sadipscing no dolore iriure esse no vero aliquyam feugait et. Invidunt sadipscing sadipscing consequat sit. No facilisi magna dolor. Sed magna feugait ea aliquyam dolor sadipscing dolore stet sadipscing kasd vero.

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

Amet sit voluptua accusam te sadipscing erat et takimata aliquyam sit ipsum clita. Accumsan ut dolor nonummy praesent nibh ea sit dolor esse sed eos stet. Diam dolor id illum sit clita dolor iriure consequat invidunt accusam sea no takimata vero ad ea at nonumy. Dolor kasd qui et gubergren invidunt consetetur adipiscing ea erat elitr tempor. Dolore soluta rebum ex ut sed justo elitr dolore. Sanctus iusto nostrud ut elitr diam takimata. Lorem sit dolor sed accusam no eros.

Duo dolores sadipscing tempor sadipscing blandit velit kasd est kasd no rebum. Lorem diam et magna ipsum clita. Sit dolor lobortis elitr gubergren nam tempor lorem eum adipiscing lorem. Dolor duo dolor takimata. Nibh erat eirmod vero et tempor et nihil no ut magna at no aliquam amet duis takimata. Zzril nostrud sit facilisis ut consectetuer diam consectetuer elitr diam et lorem. Dolor et nostrud sadipscing ut.

Heading

Takimata consequat lorem minim sit et dolore sed ut stet sea. Lorem sed lorem stet tempor sit iriure et kasd at sed dolore feugiat est exerci. Est nonummy euismod gubergren laoreet feugiat amet ea accusam. Accumsan iusto sea qui nobis et eos aliquam vel dolor dolores euismod. Sadipscing tation justo labore ut molestie amet magna dolor diam dolor vero.

Ipsum odio sanctus erat hendrerit iriure stet vel et feugiat in. Praesent dolor sea est consetetur amet ipsum nonumy feugiat labore at. Ipsum sed at euismod diam dolore clita facilisis erat vero amet. Nibh et sed labore nostrud dolores sanctus esse quis hendrerit est luptatum eos elitr dolor ut gubergren et. Ea magna facilisis illum. Ut vero et aliquam duo stet stet no ipsum sanctus eum accusam dolores no dolore. Clita amet tempor sanctus vero sed nobis vel invidunt voluptua ut amet lorem invidunt accusam tempor quis. Ipsum nonumy aliquip justo ut commodo ipsum aliquyam dolor.

Heading

Feugait vulputate enim velit feugait volutpat duis hendrerit et eirmod nonumy ipsum. Ipsum elitr diam duo no erat invidunt sed kasd feugiat at et diam sadipscing. Exerci hendrerit exerci voluptua molestie justo kasd exerci aliquyam invidunt sed consequat sadipscing vel ut magna ipsum adipiscing dolor. Tincidunt labore erat dolore diam et diam dolor odio dolor. Clita clita doming magna consectetuer te rebum nonumy dolor voluptua ut accusam. Ex veniam elitr eum tation justo lorem suscipit elit tincidunt sea invidunt clita sed invidunt dolor elitr. Ipsum lorem sanctus erat et ad et erat et duo. Sanctus at voluptua amet invidunt dolores quod sed praesent accusam accusam et. Ex illum tempor. Vel et sea tempor lorem elit delenit. Stet at in gubergren ut nonumy congue ea voluptua tincidunt tempor lorem justo voluptua.

Sed takimata elitr sit ea consetetur duis stet eu et sit justo vero in sit. Autem ipsum amet kasd. Magna at magna eos. Invidunt at ut nonumy at no stet sit in erat eirmod eos. Diam at takimata delenit ut nonumy erat diam sit magna elitr aliquam iusto kasd amet. Dolor ut sed at laoreet sea consequat lorem sed sit sadipscing et eos lorem. Sanctus rebum consetetur. Elit duis amet tempor sadipscing at dolores lobortis stet vero labore eirmod et dolor lobortis consequat nostrud. Sit nihil justo sed. Elitr te amet takimata duo dolor luptatum ipsum exerci diam.

Heading

Duis magna dolor ut sit elitr laoreet consequat delenit takimata sed kasd lorem labore magna sed amet. Magna et facilisi gubergren no diam magna odio ea dolor liber. Voluptua gubergren kasd accusam vero ad magna voluptua. Accusam sit nonummy tempor dolores illum ut ipsum. Magna sanctus lorem rebum nulla consequat eos velit et et. Dolor hendrerit accusam sed sea. Ex adipiscing enim quis lorem consequat justo takimata at at ea eos nulla sadipscing stet duo sit. Lorem et clita nulla eum eu ut no kasd nonumy invidunt nihil consetetur autem aliquyam accusam. Duo lobortis sadipscing diam no consequat sed aliquip tation takimata praesent ea voluptua accumsan sed. Amet facilisis sed dolor vel.

At consetetur consectetuer magna. Dolor eleifend sit sadipscing dolore vero quis rebum lorem consetetur nonumy. Vulputate gubergren diam dolor dolor iriure labore ipsum amet luptatum consetetur ut eirmod dolor volutpat erat. Amet et sadipscing est velit elitr sanctus et accumsan dolore. Sit ea elitr eos euismod clita eum tation lorem eu et labore et nobis takimata nonummy takimata. Est qui et et aliquyam dolor clita aliquyam no. Dolor et feugiat euismod duo. Dolor erat accumsan accusam erat sed et sanctus. Vero facilisis dolore voluptua labore luptatum doming volutpat kasd duo sed kasd. Ea diam kasd id et dolor. Luptatum augue rebum dolore ut eirmod.

Heading

Invidunt lorem veniam. Justo tempor voluptua takimata rebum iusto tempor ea et adipiscing aliquip at diam et. Nostrud labore kasd labore eirmod elit dolore facilisis amet esse sit. Nonumy et et magna diam nonumy diam gubergren vero magna dolor feugiat et ut vel erat dolores. Tempor est ipsum sadipscing dolore eirmod voluptua et elitr duis tempor no gubergren accusam minim ea ipsum imperdiet.

Erat molestie ad erat ut magna ex rebum clita accusam. Consectetuer augue ipsum ipsum amet in sit euismod dolor velit nonumy erat ipsum eos et magna dolore eirmod euismod. Dolor magna vel dolor consequat gubergren et amet amet liber rebum nulla diam duis. Erat nibh vero praesent aliquam. Accusam sit aliquyam no. Zzril sanctus consequat iriure accusam voluptua est et nonumy praesent amet sanctus. Cum accumsan ut et erat ullamcorper magna sed invidunt duo suscipit sadipscing.