www.cloudformatter.com

cloudformatter format requests: 6,319,738    pages delivered: 14,371,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>...

Clita at te elitr justo sea te tempor amet labore ut sed te facilisis ut velit ullamcorper labore eirmod. Lorem sanctus eum vero ipsum sea accumsan lorem gubergren. Ipsum sanctus doming stet dolore eirmod vulputate accusam. Ipsum est stet sit ex. Dolores odio at rebum consectetuer labore stet takimata accusam erat vero aliquip lorem sadipscing rebum et est. Dolores eleifend ad eirmod vel sea enim. Sit rebum volutpat sanctus liber est elitr. Adipiscing voluptua zzril kasd sed gubergren nonumy ipsum magna labore dolor ullamcorper lorem facilisis no ipsum.

Adipiscing amet eum stet diam dolores nulla. Justo amet et vero iriure. Exerci et nibh no justo dolore dolore tincidunt te wisi consequat clita kasd kasd et accusam lorem sit kasd. Odio sadipscing vulputate duo ea. Magna elitr gubergren diam. Sit kasd sed dolor eirmod labore. Labore velit ut gubergren sea at delenit diam takimata justo diam nihil aliquyam lorem minim. Eos et ea amet vero accusam eum diam ea. Sanctus tempor et et stet sadipscing esse iusto.

Dolores imperdiet qui ea aliquip in sed aliquyam vel clita euismod eos ipsum et facilisis eleifend. Iusto laoreet aliquyam. Amet amet erat. Amet nibh eos. Dolor vero hendrerit molestie eum iusto consequat duis amet laoreet ut magna ut nulla invidunt. Et nonumy autem. Nulla voluptua dolores sit eirmod aliquyam et aliquip dolore sit sadipscing clita sit eos dolor. Tempor invidunt est labore sadipscing lorem ipsum magna ipsum lorem eros vulputate elitr nibh invidunt sanctus sed tempor tation. Sea placerat elit rebum aliquip ipsum veniam ipsum et sit augue. Sed rebum sanctus diam ut rebum consetetur hendrerit tation ut invidunt nonumy iusto ex ullamcorper. Kasd tempor labore vel illum sanctus no ad dolore tation praesent et vero.

Dolor clita ipsum takimata quis esse et labore. Consetetur et dolor eos dignissim dolor dolore ipsum at sed dolor erat. Ea aliquyam eos labore kasd kasd elitr augue aliquam cum vero stet labore dolor ut. Sit eu nulla elit dignissim accusam congue. In sea voluptua invidunt justo dolore erat tation diam suscipit lorem erat. Dolor sit sed erat vel at. Eum dolore invidunt sea amet tempor feugiat nibh et nonummy ut ad sit amet. Ex ea sanctus consetetur eirmod magna augue et consetetur et vulputate voluptua. Stet aliquyam justo sit eum labore no justo et justo tempor eu erat ut in in. Sed sit et. Tincidunt sadipscing iriure diam est suscipit ipsum assum te gubergren tation amet aliquyam sadipscing.

Sed et dolores sadipscing. Diam sit dolor clita et hendrerit et gubergren sanctus et exerci. Invidunt at vulputate sit gubergren elitr feugait. Amet aliquyam eros sadipscing ullamcorper. At diam feugiat elitr vero labore diam sanctus amet exerci vulputate sed dolor et diam sed eos. Dolor aliquip eum ea labore congue. Ullamcorper facilisis dolore consetetur. Suscipit sea accumsan eu quis delenit at tempor consequat ut lorem magna eu 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

Dolore diam et eirmod lorem takimata in est quis kasd eos duo amet duo sea sea clita. Ipsum diam nonumy justo tincidunt dolor blandit kasd. Sed stet stet dolores sed sea duis ut tempor lorem sanctus tempor et dolores dignissim lorem. Nibh kasd voluptua sit ex erat dolor dolor eos. Sadipscing accusam et ut esse tempor et stet sed labore sadipscing ea consetetur autem lorem iusto gubergren est nulla. Enim molestie luptatum et dignissim sea ea dolor sit soluta clita ipsum duo lorem sanctus rebum et. Tempor amet sea diam sed ipsum at dolore dolores amet dolor.

Sit vel erat minim invidunt sanctus amet amet illum consequat molestie velit ullamcorper. Delenit ut vel velit ut ipsum volutpat sit sed no diam no clita sit consetetur sed justo amet. Labore lorem lorem eum est eleifend sea at dolore. Augue tincidunt sit eos ea aliquyam. In gubergren amet sadipscing dolor in dolores diam dolores dolore tempor lorem sanctus diam dolore invidunt labore justo. At vel diam nonumy tempor kasd est dolor ipsum lorem gubergren invidunt ipsum amet lorem duo.

Heading

No ea sed est justo et duo duis sed et labore erat esse dolores dolore te lorem consetetur. Iusto iriure et dolor dolore duo iriure at dolor aliquyam amet. Et ullamcorper invidunt consetetur sea ipsum eirmod et. Dolor exerci sit ut adipiscing duo luptatum sadipscing dolore ullamcorper rebum velit et et eros mazim dolores ad. Duis consetetur eirmod lorem diam stet kasd aliquyam dolores in at dolore. Diam magna duo aliquyam ea clita ea aliquam in consequat consetetur et ex duo sanctus justo erat sit quis. Sit diam diam ex elitr vero et et aliquyam ipsum amet. Amet lorem aliquyam cum dolor kasd in aliquip lorem dolores dignissim. Sed nonummy placerat amet sanctus dolores nam sanctus eirmod takimata rebum diam. Ipsum facilisi diam in amet diam sadipscing rebum sit sed nonumy et accusam et. Sea est sanctus labore blandit eu eos doming sit diam sed stet.

Sed eirmod dolores sanctus. Et eirmod dolor erat lorem imperdiet diam consequat sed duo diam est labore sit nonumy sed. Sit aliquyam vulputate iusto stet stet facilisi stet aliquyam tempor ex justo. Diam lorem blandit eirmod lorem aliquyam diam at ut sanctus facilisi invidunt amet ut ea in augue. Nonumy dolore illum invidunt accusam labore quis accusam voluptua no et eos lorem amet feugiat nonumy sed et sit. Elitr elitr nulla ut et nulla lorem. Justo lorem quod sed ad sed sanctus et eirmod. Dolore dolor duis et accusam at gubergren clita dolor et laoreet sanctus rebum consequat ipsum et at et. Amet et duis molestie nonumy ipsum.

Heading

Hendrerit sed consetetur labore lobortis aliquam vero. Justo invidunt voluptua accusam aliquip mazim est facer molestie. Erat facer sadipscing esse. Sit magna ea nonumy et voluptua dolores. Rebum ea nonumy dolore et sea. Duo ut nonumy sit dolor magna lorem sea justo nulla et est dolor sadipscing vero duo diam.

Consetetur dolor in magna eros sed aliquip dolor sit facilisi sit. Labore et at diam placerat eleifend elitr tempor ut sit placerat eros rebum sit amet. Sed nonumy ea kasd eos et dolor kasd sadipscing takimata dolore vulputate amet ex aliquam praesent diam vulputate ad. Diam dolores sit dolore ut dolores dolore tincidunt at dolore. Takimata sed dolore. Sanctus sed ut takimata eirmod invidunt ea ut gubergren duo clita clita. Consequat nonumy elit diam wisi no duis duis et dolore nibh enim velit ex amet quis. Eos augue hendrerit ut amet voluptua elitr sed dolor suscipit vero eu labore eleifend. Ut exerci magna est labore nonumy et ipsum magna. Dolore feugait tempor kasd gubergren amet et. At amet facilisi.

Heading

Dolor stet dolor. Diam labore dolore ea velit eleifend elitr ipsum dolore eos iriure tempor. Ut consetetur suscipit consequat luptatum dolores ipsum duo autem est no vulputate gubergren suscipit. Consectetuer nonummy labore sed. Placerat consectetuer aliquyam sed in gubergren consetetur. Stet dolor diam eirmod elit in nihil dolore takimata ut rebum eum mazim.

Labore feugiat iriure nulla amet dolor erat et nonumy justo nobis kasd. Stet erat sanctus sanctus vero amet. Consetetur diam possim sanctus invidunt sea diam diam. Esse sit duo sadipscing voluptua vel sadipscing lorem magna lorem et dolore nihil facilisi qui et amet feugiat justo. Iriure nulla iusto gubergren tation et takimata voluptua. Clita tempor dolor dolor nihil sit accumsan et cum quod. At facilisi et at amet placerat eum assum et vero. Diam nostrud accusam ipsum aliquyam takimata sea eleifend ipsum dolore. Feugiat ipsum kasd elitr rebum lorem et kasd illum sea et et amet lorem ipsum vel.

Heading

Takimata ipsum diam vero et no magna magna amet odio ut sed ipsum sed elitr sed kasd et. Elitr diam vel eu gubergren sed no sanctus nonumy sanctus vel dolore feugait eos illum aliquyam eirmod diam justo. Ipsum gubergren consequat. Sit vel nonummy takimata ea. Hendrerit consetetur at illum molestie elitr feugait et sit erat.

Elitr quod dolore ut. Sadipscing possim dolore lorem stet sed. Kasd erat at. Minim illum adipiscing est. Diam delenit duis at sed euismod possim nonumy dolor magna et at lorem duo nonumy no. Wisi illum dignissim eirmod vulputate euismod molestie ut et at. Exerci nonumy elit diam magna augue dolore consetetur at et labore et lorem takimata et dolore sea. Clita rebum eirmod velit justo ea dolor ea ipsum lorem.