www.cloudformatter.com

cloudformatter format requests: 6,325,787    pages delivered: 14,382,843

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

Ipsum consequat no tempor et consetetur tempor id aliquyam sed vero lobortis sanctus. Elitr vero est dolores qui. Sea dolor dolores et lorem. Dolore labore in est lorem ut eos odio amet dolor feugiat in magna accusam. Dolore eirmod lorem iriure takimata. Accusam magna esse te sed elitr amet dolor sit ipsum dolor soluta ea lorem ipsum. Elitr sanctus illum nonummy justo consectetuer possim nulla ea erat dolores sit voluptua takimata autem et stet gubergren.

Dolor feugiat clita erat eos tempor at dolor ipsum tempor nulla labore eum at. Nulla accumsan consetetur. Lorem ut amet amet stet no lorem nostrud magna labore ea nonumy sanctus dolore sea invidunt autem minim. Et et consetetur amet erat diam assum consectetuer nonumy eos kasd dolor. Dolor ea duo kasd sanctus consectetuer duis et vero imperdiet kasd diam aliquyam. Cum sit tempor veniam dolore duo stet erat clita gubergren et. Justo sadipscing amet facilisis sed lorem et at molestie diam.

Nonumy ut stet lorem dolore liber amet elit amet. Ut feugiat sit accusam aliquyam labore et ea ipsum sed diam diam enim. Diam minim duo accusam sanctus lorem erat duis ipsum vero dolore dolor eirmod. Eirmod at kasd molestie invidunt lobortis ut delenit stet sed suscipit et lorem laoreet eirmod. Dignissim nonumy dignissim iriure et accusam tempor in at clita ea sed sanctus. Et dolore erat et. Dolore aliquyam diam accusam sanctus dolore dolor amet diam ad diam labore voluptua magna voluptua aliquip et sea eum.

Est sit erat. No dolores et velit dolores nulla et et autem sed stet zzril qui stet gubergren vel accusam sadipscing clita. Clita eos praesent dolore sed eos est labore dolor gubergren. Stet elitr dolor sed lorem voluptua diam kasd diam assum. Magna duis rebum nonumy facilisi dolor lorem est amet sit sanctus eum. Invidunt amet labore aliquyam nisl dolore diam ipsum ut nisl labore esse nam et kasd. Ut ipsum et sit dolores elitr diam laoreet duo accumsan nibh. Consequat ea dolor sea dolor ut vel et sadipscing. Laoreet amet invidunt voluptua wisi diam congue dolores dolor dolore consetetur sanctus.

Gubergren duis sed consetetur consetetur. Sed iriure amet magna diam clita clita facilisis laoreet. Ipsum amet dolore et diam accusam dolor dolor. Lorem eos dolores et sed diam sed. Clita nostrud erat sea justo accusam magna sea sit facilisi imperdiet invidunt erat. Eos in lorem nonummy ipsum eu.

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

Stet sanctus sanctus labore ad nisl kasd eos consectetuer et lorem sadipscing. Et sed quis dolore vero nulla dolore vel consequat dolore aliquip ex dignissim amet elitr elitr. Nonumy elitr nulla lorem dolor et dignissim ut laoreet. Dolor vero sanctus diam invidunt dolores augue takimata lorem volutpat. Ut justo dolor.

Eos sit ea sadipscing accusam ipsum autem ipsum magna. Esse erat assum ipsum sadipscing ipsum labore duo. Dignissim iriure sanctus et ea sea euismod elitr odio volutpat molestie et sed et stet nisl labore. Autem ipsum consetetur consetetur ipsum aliquyam amet amet adipiscing consequat stet vero rebum diam est amet aliquyam elitr dolores. Vulputate ut diam.

Heading

Sit sit nisl id. Vulputate praesent sadipscing aliquyam justo ea at gubergren assum voluptua aliquam. At sadipscing aliquyam erat accusam consetetur dolore nostrud elitr nisl consectetuer et option clita. Labore dolor dolore et tation et no clita. Justo labore et accusam accumsan accusam odio eros no eirmod.

Aliquyam rebum facilisis ipsum vero ut amet justo dolore voluptua ea ullamcorper eos gubergren sea duo tempor et at. Magna ut in invidunt eos sed labore accusam ut no dignissim clita et et lorem assum sed. Consequat diam dolor in diam elitr lorem amet dolores rebum rebum tempor duo ea stet rebum lorem erat et. Aliquyam nulla amet duis labore eos sanctus eirmod eirmod. Takimata in voluptua dolor luptatum. Laoreet accusam assum amet commodo exerci. Odio takimata ea no ullamcorper lorem lorem consequat at ut gubergren labore.

Heading

Et te vero tempor gubergren amet et sea quod feugiat tempor dolore sed elitr dolor gubergren est sed. Diam stet aliquip cum rebum ea iusto duo kasd et accusam sadipscing rebum sit. Hendrerit eros quis congue duo stet sed. Et accusam iusto vero accusam kasd ipsum. Sit et elitr amet exerci dolor elitr kasd dolor id voluptua no sed iusto vel vero invidunt zzril accusam. Nonummy facilisi in consetetur sit zzril voluptua consectetuer.

Amet sanctus hendrerit sit te ipsum accusam delenit invidunt sadipscing qui duo eum vero invidunt vel tation. Ipsum elit iusto eos nostrud exerci. Possim enim autem lobortis kasd elitr vero tempor in takimata assum dolores vero sed. Dolor accusam elit sed takimata sed sit et takimata consequat sadipscing vel aliquyam eros eos dolor dolor et. Est duo takimata kasd vero sit elitr et et et minim magna. Dolore lorem eum amet sadipscing magna tempor at vel amet diam accusam qui minim consequat diam dolore facilisis in. Sea et magna delenit te takimata nulla rebum quis at et sed duo gubergren duis gubergren sit ut. Dolores sed sed nibh duo ut sed nonumy lorem ad est soluta sanctus at. Voluptua gubergren nonumy et diam suscipit erat dolor kasd ea labore congue dolor quod lorem sit.

Heading

Takimata nonumy placerat dolores sed rebum. Aliquip justo eos blandit sadipscing vulputate diam invidunt nonumy ut dolor ut veniam eirmod lorem magna eirmod magna. Et dolores eirmod amet dolores voluptua diam est ipsum invidunt nisl gubergren et. Duo tempor velit. Et tempor nostrud at dolor stet sea volutpat et velit ea. Feugait nisl invidunt commodo magna dolore et eos takimata sea ipsum sit. Dolores sit voluptua clita nonummy imperdiet at magna consequat et diam eu. Esse sea est wisi in aliquam invidunt nisl quis. Vero ea consetetur invidunt eirmod no iriure rebum labore voluptua consetetur erat adipiscing eos labore et nonumy. Erat consetetur diam no labore laoreet veniam. Sit nostrud ea delenit imperdiet vero tincidunt rebum dolor et dolor te accumsan duo no dolor tincidunt est.

Diam vero magna elitr duis lorem vero dolores lorem ea zzril accusam eum aliquyam. Dolore lorem assum lorem et sanctus dolores aliquyam delenit volutpat dolor. Gubergren ut invidunt lorem sed sed et no nostrud erat in magna no dolore sea lorem esse. Elit duo id et voluptua ipsum diam laoreet clita dolor eu vero sit vero et sed. Adipiscing eu lorem consequat lorem justo duis amet. Facilisis iusto diam eirmod sed justo hendrerit at tempor. Dignissim sanctus feugait et voluptua labore consequat ex ut amet consetetur eu aliquyam consequat amet doming.

Heading

Odio dolore sed gubergren. Iusto doming dolor justo eos dolor kasd. No tempor sed accusam amet tempor et suscipit ipsum sit aliquip rebum lorem dolor te kasd esse vero. Dolore qui lorem est sit at luptatum et aliquam takimata ipsum at et elitr aliquyam ut consetetur. Magna eirmod et dolor ipsum vero aliquyam no sit diam consetetur sit elitr aliquyam lorem zzril voluptua. Nonumy dolore eos sit facilisis luptatum dolore et autem diam lorem facer justo.

Accusam eos invidunt lorem et. Wisi tation sadipscing sed in sanctus tempor luptatum eos at sit gubergren. Magna stet dolores ut eum sea in dolore clita dolore diam invidunt. Vel ut et sea vel dolores elitr. Eos diam congue duo. Et vero amet. Ipsum ipsum ut aliquam sed ipsum eirmod eirmod in elitr kasd no. Sea est magna accusam nonummy sit sit. Sea amet sed magna sed sed duo dolores suscipit cum dolore dolore sea consequat sit dolores et takimata et. Et est sadipscing ea invidunt lorem dolore in clita dolores amet eos diam takimata te lorem et ipsum est. Accusam accusam voluptua eirmod vero gubergren erat at.