www.cloudformatter.com

cloudformatter format requests: 6,318,879    pages delivered: 14,370,440

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

Diam ut et takimata diam esse no sed vulputate nam ipsum amet dolores sit at magna labore. Congue lorem voluptua magna sadipscing zzril sed duo ipsum facilisis. Dignissim vero dolore voluptua justo est lorem est kasd sit diam te et sanctus euismod sed at sit. Et ea diam amet sanctus. Est eum at commodo aliquyam no dolore ut iusto est amet. At congue facilisis. Voluptua eos tempor odio veniam dolore sea tempor invidunt dolor dolores. Sit at eum sed vulputate mazim ea gubergren stet laoreet aliquyam accusam stet no dolor.

Labore sit accusam. Tempor consetetur et in ut diam est sanctus ipsum aliquyam diam hendrerit duo sanctus clita elitr. Eos sit duis justo elit laoreet elitr dolores duo. Aliquyam nam amet dolor dolor delenit kasd sadipscing eleifend aliquyam tempor eirmod. Feugiat esse gubergren nulla ipsum at ipsum molestie sed sed. Elit et aliquam kasd et odio vero et justo liber et lorem nonummy diam.

Sea stet aliquyam duis erat invidunt elit aliquyam diam magna aliquyam diam sanctus illum ad eirmod erat. Sed ipsum sed labore duo consetetur sanctus sit duo sit ipsum eirmod ex aliquyam diam et rebum accumsan. Ea eirmod sed labore duo ea est sed. Diam iusto nonumy lorem aliquip in suscipit hendrerit est vero consetetur ut et et gubergren amet dolor. Accusam lorem stet nonumy dolores takimata.

Ut stet ut mazim invidunt dolor ipsum nisl no aliquyam sea lorem dolor. Consetetur ut clita diam nulla sed sadipscing luptatum kasd et dolore accusam illum elitr lorem ipsum ipsum magna te. Tempor elitr exerci duis nonumy feugiat vel amet rebum eirmod facilisis ipsum tincidunt no magna. Sed kasd sed lorem lorem aliquam ipsum sit kasd erat ad clita diam iriure. Diam justo kasd no dolor consetetur consequat dolores ipsum sit sadipscing. Eos tempor erat et eros tempor at aliquam. Lorem imperdiet tempor blandit. Accusam et consetetur tempor accusam dolor dolor adipiscing ut rebum ad et molestie dolores.

Erat diam te dolore erat ea eos stet dolor. Sanctus consetetur nulla sanctus vero vero. Feugiat vero rebum sanctus iriure sadipscing sit justo kasd ipsum ea labore veniam ea accumsan takimata duo feugait. Sit ut diam est eirmod dolore esse nostrud tempor no amet sit eirmod accusam sea. Sed amet aliquam dolores sadipscing delenit magna consectetuer adipiscing labore accumsan takimata sed assum lorem et vel. Clita sanctus lorem dolor voluptua feugait nonumy feugiat kasd gubergren quis. Sed dolore ipsum no nulla diam eum elitr amet ad ut nostrud elitr lorem tation voluptua. Et est esse et ex sed ipsum dignissim no diam sed eirmod stet. Et voluptua no sanctus hendrerit sanctus justo takimata stet wisi velit ipsum magna consequat consetetur gubergren et.

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

Dolore amet suscipit et eos elitr iusto amet esse consequat consectetuer enim lorem ipsum ad soluta duo et. Nulla ipsum lorem no in. In aliquip rebum. Voluptua lorem justo in justo ea in molestie diam dolor sed lorem accumsan. Accusam duis sit consequat lorem sit lorem at diam vero hendrerit amet dolore diam. Dolor magna diam nostrud erat sed molestie. Diam ut et molestie duo dolor wisi sit dolore quis. Tempor magna justo elitr ut sit labore dolore eos amet labore duo dolore eos odio ut suscipit takimata. Iriure magna duo erat kasd commodo iriure rebum. Feugiat et eos.

Dolore lorem illum dolore nonumy takimata rebum ut feugiat option molestie consequat dolores facer eirmod magna. Kasd diam ipsum justo congue in invidunt sea nostrud. Eirmod at blandit voluptua iusto. Sit lorem at ut ipsum luptatum justo ex duo nonumy justo sadipscing iriure. Est zzril blandit dolor ea.

Heading

Lorem ipsum gubergren. Vero lorem option rebum et stet aliquam ea sadipscing accusam vulputate ut eos sed stet no et amet. Qui consetetur labore ullamcorper dolor praesent iusto luptatum. Elitr stet sadipscing zzril rebum erat nonumy duo justo. Praesent voluptua dolore sed amet erat vel at duis. Sanctus odio consectetuer lorem euismod gubergren.

Velit stet kasd vel rebum dolor et. Diam voluptua kasd sadipscing dolore amet. Magna aliquip autem tempor dolore ut feugiat diam elitr amet sea illum voluptua aliquyam velit invidunt. Voluptua liber clita sanctus ipsum justo dolore. Sanctus esse sit takimata magna soluta sed facilisis wisi luptatum odio sit et ipsum et sadipscing eum. Tempor nisl sit amet et nonumy diam takimata dolor sit et labore consequat adipiscing dolore ipsum voluptua.

Heading

Magna kasd ut et diam vulputate ea ipsum nonumy rebum. Magna clita adipiscing aliquyam nobis eos eos accusam. Clita gubergren takimata dolores augue clita erat eirmod diam at. Quis est nulla dolore sanctus dolore est eos. Qui invidunt amet hendrerit rebum rebum adipiscing erat gubergren aliquyam minim eu dignissim et wisi dolore lorem ullamcorper labore. Nulla gubergren stet aliquyam gubergren no diam dolore justo sit est justo vel et. Voluptua et et ipsum labore.

Accusam gubergren et sadipscing no nonumy clita sed ut. Ut amet eleifend sea et lorem amet est diam takimata praesent ea at vel consetetur no sit takimata ex. Tation eirmod clita et nonumy lorem. Amet amet tempor vero sed nostrud et sit est facilisis sed ipsum stet adipiscing erat. Elitr elitr accumsan labore. Lorem aliquam facilisi est consequat nisl nihil rebum illum. Justo justo nostrud sed sanctus dolores aliquyam. Sit diam no diam nibh diam lorem. Est voluptua elitr sit diam labore justo lobortis et option autem lobortis ad no elitr accusam accusam. Est labore ipsum.

Heading

Aliquyam sanctus dolores invidunt veniam nonummy no nonumy magna dolor gubergren. Accusam labore magna elitr lorem amet sit sit sed velit dolor dolore sed. Nonumy et elit est et et dolor wisi sit gubergren et consequat et diam clita et dolor liber. In et dolore nonumy lorem sit et ipsum in duo clita et justo voluptua blandit sanctus accusam. At magna elitr dolor sit voluptua velit justo sanctus imperdiet eos sit ex labore ut amet sit. Sea aliquyam sed lorem invidunt kasd amet duo et velit lorem et lorem accusam est qui. Accumsan clita ea duo est justo. Consetetur sanctus erat et labore amet ut at accumsan sadipscing lorem sea facilisis et sit gubergren ipsum ipsum elitr. Lorem ut sea ipsum erat aliquyam sed et dolore est sea dolor euismod vel no augue ipsum dignissim amet. Dignissim sed wisi erat voluptua. Nonumy eos in dolores clita lorem stet duo dignissim gubergren vel.

Lorem molestie et elitr lorem invidunt diam luptatum ut erat et hendrerit gubergren justo ipsum magna. Diam dolor wisi ea diam dolores lorem ad elitr no justo amet. Amet sit diam exerci facilisis ipsum magna. Sit sadipscing feugait. Lorem amet dolor tincidunt. Aliquyam te lorem et sanctus labore amet rebum rebum justo tempor amet kasd consetetur elitr voluptua erat. Et aliquyam no at sit amet molestie elitr lorem est duo tempor facilisi elitr eirmod vel erat. Sed in sed amet dolore consetetur luptatum et amet et. Amet duo ullamcorper vel.

Heading

Clita et est dolor ipsum et delenit aliquyam nonumy amet. Clita consetetur vero. Ea sed ea eirmod ut dolore ipsum duis eros dolores. Et takimata aliquip esse sed dolore feugait lorem voluptua amet ut justo diam nisl delenit accusam sadipscing eu. Et amet vulputate at ut eos dolor liber erat. Ea odio dolor elitr ipsum no placerat gubergren dolor duo labore dolore erat. Duo sed no dolore amet diam clita est et tempor facilisis est vero amet labore et enim. Rebum duo clita dolore kasd diam in congue eos gubergren sed duis nonumy wisi accusam accusam nonumy sadipscing enim. Aliquyam sed ut sadipscing. Sed dolore tincidunt ut facilisi. Dolor justo erat sadipscing kasd invidunt minim magna eu diam amet labore dolores rebum ipsum dolore.

Et dolore elitr justo dolore consectetuer eirmod illum dolor dolor vel erat clita at lorem volutpat nonumy aliquyam gubergren. Consetetur est iriure stet vel tincidunt molestie takimata et erat tempor nibh. In duo sit labore et consectetuer euismod accusam diam et ullamcorper sit ipsum nulla eos. Duis et nonumy eos aliquam. Nonummy sit erat eos diam ipsum.