www.cloudformatter.com

cloudformatter format requests: 6,314,697    pages delivered: 14,363,507

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

Ut at ea vero dolore gubergren in nonumy. Tincidunt sit enim eirmod magna. Invidunt sit assum sadipscing voluptua ipsum stet dolor at sit aliquyam zzril gubergren. Consetetur clita ipsum vero vulputate tempor et sit facilisis dolor. Dolore vero labore et invidunt eleifend dolor tempor sea invidunt lorem sed ut invidunt feugait. Clita in sanctus ipsum erat dolore dolore sea elitr consetetur nulla blandit consetetur sit feugiat vel. Voluptua consetetur hendrerit sed. Qui sit sea takimata dolor gubergren. Dolor commodo eirmod sed magna sea ipsum. Takimata accusam lorem facilisi voluptua at erat takimata. Amet eum ut euismod ut eum in dolores amet et sea est dolore et magna.

Sit sit dignissim lorem rebum lorem at vero invidunt est amet sit dolor est velit consetetur. Vero takimata illum dolor liber sit erat kasd invidunt voluptua consetetur veniam magna et dolor labore sea vero labore. Doming invidunt eros dolore justo duis sanctus sed et elitr sea lorem kasd soluta amet ullamcorper nam. Rebum consetetur nostrud iriure sed erat dolore amet est in vero dolor diam ad suscipit sea illum eirmod. Dolores diam et sit adipiscing amet consetetur ipsum voluptua tempor. Elit tincidunt diam volutpat dolor diam iriure et sea. Est et sadipscing amet et commodo sit at dolore dolore. Sit kasd diam consetetur placerat ipsum sed amet ut magna lorem feugait sed sea ut accumsan facilisi eirmod. Dolor minim rebum dolor dolore velit sed amet te et diam eirmod amet.

Accusam praesent aliquam hendrerit tempor sed enim et vero dolores dolor. Sit elitr invidunt vulputate sadipscing lorem adipiscing sanctus vero et no imperdiet facilisis augue lorem invidunt ipsum. Voluptua hendrerit elitr dolor liber velit tempor rebum amet diam commodo. Nonumy ex at diam stet dolor magna. Adipiscing consectetuer dolor stet sit diam exerci voluptua. Hendrerit eirmod magna adipiscing duo diam gubergren elitr vel ut justo dolor sed est. Laoreet et nostrud eos molestie diam amet eirmod duis vero. Stet et aliquyam amet sit. Gubergren duis consetetur. Et duo accusam ipsum.

Minim labore nonumy tempor et nonummy sit est gubergren tation ut. Gubergren iriure nonumy soluta et diam voluptua diam feugiat sit eirmod iriure in. Gubergren hendrerit eum mazim hendrerit voluptua accusam veniam nisl amet iriure velit duo ut dolore. Kasd et elitr nam in dignissim. Autem magna veniam stet eirmod stet qui quis vel consetetur id luptatum nulla clita dolores duo sea sit ad. Suscipit kasd magna.

Amet et qui stet option et sanctus no facilisis consetetur kasd magna nonumy labore dolores et dignissim dolore. Iriure diam et clita quod facilisi labore sanctus voluptua feugiat. Assum amet sit aliquyam sadipscing sed et ea dolore eos ipsum elitr dolor. In tempor justo dolores duis est eirmod labore aliquam justo molestie sed no gubergren sed wisi et aliquyam. Diam invidunt consetetur magna tincidunt diam eros. Odio ad tation dolor sit hendrerit iriure dolor volutpat ea et ipsum nibh dolore est aliquyam magna iriure invidunt. Lorem ullamcorper adipiscing sea eos enim et diam clita sanctus sed diam ut eirmod sit et stet. Ut commodo ea elitr possim sit consetetur eleifend invidunt lorem invidunt ea lorem invidunt.

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 dolor sed ex nulla option sit dolores sed. Eirmod rebum sanctus in. Et duo commodo. Sanctus ea consequat et et rebum. Nonumy erat ut vel hendrerit sed nonumy vero vero est elitr adipiscing blandit. Ipsum dolore duo ullamcorper augue stet labore feugiat justo dolor magna ut lorem dolore veniam clita voluptua. Amet takimata lorem commodo sed diam voluptua vel sed eirmod. Zzril elitr est et aliquam no blandit. Eu dolor sit et congue praesent diam dolor diam ut diam te rebum. Adipiscing amet sit takimata lorem et et eirmod dolore nam labore lorem nonumy dolor.

Feugiat vero clita wisi wisi sed consectetuer tempor lorem eum et sed. Voluptua ut sed clita est nibh gubergren accusam magna no iriure vulputate sed accusam clita dignissim id. Aliquyam te exerci diam luptatum autem dolores stet lorem consetetur no. Lorem dolore labore sadipscing lorem molestie et sed et ea sit nostrud lorem duis dolores at at. Ut volutpat dolor.

Heading

Amet ut invidunt tempor rebum enim in nonumy kasd stet minim sanctus sadipscing odio dolore. Dolore consectetuer ipsum quis lorem voluptua lorem diam dolores zzril dolor takimata consequat et quis lorem. Magna ex vulputate suscipit aliquam hendrerit. Diam at ipsum rebum ipsum id takimata lorem hendrerit. Praesent labore at molestie diam diam. Erat ea ipsum eos ea tempor amet stet exerci ea diam. Elitr euismod sanctus sanctus takimata vulputate justo takimata ut iusto sed suscipit diam delenit dolore stet nibh sed. Et stet voluptua sea labore sadipscing et sed et takimata duis eros takimata erat sit nobis. Clita sed et sit consectetuer dolores duo ullamcorper sed at qui liber est vero iriure ut justo erat. Et sit est stet justo imperdiet eleifend lorem.

Et euismod invidunt ipsum et no lorem accusam dolores et sit tempor lorem sanctus qui et est. Dolore dolore sed takimata tempor kasd eum tincidunt tation ipsum dolor iusto. Volutpat diam voluptua iriure enim aliquip takimata et lorem ea amet dolor lorem nostrud dolore eum praesent. Eirmod elitr rebum et accumsan nonumy at invidunt at ut erat accusam sit assum clita in consequat. Sit te nonumy tempor dolor lorem nisl invidunt dolor est erat duis rebum magna nonumy et in magna. Sit ipsum vulputate et erat ut eos et diam ea euismod lobortis at ea accusam ut sea est amet. Kasd diam takimata in accusam takimata diam magna lorem vel aliquyam sit dolore dolores. Sea no sanctus kasd dolore at labore et et velit ea illum blandit sadipscing aliquyam dolore lorem.

Heading

Clita aliquip nulla te lorem accusam consequat magna et rebum illum at eros clita justo rebum et ut. Ut ipsum diam sanctus invidunt. Vero facer facilisis nulla dolor eleifend eleifend nibh sed sanctus veniam sanctus labore takimata nonumy sit vero. Kasd est rebum nonumy eos. Rebum tincidunt minim lorem sea wisi labore congue clita nam. Lorem vero sadipscing sit rebum ut lorem vel vulputate nibh magna. Sed lorem nonumy erat ipsum consetetur magna eos illum duo at ea sed labore dolor duo sed dolore. Lorem exerci dolore.

Erat no erat stet lorem. Elit at hendrerit vel labore augue invidunt velit ut ex erat dolore no eos eirmod sed. Aliquyam tempor feugiat ipsum. Augue odio lorem amet dolore sit eu est eu dolor nulla sea ipsum amet sanctus. Nulla dolores dolore aliquam ea sed consequat sed ut gubergren facilisi dolor et. Et erat sanctus dolore dolore sanctus labore et feugiat duo eos eleifend accusam lorem.

Heading

Sed vel dolor sed duo hendrerit duis veniam et ea labore accusam. Placerat euismod ipsum accusam kasd erat at nobis eos nonumy amet. Diam amet ea ea duo ut amet eirmod lorem adipiscing at kasd esse dolore. Vel diam sea clita. Nonummy ut vero ut quod dolor esse sea zzril dolores est consetetur sed dolore aliquyam ipsum.

Nonumy kasd ut et tempor. Cum invidunt labore eirmod velit vero at ea sadipscing amet illum nisl minim vulputate diam possim aliquam sed sanctus. Eros dolore dignissim tincidunt ipsum sed sit amet et sit clita illum dolores ea dolor sea. Eos lorem takimata quis sed amet dolor. Doming sed consetetur in volutpat nostrud sadipscing diam dolores. Laoreet ad nonummy aliquyam amet vero magna amet elitr no ipsum tempor.

Heading

Lorem consetetur sit invidunt ipsum te dolor dolore nulla elitr voluptua rebum takimata consectetuer dolore ullamcorper et aliquip sit. Dolores nostrud justo consetetur erat ut dolore. Sea et feugiat nostrud clita sea doming magna rebum sea veniam in et accusam sea illum. Dolore duo stet elitr amet aliquip volutpat justo eleifend duo facilisi ullamcorper ipsum diam sit ipsum accusam sea tempor. Dolores dolor ipsum sed dolor aliquyam erat diam gubergren aliquyam kasd sit. Diam ipsum invidunt duo tempor voluptua et kasd ipsum aliquyam. Tempor rebum kasd dolores dolor elitr doming dolore accusam dolor tempor diam et eirmod autem accusam et nibh. Volutpat sea sanctus takimata clita elitr gubergren dolor ipsum dolore amet dolore stet facer no lorem labore duo eleifend. Soluta lorem erat elit sit ipsum nonumy dolores.

Et invidunt lorem nibh te dolore dolore sanctus ea voluptua elitr sit. Amet possim duis eos eirmod kasd ut tation invidunt dolor justo at amet erat dolor dolore gubergren. Sadipscing sit elitr gubergren rebum dolores aliquip amet voluptua est diam. Tincidunt lorem tation sed erat diam dolor erat sit magna amet amet justo nisl. Eirmod sed lorem et sit hendrerit laoreet commodo sed lorem.