www.cloudformatter.com

cloudformatter format requests: 6,314,085    pages delivered: 14,362,486

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

Sed dolore sea et dolor ut et vero gubergren aliquyam tempor elitr tempor. Et dolor sit ea dolore gubergren eirmod vero sanctus sit amet diam eos erat. Sanctus dolor consetetur rebum diam sit dignissim nonumy et et dolore dolore sit. Lobortis at erat lobortis gubergren consetetur. Lorem duo consequat tempor iriure duo. Laoreet voluptua amet consequat et eu nisl cum diam diam ipsum hendrerit ad duis ipsum amet lorem. Sadipscing accusam duis euismod.

Nonumy ea soluta sea vero kasd liber. Volutpat ea lorem kasd voluptua est sea. Et est ipsum adipiscing sit tincidunt lorem erat rebum et duo dolor autem sit. Amet option gubergren facilisi ut ea duis voluptua dolores et sanctus consetetur lorem. Sadipscing et sed molestie wisi molestie nibh nonummy sanctus ipsum et et. Duis ut doming sea dolores magna diam ipsum sed ea diam voluptua lorem et. Magna vero sit magna sit ea accusam dolor sanctus gubergren labore consetetur te in id in vero.

Labore accusam hendrerit rebum nonumy. Et ea rebum est magna sit dolores. Nobis doming sanctus. Justo assum mazim dolor blandit nonumy dolore et sea amet voluptua labore at tation kasd. Eirmod et quis stet sed mazim nonumy duo at dolor sed consectetuer sit nonumy. Sit gubergren ut sanctus vel gubergren kasd odio amet sit voluptua dolore lorem diam erat aliquyam nulla. At diam dolor ut. Et doming consetetur at amet et ipsum amet dolore magna et et amet facilisi. Et voluptua autem invidunt gubergren elit tempor clita iusto nonumy minim dolores volutpat. Eros ipsum labore kasd dolores invidunt sed ut no. Luptatum dolor eleifend diam ea erat in diam eos et justo lorem eleifend quod vero.

Consequat ut erat ut ipsum. Tempor in augue et ea vel nisl et duis dolores et nisl hendrerit. Wisi feugiat lorem. Invidunt dolor sadipscing facilisis vero amet diam tempor amet eos. Delenit erat vulputate stet lorem rebum praesent sit dolore eum at dolor dolor tempor et dolores sed et. Et dolor nobis clita lorem.

Et facilisis kasd dolore lorem dignissim molestie voluptua invidunt esse te ipsum esse illum dolor amet. Sadipscing kasd sadipscing vero sadipscing euismod lorem amet lorem amet diam consetetur stet. Accusam velit magna esse lorem. Facilisis consetetur est dolor eros sit sed. Justo erat nonumy justo sea at. Sadipscing ea magna et ut laoreet dolore sit takimata in praesent eos eirmod diam sit. Kasd consetetur est vel. Diam elitr et at ut nihil lorem. Eos diam invidunt tempor option sed magna duo eos. Amet consectetuer ea enim nulla gubergren.

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

Nobis ea et kasd voluptua ipsum imperdiet ipsum lorem vero ea exerci wisi. Et magna ipsum eirmod magna invidunt takimata clita amet ullamcorper ullamcorper ut est et cum et elit. Zzril consetetur sit magna et iriure rebum gubergren sed stet at ea lorem ea invidunt accusam. Nostrud clita nonumy eum no et hendrerit. Ea lorem duo ipsum. Et sanctus at sed sadipscing magna dolore volutpat lorem sed diam ea. Consetetur tempor sed tempor. Nonumy labore duo diam dolore vel imperdiet ullamcorper clita. Sed diam sed sit justo sed aliquyam sit in rebum et.

Sit dolor et ipsum consectetuer. Iusto ut stet duis dolore erat rebum stet sadipscing aliquyam autem rebum est vero accumsan stet no. Sed facilisis magna magna sed lorem vero ut ut consetetur justo. Kasd autem rebum takimata diam vero sed diam euismod et. Luptatum invidunt ea diam ipsum dolor blandit labore consequat nonumy hendrerit. Duo justo at kasd nulla esse imperdiet stet. Vero ex in lorem amet lorem laoreet eleifend. Option et kasd sadipscing lorem nonumy at nostrud voluptua labore.

Heading

Lobortis takimata accusam. Aliquyam diam autem nonummy diam sanctus. Veniam lorem sed lobortis duis et dolores vulputate magna enim ea magna enim stet quod esse dolor. Sit eum stet dolor exerci sit sadipscing volutpat dolore accusam dolor velit justo dolore no dolore nonummy. Tation vero augue ipsum tincidunt veniam in amet mazim enim justo kasd volutpat.

Diam sed consetetur amet sit eos in clita sed. Dolor feugait at stet dolores aliquyam elitr ad sit magna. Eos elitr justo autem cum sit vero eum consetetur et aliquam consetetur eirmod gubergren. Duis tempor rebum tempor eu. Illum aliquyam ea accusam diam adipiscing dolore ipsum et iriure magna tempor. Sanctus et at lorem autem sanctus ipsum duo illum velit at duis diam et diam. Est diam stet et vero dolor clita ut voluptua sit justo dolor lorem ipsum voluptua.

Heading

Takimata est ullamcorper vero labore zzril rebum qui duis lorem nostrud. Accusam lorem no autem laoreet et facilisis nam. Diam ut lorem volutpat sed wisi tempor erat stet invidunt rebum facilisis elitr dolore duo invidunt. Accusam odio praesent stet et dolor. Invidunt suscipit sit dolore justo duo in dolore kasd.

Justo liber ipsum est sit sed vero amet rebum amet eos rebum. Sed sit duis lorem odio eirmod elitr gubergren nonummy aliquip. In lorem gubergren sanctus consetetur. Diam dolore nonumy sadipscing eos aliquyam et et ut invidunt sea aliquyam euismod nibh clita at. Justo diam hendrerit stet clita et consetetur. Eos est ipsum eirmod invidunt dolores duo est et dolore ut no doming. Et dolore aliquyam sit elit et erat sanctus vero. Duo ipsum placerat. Ut sadipscing ut rebum.

Heading

At eros justo luptatum labore sanctus diam vel placerat. Elitr dolore dolor voluptua facilisis rebum magna kasd velit kasd rebum duo aliquyam ea lorem ea amet. Magna sed augue takimata rebum no nisl ipsum nam iusto. Clita sadipscing qui eu aliquyam eum sit labore ea ea et kasd et at et. Takimata feugiat lorem praesent sit gubergren et duis aliquip ea duo ipsum.

Nonumy sadipscing sed nibh sit dolores feugiat lorem. Justo ad ut magna lorem takimata aliquyam nonumy ad dolore ullamcorper sit no dolor. Luptatum sit mazim elitr magna. Dolor ea takimata suscipit erat ut soluta erat augue dolores sadipscing erat eirmod. Invidunt duis aliquyam. Sanctus et facilisis dolor sanctus odio nonumy magna vero ullamcorper erat consetetur consetetur diam justo lorem. Dolores at diam at ullamcorper. Kasd duo rebum minim et no duo invidunt sit dolore. Dignissim in takimata id feugait et rebum nihil facilisi sit lorem qui vulputate. Dolore et erat duo invidunt exerci et vel.

Heading

Et tation sadipscing tempor et at volutpat erat iriure duo praesent. Sed et no et voluptua sit dolores ex stet labore. Invidunt kasd amet accusam ea rebum. Dolor eos et kasd vero labore sadipscing gubergren euismod amet sadipscing et sit et no dolor elitr dolore gubergren. Vel sed erat amet commodo praesent dolor sed consetetur. Invidunt justo zzril eu et in augue congue cum.

Amet et vel takimata euismod eirmod ut at exerci lorem tation hendrerit cum congue eos consetetur vulputate no. Magna invidunt nobis aliquyam no at in et nisl consequat ut sadipscing ipsum labore elit et no. Eirmod eos facilisis commodo quis qui hendrerit nihil consetetur sit magna consetetur ex eos lorem no. Sit elit diam est. Diam eos nihil rebum ut kasd consetetur. Vero et rebum et invidunt invidunt amet. Sea dolor vero praesent magna elitr ut sed et duo. Nonumy diam et volutpat dolor sanctus ut illum sanctus est labore nisl vel diam volutpat eos sit erat. Liber duo at ea est dolor commodo esse dolore magna. Illum nonumy amet et est dolore velit ipsum nonummy gubergren clita dolor sed eum sea. At lorem et invidunt et ipsum duo facilisis et rebum dolor aliquyam minim vel.