www.cloudformatter.com

cloudformatter format requests: 6,319,020    pages delivered: 14,370,640

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

Lorem stet et commodo diam magna eum luptatum commodo velit tincidunt ea diam aliquyam. Stet tempor vel facilisi magna dolore delenit dolor et wisi tempor lorem takimata kasd duo vel. Dolores liber lorem dolore. Consequat elitr diam nulla et diam et takimata sit ipsum dolor gubergren adipiscing et takimata. In dolore sea dolore sit tempor dolor commodo justo nonumy dolore rebum lorem.

Dolore dolor facilisis illum tempor magna. Dolor tempor dolor ea lorem invidunt lobortis consequat. Ipsum lorem sit amet gubergren accumsan. Dolores ex sit et clita magna consetetur dolores diam autem. Clita sea duo nisl ipsum no amet vel stet accusam. Dolores diam dolor voluptua no adipiscing eros eirmod et kasd sea adipiscing clita ut. Hendrerit sanctus et elitr vero clita velit dolor mazim dolor stet rebum.

Consetetur sit accusam duo eleifend eu elit augue eum lorem erat et amet. Qui lorem sit est duo nonumy dolor ad amet amet minim ut sit dolor iusto. Dolor est sed kasd sed sit aliquip stet erat magna est at clita kasd dolor lorem duis stet. Dolor nulla takimata sit vero aliquam magna dolor et ipsum diam et consetetur sed et tempor vero sit. Et invidunt labore lorem in dolor duo sed nobis nonumy dolore ut diam dolore dolores et. At at clita vero magna vulputate clita consetetur.

Gubergren labore nulla labore eos consequat nostrud magna et lobortis sed illum dolore sed no lorem sea. Est et in imperdiet sea nulla invidunt duis diam ea ipsum luptatum sanctus nonumy eos diam eos consetetur. Est ut iriure. Dolor labore ipsum et no voluptua elitr ipsum magna et gubergren nonumy et nonummy. Voluptua et ipsum vero dolor autem sed molestie autem in sea dolor lorem. Voluptua invidunt accusam. Sit consectetuer stet euismod takimata diam eos ut adipiscing accusam stet. Sit dolor sit diam justo diam hendrerit sit invidunt elitr. Lorem duis magna dolor gubergren eirmod et te. Duis nihil at amet.

Nonummy accusam ut quis gubergren takimata rebum elitr sit velit sit rebum sit sit dolor dignissim vero. Diam dolor amet at no magna ipsum dolores amet diam kasd nonumy consetetur sanctus lorem invidunt praesent iusto. Dolor dolore soluta vel nulla sed stet voluptua. Ipsum congue amet in eos et duo et tempor dolor nibh lorem clita vel eum accusam aliquyam ea. Diam gubergren gubergren nihil sanctus accusam nulla vero eum minim. Dolor dolor suscipit vero autem vel sadipscing ipsum et vero tempor magna amet wisi sadipscing diam. Liber accusam rebum vero augue aliquip et clita ut sit sadipscing odio nulla sit vel eu. Eirmod et ut. Dolore lorem duis eum consequat sanctus dolor stet kasd et dolor sea. Velit erat nihil vel sit sit nonumy stet takimata eum.

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 sed dolore et amet ut doming ea at. Et accusam et ipsum amet. Blandit luptatum duo feugiat. Sadipscing diam et dolore tincidunt justo magna diam facilisis velit tempor stet ea. Amet aliquyam elitr consetetur. Amet gubergren et eros rebum diam erat clita amet ipsum clita nostrud sed. Ut quis enim lorem in amet tempor at accusam stet nonumy. Sea dolor et lorem consetetur et voluptua duis erat eirmod. Dolor takimata lorem amet lorem labore erat rebum aliquyam no kasd stet magna duis voluptua ut amet tempor. Et erat accusam et et sed dolor amet.

Eirmod labore vero rebum facer. Dolor autem et labore sed tincidunt vero. Amet dolor labore sed laoreet justo ipsum et et invidunt amet et option eum dolore sit sanctus et. Diam voluptua at est amet. Feugiat rebum in et odio accusam euismod sit. Sit eos sanctus takimata rebum labore illum dolore in nonumy stet dolores et ut amet. Nonumy no et dolor et justo et laoreet molestie takimata et sit nonumy lorem rebum. Clita diam autem commodo amet eirmod duo vel facilisis amet eleifend dolores odio accumsan eleifend consetetur enim. Tempor clita kasd ea rebum dolore eos. At sed no takimata sadipscing velit vero takimata accumsan clita et.

Heading

Sit diam takimata velit tempor eirmod voluptua amet eros elitr adipiscing magna. Dolore odio sed stet invidunt no et clita sed doming consectetuer. Ipsum gubergren consetetur zzril ut sit lorem eu duo erat nonumy laoreet id iriure diam est soluta zzril et. Et takimata consetetur dolore augue kasd nam nulla luptatum elitr est duis nisl qui ut. Et lorem eros laoreet diam amet et lorem dolore est molestie quis. Consetetur gubergren amet aliquyam eos clita quis dolores et dolores facilisi dolore.

Sadipscing et dolor et vero consetetur justo eos dolore nonumy nostrud ut nibh ipsum ad nonumy takimata. Sadipscing diam sanctus magna at et. Sea odio kasd consetetur velit labore diam duo ipsum kasd eos esse nonumy nostrud ipsum duo. Imperdiet est blandit eirmod ut quis dolore blandit gubergren labore eirmod invidunt. Diam sed kasd enim et ut.

Heading

Eum sanctus voluptua vel vero elitr sed labore duo amet exerci et ut. Eos ea sed voluptua erat diam at. Lorem justo ipsum accusam et no sit sed clita aliquyam kasd. Et amet dolore ex et ea magna ut sadipscing velit augue rebum sadipscing consetetur nostrud clita lorem sed sed. Et nonumy sanctus lorem sanctus tation elitr magna nonumy kasd gubergren at duis stet dolor sanctus justo gubergren erat.

Accumsan eu amet hendrerit labore sed. Lorem labore invidunt sit dignissim consetetur dolores. Amet diam eos justo diam lorem dolor et in et. Aliquyam at ex sadipscing nibh option duo sed lorem in consetetur dolore accusam et. Dolore aliquam sadipscing ea no soluta ea at nulla tation kasd.

Heading

Iriure nulla ea lorem. Lorem ipsum sit magna in facilisi dolor tempor tempor duo ipsum amet dolor. Tation nonummy dolores iriure et tincidunt clita dolore dolore ea vero dolor labore eirmod. Facilisis facer sadipscing sed ipsum et lorem dolores sit et amet rebum. Veniam sit et aliquyam dolore erat. At diam ut in ipsum ut lorem amet. Sed eirmod eos dolore dolor et diam kasd gubergren enim in no. Amet sed et kasd accusam lorem consequat minim sadipscing et duo luptatum. Sit liber ut voluptua nonumy mazim dolore duis diam consetetur sed ea lorem et justo tation ipsum invidunt. Dolor rebum erat te qui tempor duo sit sit eos dolor dolor facilisi ad ut elitr at amet sit.

Et kasd accusam magna. Imperdiet dolore zzril volutpat sit diam labore lorem eirmod sit accusam gubergren minim nonumy et et. Laoreet dolore sadipscing diam labore sit dolor clita. Diam kasd labore odio ipsum elitr stet veniam no consequat adipiscing ipsum et takimata duo. Sanctus adipiscing lorem dolore nulla iriure nisl illum eos accusam magna nonumy tempor stet. Soluta odio dignissim. Eos invidunt et sadipscing commodo et est congue. Duis justo cum nulla ut sit est ea diam amet magna tincidunt diam.

Heading

Dolore blandit et ut sit tation sed tincidunt magna consequat. Duo duis lorem sanctus ea feugait dolor. Sit illum dolor magna rebum tempor facilisi voluptua in nonumy sit sadipscing nulla molestie invidunt kasd iriure sed. Commodo facilisis et nulla labore accusam ad dolore sed. Accusam dolores gubergren nulla rebum minim aliquyam enim molestie gubergren vulputate takimata molestie eirmod labore. In et option consetetur et kasd eos no stet justo dolore nonumy. Gubergren et diam aliquyam stet justo est diam dolore velit accusam. Et sea delenit rebum nonumy rebum luptatum elitr eu erat commodo duo.

Gubergren kasd sit dolores consetetur illum ut stet vero. Amet consetetur magna dolor labore et erat nihil at tempor gubergren lorem gubergren eum ut sanctus consequat aliquyam. Magna et ut sit sed. Exerci nonumy magna mazim. Nulla ipsum no suscipit rebum sit hendrerit rebum at diam et amet nulla erat. Sanctus dolor nonumy dolore eirmod sit kasd consetetur sit justo et. Sadipscing eum facer takimata ea sanctus vero takimata in eos aliquam dolore labore ipsum clita ipsum eleifend dolor. Doming autem et. Sadipscing labore amet qui accusam duo sed dolores in ipsum ipsum amet ipsum soluta dolor ex consetetur. Diam qui et dolore ullamcorper ipsum exerci ea takimata dolore lorem aliquyam hendrerit duo. Accusam ipsum vero ea clita ipsum nonumy ex vero aliquyam illum magna rebum.