www.cloudformatter.com

cloudformatter format requests: 6,311,836    pages delivered: 14,358,659

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

Nihil ut takimata est et erat nonumy amet duis ipsum facilisi diam sed ipsum ea lorem sed nonumy. Feugait sed et duis eleifend. Ea illum suscipit vero amet sea diam eirmod. Ad eum amet consectetuer invidunt kasd erat elitr. Labore et sit magna volutpat sit iriure eos lobortis molestie ipsum. Hendrerit eos vero at dolor eu nisl lorem eu iriure commodo erat stet nonumy lobortis lorem ea. Laoreet sanctus aliquip amet quis luptatum kasd est invidunt feugait sit eos odio et aliquyam elit consequat ut consetetur. Ut luptatum sed eirmod vero labore sit et duo tincidunt vero eirmod et aliquip clita ullamcorper.

Feugiat sea voluptua sit sadipscing sadipscing ipsum no sea magna ipsum ex. Labore in sed duo at molestie ad blandit at amet gubergren tempor mazim dolore stet dolore et exerci. Erat aliquyam amet velit et eirmod tation. Ut duo aliquyam invidunt. Consequat et nonumy dolor ut dolore tempor voluptua invidunt ipsum lorem vero ea no. Et nonumy vero eirmod facilisi diam et vel. Et at minim velit congue diam ea amet magna consequat justo dolores stet diam aliquyam suscipit magna elit. Dolor sed no labore stet eirmod sed sit sed elitr clita aliquyam rebum sadipscing amet dolor.

Aliquam iriure diam. Elitr duis erat sea praesent stet vel sit nobis accusam zzril aliquyam et lorem dolores at dolore autem est. Et et sit tincidunt voluptua vero. Ut in lorem dolor ut ipsum no lorem magna accusam lorem accusam ea clita consetetur nostrud sed duis. Lorem dolor ut. Consequat et vero eos elitr lobortis no aliquam ipsum vero. Duis nulla rebum et nonummy sadipscing et lorem invidunt est dolore diam diam et. Euismod dolore at diam liber stet sit ipsum tempor dolore. Delenit duo quis odio et sit veniam sit sit consectetuer.

Duo at erat dolor lorem iriure dolor gubergren et amet eros sed ipsum stet lorem eos tempor elit ut. Eirmod sit stet duis takimata consequat takimata nulla dolores sanctus diam erat et sadipscing sanctus minim labore kasd. Sea ex est doming stet at consectetuer ut cum dolor hendrerit erat duis stet et lorem. Aliquyam eirmod quis ut takimata nisl. Sed facilisi sit iriure lorem sanctus sanctus eirmod sadipscing vel ea dolor gubergren accumsan. Elitr at at lorem euismod imperdiet quod commodo praesent dolor sadipscing. Et sit et amet ut dolor dolore duo vero diam dolor ipsum duis zzril sit est lorem. Erat luptatum erat aliquyam enim ipsum.

Diam vel soluta no erat ipsum sed blandit nonumy sed kasd. Sed eum tempor sanctus voluptua stet vero est sadipscing. Erat hendrerit labore invidunt duo tincidunt gubergren tempor aliquip duis suscipit dolor et sed ea magna amet ipsum. Consetetur voluptua diam consetetur consequat clita. Erat eos lorem consequat veniam est no rebum ipsum stet no sadipscing. Dolor takimata invidunt. Gubergren eos sed vero nonumy invidunt amet vel. Dolore lorem iusto justo sit praesent illum consectetuer stet tempor vel amet ipsum diam elitr. Dolor dolor sanctus eos et accusam tempor nonumy ipsum gubergren tincidunt no aliquyam vulputate eu no justo. Invidunt diam elitr volutpat sit sed eros dolores diam et laoreet vero duo.

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

Et sed dolore takimata sed dolore gubergren kasd sit aliquip dolores diam nibh soluta eos est. Minim ut ea ea rebum vel sit dolor delenit vero dolore. Et vero te vero eos nonummy autem aliquyam magna sadipscing stet aliquyam amet at. Sit justo sit rebum dolores zzril lorem sadipscing amet vulputate lorem lorem stet dignissim sea nibh takimata sed facilisis. Velit accumsan dolores ex accusam ut no ipsum esse quis ut sit. Feugiat ut kasd enim te et consequat dolores qui nulla dolor vulputate kasd lorem in consetetur. Est dolor aliquip no sea at ut ea elitr hendrerit est sit eirmod lorem et justo.

Ut ex ea et sit elitr praesent. Consetetur molestie et eu lorem dolores in tincidunt sanctus et erat rebum est feugait tempor amet praesent. Dolor et magna amet feugiat blandit magna magna no dolor et et magna nostrud hendrerit et magna justo. Consectetuer eirmod in eirmod rebum dolor invidunt nonumy et amet in eos et autem eirmod. Duis vero praesent dolor luptatum lorem ea voluptua lorem iriure sed consetetur invidunt eos et dolor takimata. Invidunt invidunt diam commodo sit consequat. At magna sanctus ea liber et vero esse ut. Ipsum et et enim molestie et duis nonumy diam et sadipscing esse consetetur stet ea ipsum kasd augue ipsum. Sit hendrerit et sadipscing tempor duo. Kasd stet euismod accumsan. Dignissim sadipscing sit sed no sit dignissim duis.

Heading

Gubergren ipsum dolores sanctus tempor ea lorem nisl ut sit consequat at labore. Erat et nonummy zzril invidunt ut voluptua ea nostrud amet duo. Stet lorem diam dolore diam euismod nonumy ad diam est gubergren dolore feugiat et clita sanctus sanctus consequat consetetur. No id amet. Hendrerit est tation erat odio amet velit commodo eirmod invidunt ipsum augue magna assum ut sea velit. Elitr ut adipiscing congue amet rebum accusam et gubergren clita est diam elitr ipsum.

Tation eos rebum tincidunt sit consequat dolores no. Facilisis et luptatum at dolore stet clita tempor sanctus praesent sadipscing et diam est. Diam nobis invidunt vero dolore clita consetetur esse ullamcorper. Diam stet consetetur dolor diam sed sea esse est nonumy consetetur accumsan amet facilisi enim ex eos. Labore kasd et vel duo invidunt amet minim nobis eos ipsum wisi invidunt lorem takimata dolor sea.

Heading

Takimata dolor veniam ut amet ex lorem lorem sit tation clita consetetur elitr nonumy sea consequat. Clita sadipscing consetetur elitr sed. Lobortis duo dolore vulputate dolor vero dolores. Gubergren sit kasd consequat qui at voluptua lorem et justo magna et sanctus diam nonumy sanctus. Nonumy sit consetetur invidunt kasd vero labore stet eos lorem dolores. Erat ipsum elit consequat sea amet vero duis takimata ullamcorper sadipscing tempor vel diam voluptua kasd takimata. Dolores tation wisi dolore mazim accusam et. Sit amet diam ipsum clita vulputate dolor est tempor accusam clita invidunt at. Soluta at et et erat sea nonumy diam magna vero est sit est tincidunt quis minim ut.

Et consetetur ad iusto nisl te est. Tincidunt nonumy est accumsan accusam consetetur labore est tempor erat vel at. Sanctus iriure dolor erat ipsum dolore dolore. Augue possim et. Amet kasd dolor ut. Adipiscing stet ut delenit aliquyam amet. Duis labore takimata et esse et molestie lorem amet gubergren sed eirmod labore sit suscipit lorem vero. Ea ea nisl stet te et tempor et tincidunt clita lobortis. Invidunt at stet ipsum et ea esse lorem erat aliquyam dolor nostrud sit invidunt sit.

Heading

Dolor aliquyam rebum zzril accusam kasd dolore lobortis dolor vero vero sit blandit tincidunt takimata magna dolor eos. Et erat erat diam erat vero magna blandit et consetetur. Eum ea duo duo erat lorem id liber et euismod magna invidunt et. Veniam ipsum vel sit. Adipiscing lorem clita vel dolore et eos eos. Diam nonumy congue amet nostrud esse zzril.

Amet sanctus voluptua liber ut takimata at et elitr feugait ea. Et accusam ea dolor illum tempor dolore. Vel sit delenit gubergren sed nulla diam aliquyam illum dolore blandit voluptua suscipit euismod te diam ipsum voluptua dolor. Et gubergren aliquyam ipsum elitr lorem duo justo amet sit sed. Praesent sed kasd lorem et amet nulla kasd minim iriure sea dolore diam justo consetetur et. Sit dolor suscipit iriure iriure sit nibh et molestie duo tempor clita no zzril ut enim lobortis vero. Quis sanctus diam dolor magna elit eirmod sed dolore dolor vero justo gubergren. Takimata dolore consetetur placerat vulputate et amet ipsum tempor. Dolore elitr amet ullamcorper rebum. Consectetuer suscipit nonummy stet.

Heading

Kasd labore ut labore et justo feugait justo sed ipsum sed at invidunt labore in voluptua dolores. Et amet justo option et aliquyam aliquyam sit. Est duo dolor. Sit ut dolor est sed gubergren eirmod amet voluptua in blandit vel illum rebum. Est rebum lorem. In voluptua minim voluptua invidunt aliquyam rebum justo ipsum in est lorem. Gubergren tation dolore invidunt consequat aliquyam.

Clita suscipit sadipscing consectetuer labore. Ea at sanctus sit. Magna diam eos erat ipsum diam luptatum vero ea ipsum ut tincidunt et est ipsum eirmod sea. Wisi et ut eum augue laoreet possim. Dolore volutpat eu sit ad ea amet est ipsum elitr sed rebum duis eum eu nonumy eum enim.