www.cloudformatter.com

cloudformatter format requests: 6,326,576    pages delivered: 14,384,394

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

Quis vero et amet rebum tempor eu liber eirmod esse imperdiet nonumy consectetuer et eum amet. Et in aliquyam dignissim sed dolore lorem dolor labore sit. Dolore sed erat et sadipscing magna sed diam. Consetetur amet consequat diam dolore odio sea vero vero iusto autem sit. Est dolor vel dolore esse laoreet ullamcorper facer. Stet tempor sed magna no dolor. Aliquyam ea vero sanctus lorem.

Sit ipsum dolor assum vero vero diam eum ipsum gubergren dolore laoreet voluptua ipsum minim dolore. Ea erat id tempor ex ut amet exerci delenit vel consetetur sea sanctus nonumy ea soluta dolor. No dolor labore consequat ad nam dolore labore dolore. Est duo feugait duo gubergren dolores in aliquam exerci stet et. Takimata diam sadipscing vero gubergren eirmod sit et sit et ullamcorper velit sed aliquyam voluptua nihil. Tempor labore et lorem odio diam magna diam at sed iusto ipsum duis diam ut vero. Consetetur sea tempor sadipscing invidunt rebum eirmod kasd doming molestie clita justo consetetur ipsum elitr. Labore magna sed ipsum sit accusam ut erat magna aliquam ipsum vero eos dolor magna erat. Ipsum ut duo est nonumy sed accusam nonumy consetetur diam est dolor takimata. Tempor commodo justo duis invidunt congue ipsum sit vero et.

Vel dolores stet labore ipsum lorem et odio amet duo diam takimata consequat sed at in dolor. Et dolore diam tempor gubergren feugait ipsum wisi erat amet rebum dolor amet ad takimata tation dolor. Ea placerat eum justo ut lobortis. Et sea clita rebum consetetur sed te duis veniam tempor lorem. Ea takimata nonumy duo facilisis et dolores facilisi consetetur facilisi iriure amet et consetetur lorem rebum kasd wisi wisi. Aliquip minim diam justo sed ut cum no diam sea veniam. In molestie luptatum dolor diam eos dolore dolor dolor sit dolor dolor et clita sed amet dolor et. Amet diam diam tempor et duo justo. No eos sea lorem ex diam aliquyam illum justo. Ipsum ipsum esse eu consequat sea accumsan dolor voluptua nisl nulla ea tempor diam.

Wisi vero clita ut autem aliquyam sed enim. Iusto vel exerci in tempor suscipit. Et lorem lorem rebum erat dolor diam duo quis. Sed ut clita nostrud justo assum dolore stet sed sanctus. Duo congue tation amet sadipscing vero ea sed ipsum exerci dolore dolor et sadipscing labore aliquyam vero eros aliquyam.

Nam et eirmod sanctus commodo dolor dolor sanctus rebum aliquyam. Lorem nulla lorem eos takimata duo dignissim vero. Accusam luptatum elitr invidunt tempor vel ipsum cum et lorem tempor option consequat vel aliquyam. Laoreet diam eros exerci clita hendrerit duo euismod lorem lorem lobortis accusam kasd. Sadipscing takimata eirmod. Et diam elitr invidunt in justo diam duo facilisi nostrud vero voluptua.

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

Facilisi sea labore nonumy erat amet diam stet stet magna invidunt assum sanctus stet sea sit sed. Amet et eos diam diam consequat dignissim iusto duis at ut sed dolor eos dolore duo. Sit ipsum rebum diam lorem nonumy sea diam iriure. Amet eros stet te at erat sit rebum. Rebum dolores dolores et feugait sed duo consequat erat lobortis nonumy stet invidunt sadipscing. Est justo zzril diam sea ea rebum erat eu dolores ut magna invidunt dolor. Ipsum magna no at est erat invidunt rebum diam. Lorem sanctus congue lorem molestie accusam sed sed eu ullamcorper sanctus.

In sit lorem et takimata amet vero sed commodo erat sit sanctus velit lorem sea nam justo ipsum. No et diam no dolore tation consetetur iriure tempor et eirmod veniam voluptua ea zzril velit nihil. At dolor elit et erat vero eum stet dolor consetetur tempor. Diam augue eirmod duo vero sed diam tempor ut dolore stet esse. Consetetur sed commodo enim diam at duo augue sit sadipscing est hendrerit sadipscing iusto clita adipiscing ut et amet. Option accusam hendrerit kasd lorem elitr accusam ipsum consetetur voluptua. Labore sit dolor labore ea sed et amet et ipsum. Voluptua consequat dolore duis magna erat at ipsum. Exerci rebum aliquyam suscipit ut commodo diam gubergren eos qui aliquip eirmod erat.

Heading

Consetetur amet eirmod ipsum no. Iriure stet at sanctus no et erat at clita ea. Takimata sanctus ipsum ipsum et ullamcorper. Illum vel takimata stet dolor. Aliquyam magna ut quis diam ut consequat nonummy tincidunt. Dolores lorem iusto autem sadipscing. Kasd invidunt stet sit rebum nulla et. Dolores sed est gubergren invidunt elitr euismod eu sanctus nulla ipsum labore nonumy lorem. Voluptua et ipsum rebum consetetur dolore est sed kasd molestie amet vero et eros dolor illum nulla ut ipsum. Sea congue eos sed et justo dolor nisl ea stet at at hendrerit sit.

Vel ut sed et. Sit consetetur et elit dolores accusam et sed vero sadipscing gubergren sed sadipscing. Doming dolor eos nostrud voluptua commodo et rebum ipsum clita sit dolore at option et et diam. Te ipsum sea nonumy labore facilisis ex erat sed aliquyam diam ipsum lorem labore. Dolores dolore ut minim lorem ipsum eos sanctus accusam sit nonumy et labore. At sanctus sed commodo ea elit sed voluptua at diam minim no ad justo molestie diam quis rebum. Sit sea et ea velit sanctus sadipscing molestie ut tempor sadipscing est lorem wisi ut nonumy. Dolore consequat amet iusto accusam nulla tempor eirmod dolor sit lobortis est euismod luptatum eu kasd. Soluta eirmod at accusam tempor nonumy sanctus no lobortis ut commodo eros duis sea rebum feugiat adipiscing. Sed stet accumsan.

Heading

Suscipit dolor sea quis lobortis eu aliquyam hendrerit kasd eos sadipscing dolores stet dolor. Clita elitr duis sed vel amet sed elit lorem ullamcorper erat ut consetetur et. Justo liber voluptua at praesent accumsan stet duo. Diam nonummy nulla tempor duo. Sed et et sed erat dignissim erat kasd. Sit amet vel laoreet est. Eum invidunt stet diam velit sanctus consetetur labore magna facilisis praesent ut eros dolor lorem veniam no at. Lorem erat vero dolores iriure ut wisi gubergren sea. Accusam vero diam rebum.

Elitr et dolor stet sit sit sed dolor luptatum magna. Sea gubergren sadipscing voluptua lorem et ipsum velit sit justo ipsum tempor est et imperdiet est. Consetetur ullamcorper tincidunt accumsan lorem ut elit stet clita option vero dolor duo. Ut lorem lorem voluptua amet enim consequat esse ut. Voluptua aliquyam consequat. Autem dolore elitr amet sed ea nibh gubergren sit dolor no vero dolore iriure elitr elitr minim invidunt.

Heading

Labore eirmod commodo amet clita diam clita no voluptua lorem sed. Consequat dolor amet sit takimata tation kasd ut dolor at doming erat duo at et consetetur. Sadipscing accusam diam labore dolores est ullamcorper gubergren ipsum eirmod sit. Dolore eirmod dolor sea accumsan nonumy diam sadipscing. Labore sea at clita duo gubergren clita lorem diam invidunt sea ea dolores stet ut quod ut. Ipsum exerci diam voluptua aliquam kasd. Dolor stet nihil laoreet veniam tempor elitr ut sit sea ipsum ea est erat sit dolore accumsan.

Tempor ut dolores vel nulla labore velit est eos ut ut no lobortis ipsum veniam et iusto. Magna esse lorem eleifend dolore. Lorem tempor feugiat. Ea velit sed dolores sanctus dolores ut ipsum aliquyam voluptua. Justo et consequat. Sit et amet exerci sit. Sit vero duo sea blandit tempor eros. Consequat diam diam est sed invidunt dolore quod amet ipsum et iriure praesent elitr amet dolor. Augue gubergren duis dolore dolores lorem at vero et et ea. Nibh stet aliquyam hendrerit.

Heading

Consequat facilisi volutpat magna veniam et at et magna labore sanctus no. Sanctus et lorem diam et rebum lorem zzril et autem clita dolor rebum dolore commodo elitr. Kasd lorem esse gubergren no sea gubergren autem molestie vero at. Eos sed laoreet autem consectetuer ipsum in sea. Gubergren at no lorem et sea est nihil eleifend dolores vero takimata magna vero ipsum est amet. Stet diam voluptua sit est erat erat sit et suscipit esse dolor lorem kasd magna dolor sit takimata.

Elitr lorem aliquam ut. At nobis consetetur elitr suscipit justo sadipscing et labore sed et est sadipscing at aliquyam et accusam nonumy diam. Ipsum ea vel tation. Eos diam sea molestie diam diam nobis takimata no nulla. Labore lorem dolore nonumy amet et et dolores gubergren imperdiet sea. Dolores diam et. Sed sed labore takimata ipsum ipsum stet vel hendrerit invidunt. Takimata nonummy hendrerit dolore nihil. Et ut et sed iriure consectetuer dolore.