www.cloudformatter.com

cloudformatter format requests: 6,326,335    pages delivered: 14,383,974

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

Amet te gubergren stet erat ea eirmod amet gubergren ea elitr autem nam. Adipiscing clita ut tempor vulputate nonumy ipsum augue in aliquip aliquip invidunt sit. Duo ut iriure. Consectetuer stet dolores vero invidunt eos justo et gubergren. Est accumsan accusam sea dolores erat. Stet duis elitr exerci sed ea dolore dolores eum facilisis consetetur eos clita ipsum diam facilisi iusto. Consetetur exerci sea. Amet sea accusam erat facilisis sea lorem molestie sadipscing volutpat dolores accusam est sanctus amet. Et ipsum ut tation. Erat quod sadipscing ipsum iriure dolore et consequat erat sea nonumy ipsum molestie nonumy ea.

Nisl ullamcorper rebum stet clita suscipit tincidunt elitr ipsum ut et. Sed erat eos blandit sit dolore. Consetetur eos et voluptua lorem. Ea ad erat accumsan praesent illum autem ea invidunt ut consetetur feugait kasd elitr labore molestie sanctus vel sit. Ut lorem stet ea consequat consequat takimata dolor dolor. Aliquam elit diam stet et sit duis sit lorem blandit nonummy sit sit eirmod aliquyam vero. Diam aliquyam accumsan voluptua. Erat nostrud amet kasd sit stet amet sit sanctus amet liber. Lorem dolore et ipsum dignissim velit elitr ut amet dolor amet ut tempor sed invidunt et sit labore.

Sadipscing ea qui ea sit clita amet et takimata soluta at. Feugait vel labore dolor nulla sed ipsum elitr consequat dolor. Eleifend duis voluptua takimata no voluptua nisl lorem amet vero ea amet. Sed duo ipsum quod in. Dolores veniam sanctus ipsum rebum hendrerit sea. Aliquyam est rebum delenit sea sed vel ipsum labore et.

Eos erat soluta dolor sea vel dolore nonumy gubergren sadipscing nonumy gubergren vel lorem lobortis dolor autem voluptua clita. Dolor in hendrerit amet no vero sea ipsum lorem eirmod stet et est facilisi. Ipsum sea sadipscing erat hendrerit duo clita sadipscing ullamcorper et. Et dolores ullamcorper dolore. Sit sea ipsum ut eleifend hendrerit sea dolore. Invidunt dolor elitr laoreet aliquyam takimata lorem. Eirmod ut consetetur commodo dolor elitr duo. Lorem lorem sed gubergren vel takimata vel est sit sit vero ipsum ullamcorper lorem takimata erat kasd illum. Adipiscing tempor dolor voluptua gubergren dolore voluptua rebum amet eirmod voluptua ipsum amet blandit amet sit ullamcorper magna.

Facilisis lobortis et voluptua facilisis dolore molestie ipsum labore option vel est ut accusam enim. Dolore amet duo sed justo vero sit dolores accusam et at. Clita ipsum blandit labore diam diam dolor magna illum dolor wisi sed facilisis. Aliquyam clita clita est rebum eu invidunt ullamcorper vero clita erat minim dolor ipsum facilisi laoreet voluptua elitr. Lorem diam no aliquyam eos. Vero ipsum vulputate justo dolore vel diam volutpat sit nihil. Est amet sea veniam eos amet ipsum diam no.

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

Hendrerit in clita elitr ut ipsum gubergren dolore amet aliquyam sanctus dignissim nonumy nulla praesent est elitr delenit eirmod. Sanctus eos clita. Sanctus et erat accusam eirmod et accumsan rebum et lorem sed amet. At vero iusto sea rebum stet. Lorem aliquyam erat labore zzril dolor sanctus nibh et eu justo dolores euismod quis. Vero sed eirmod sadipscing et zzril elitr dolor laoreet.

Dolor vel sea amet tempor at ullamcorper. Volutpat et et amet sed et sed et elitr. Rebum clita dolor erat erat lorem minim lorem et aliquyam et sea dolore sadipscing magna diam lorem odio. Velit amet ad at eirmod sit clita sed amet ipsum sit eos dolore amet sea sit. Dignissim justo lorem no. Labore liber dolor magna et kasd possim. Rebum voluptua takimata ea accusam amet amet invidunt rebum dolore sadipscing no consequat vulputate. Nibh kasd in sea ea sanctus voluptua aliquyam ut sadipscing accusam clita takimata nulla takimata est dolor et. Duo amet ea dolores clita augue eum eirmod ullamcorper invidunt. Sit ipsum kasd vulputate tempor possim dolores.

Heading

Elitr tempor sit ipsum et ex kasd elitr vero takimata imperdiet elitr nam est esse sanctus kasd sadipscing. Dolor justo duo justo sadipscing. Veniam et et in sed consequat. Wisi sit vero magna ipsum clita clita erat et justo amet option no sed. Consetetur aliquam diam elitr doming lorem diam. At duo et aliquip nibh vero sit et sit accusam elitr id consetetur aliquyam.

Amet dolore sit erat lorem nisl. Duo dolor eu erat vel takimata invidunt sed ut eirmod sea et stet erat. Ex sit qui et ipsum sadipscing dolores eirmod aliquam stet magna nonumy sadipscing. Dignissim ipsum aliquyam et augue ut soluta. Option lorem zzril. Lorem vero sanctus tempor ipsum consetetur sed.

Heading

Sit vero soluta et sit consectetuer rebum dolore ea ea duo no sit ipsum. Amet kasd labore stet eos assum eirmod magna amet takimata sadipscing. Magna kasd luptatum eirmod. Justo dolor eos accusam. Est commodo elit molestie zzril ut et. Dignissim ipsum no adipiscing sit invidunt at. Labore clita nulla takimata praesent no dolor sea et ea.

Takimata vero ipsum vero sit et. Praesent facilisis et eirmod molestie diam nonumy et sed labore magna eu enim feugiat amet esse vel ea labore. Eum option sed aliquip duis dolor nonumy est kasd est lorem sit blandit magna clita et delenit eos accusam. Augue tempor clita et amet labore. Justo elit sea. Takimata amet dolor sadipscing duo tempor sit nonumy ut ipsum duo consetetur invidunt vel. Lorem duo et accumsan consequat exerci consetetur. Vero no assum et dolores eleifend labore et sadipscing accusam facilisi amet.

Heading

Accusam consetetur dolore rebum ut tempor lorem aliquyam. At clita accusam invidunt ea dolor est odio aliquip dolore. Dolor molestie consequat nisl luptatum ullamcorper amet sed at et stet nisl. Autem stet et in facilisi hendrerit sea eros erat magna augue est sit wisi sit duo diam. Eirmod stet amet aliquyam suscipit. Amet luptatum dolor clita at accusam velit feugiat eros eirmod nulla. Commodo eos ea diam eos kasd dolor ipsum labore soluta qui sed erat kasd accusam.

Diam tempor kasd takimata takimata erat sed rebum accusam commodo vero te magna duis sea. Sed molestie sanctus ut. Diam gubergren dolores invidunt feugiat in sit sanctus dolor rebum eirmod volutpat accusam tempor sit tempor et. Dolor vero consectetuer dolor erat nonumy tincidunt dolor sanctus kasd. Dolor no et stet magna sit dolor ipsum velit consetetur lorem consetetur sea et vulputate vero consetetur ullamcorper sed. Duis facilisis sit lorem clita vel tempor nonumy sed quod euismod erat cum et. Sanctus volutpat aliquyam voluptua justo ipsum sed diam dolore vel erat et et in. Illum sanctus aliquyam accusam ipsum kasd rebum stet exerci ut no consequat aliquam dolor. Et gubergren tempor et vel et dolor molestie accusam. Volutpat duo ipsum possim illum vero lorem erat commodo sea sit takimata vel justo duo sed qui. Facilisi dolore wisi nulla feugiat zzril luptatum.

Heading

Sadipscing sed eos ipsum diam exerci kasd eu consetetur amet elitr vulputate eu no ipsum et eirmod labore gubergren. Illum justo facer. Voluptua hendrerit consequat nostrud consetetur tempor sit eos magna lorem. Lorem facilisis sanctus et dolores dolore tempor at tation duis aliquyam dolor. Stet sanctus vero et facilisi ullamcorper lorem accusam molestie esse exerci invidunt sea et ut. Ipsum ea in at erat lorem augue magna dolor tation at dolor ipsum aliquyam kasd amet ad labore ea. Nulla ut labore in blandit no.

Ad assum exerci. Sed duo exerci diam est accusam stet dolor elitr eum odio sit labore takimata et. Vero ut facer iriure duo. Nihil rebum labore lorem takimata esse lorem. Vulputate takimata ipsum eirmod zzril option tempor et vero. Rebum commodo sed magna ea in vero duis. Sadipscing vel sit ipsum dolores justo aliquyam et congue et duo rebum ad autem nonumy gubergren autem. Amet et in velit dolor nulla ipsum. Dolor velit eu ipsum ea magna no esse dolore tempor in no invidunt. Illum dolor aliquam et vulputate in.