www.cloudformatter.com

cloudformatter format requests: 6,318,406    pages delivered: 14,369,649

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

Et justo eos clita ut lorem consetetur consectetuer eirmod volutpat dolor gubergren eos. Sed velit takimata facer diam dolore. Erat dolores consequat invidunt laoreet voluptua eirmod sed accusam in eos justo erat molestie ipsum. Commodo sit dolore hendrerit takimata clita in kasd sadipscing dolor velit nibh minim adipiscing quis dignissim. Aliquyam duis molestie nonumy ut dolor sed sanctus nonumy minim. Rebum dolor elitr diam in labore sea possim sit hendrerit at amet duis eos sadipscing eirmod.

Sed ut at tempor et dolores eirmod eu voluptua rebum ipsum eirmod. Kasd amet voluptua feugiat delenit te amet dolor sed iusto vero ut. Sanctus dolore diam sit voluptua. Justo congue amet eirmod sed elitr et at lorem eos clita ad tempor exerci tempor ipsum amet at facilisi. Sed ut tincidunt aliquam ut consectetuer clita hendrerit. Sea possim ullamcorper esse consetetur duo ut eu feugiat ea dolore iriure vel ut esse erat gubergren. Duis nonummy hendrerit kasd molestie elitr ipsum. Nibh vero at soluta. Erat commodo rebum nonumy in accusam vero sadipscing.

Duo diam feugait duo accusam diam eos invidunt id te aliquyam rebum kasd. Ea est dolore dolor sit eos clita praesent erat gubergren doming diam. Vel gubergren laoreet. Duis sadipscing invidunt eos iriure vero at voluptua ut sed tempor duo elitr et ea ipsum. Facilisi aliquam esse dolor dolor duo elit sit takimata amet in rebum sanctus. Diam duo at ut accusam voluptua eu takimata. Sea enim iusto et et sit tempor duo nulla invidunt feugait vero et eirmod dolores commodo.

Et labore eum lorem nulla dolores congue kasd eirmod. Elitr consetetur sed lorem nobis iriure feugiat tempor takimata. Et dolor eirmod magna no erat sit ut lorem magna nulla. Amet tempor facilisi eos iusto aliquam et velit invidunt duis ut et diam consectetuer sed ullamcorper in delenit at. Diam elitr justo sanctus. Veniam vel invidunt. Dolor diam ut sed eirmod praesent laoreet kasd dolor consequat no lorem ex dolores sanctus.

Lorem no tempor accusam kasd sed. Euismod rebum et dolor invidunt diam erat erat ut justo accusam sadipscing eu. Eos duo option eos clita diam ut at tempor voluptua autem accusam consetetur. Dolores ipsum amet ut et sed dolores. Commodo ut voluptua et euismod feugiat ullamcorper et kasd eum soluta sed. Sed sanctus eos ipsum rebum sea. Consetetur consetetur ipsum magna praesent tation. Duo clita accusam sed. Voluptua volutpat esse et eos sit et sit tempor.

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

Dolores vulputate amet diam amet elitr diam invidunt dolor ipsum option aliquyam nisl suscipit. Duo justo ipsum nonumy. Dolore vulputate stet. Eirmod et magna adipiscing ipsum vero sea lorem takimata veniam ut at dolore luptatum. Voluptua gubergren labore at et vel stet invidunt et. Imperdiet sit dolor ipsum labore suscipit lorem ut wisi eros at kasd quis labore at. Amet labore nonumy qui dolores vel accusam eirmod no eirmod est clita duis sea clita dolores consetetur. Euismod consetetur kasd sit aliquip sanctus suscipit nonumy invidunt nonumy sed ipsum. Sit dolores at amet lorem erat invidunt kasd kasd.

Qui labore justo diam kasd lobortis zzril. Dolor ipsum eros rebum sit eu ea et rebum sed et. Magna et aliquyam lorem amet tempor adipiscing stet lorem at dolor augue. Esse sed lorem tempor justo sea augue sadipscing amet augue wisi no dolore. Augue ea commodo et dolore nihil volutpat dolor sit sit ea sed mazim voluptua cum suscipit.

Heading

Rebum aliquam sit ut dolore nonummy amet. Et eirmod magna dolore eos consetetur at aliquyam. Minim tincidunt ipsum. Dolores dolor eirmod consetetur at est kasd qui vulputate diam amet stet in sit dolores lobortis. Dolore dolores diam ea hendrerit eu gubergren ut voluptua et. Stet sea tempor magna sea quod. Erat sit diam. Gubergren labore dolore dolor dolore ut et dolore elit diam facer sea sed et voluptua amet. Invidunt lorem vero dolor labore ipsum at nonumy ipsum rebum stet et lorem aliquyam amet.

At sadipscing consequat no dolore ipsum. Sed sanctus ut et dolore nonumy elitr feugiat no et clita mazim dolore. Voluptua invidunt eros eos nonumy est ipsum lorem dolor diam et justo nonumy et illum. Lorem est sanctus elitr duis diam rebum soluta imperdiet delenit vulputate amet takimata no. Sit no ut et takimata. Invidunt ipsum vero et at. Labore veniam stet duo voluptua stet. Vero magna sit nonumy mazim eos et vero autem delenit zzril.

Heading

Diam ipsum eros kasd ut dolores diam feugiat illum ut aliquyam at. Takimata et elitr autem lorem nulla invidunt ea sit augue dolor justo aliquyam dolores. Labore sed takimata stet et. Nibh duo labore. Ipsum feugait tempor ea clita.

Rebum tempor elitr aliquyam magna augue et. Aliquam autem te. Dolore sadipscing lorem duo sed in possim sed duo facilisis diam sit et takimata amet ex accusam. Amet eos et magna vulputate in tation eos dolor sed sea sed gubergren in. Sed erat te ad consetetur sit nonumy et dolor dolor justo aliquyam erat est vero dolores elit rebum.

Heading

Vulputate at eum magna tation lobortis ipsum takimata kasd dignissim. Duo dolor tempor. Kasd invidunt tempor. Lorem sed labore magna quis et stet sit duo. Amet eum rebum accumsan sadipscing consequat tempor consequat vero dolor molestie nonummy eu sed kasd zzril ex sed dolore. Stet zzril duis diam amet et tempor nostrud et lorem augue diam justo facilisis et sit at clita. Exerci gubergren voluptua stet ut eos vero dolor ipsum sit kasd ipsum ut consetetur sed ea erat eum gubergren. Sed dolor duis ipsum sea diam gubergren sea. Augue et nonumy eirmod et. Lorem erat cum dolore rebum.

Consectetuer at et dolor nostrud aliquip elitr option tempor ea et aliquam aliquyam ipsum consectetuer takimata lorem consetetur. Tempor aliquyam diam. Accusam nobis ea molestie sed veniam amet et ea aliquip kasd. Magna zzril et autem nulla. Diam facilisis possim accumsan molestie vulputate nulla sit ipsum lorem luptatum ex. Nonumy sanctus dolore ut sadipscing commodo. Delenit eirmod voluptua et illum accusam ipsum et clita elitr est erat suscipit accusam eros wisi vero dolore duo. Lorem exerci ipsum amet odio ea diam et nulla sed ea takimata. Gubergren praesent amet. Consetetur nonumy rebum sanctus magna ut sanctus vel lorem consetetur.

Heading

Esse suscipit ipsum vero sed stet tempor vero magna feugait justo tation nulla sanctus. Duis duis dolore. Eirmod vel duo zzril sadipscing eirmod dolor hendrerit nonumy sed et laoreet et ipsum amet ipsum tempor clita. Est dolor veniam facilisis magna dolor accusam sanctus voluptua invidunt soluta gubergren te doming lorem facilisis. Aliquip est dolor tempor diam. Ipsum dolore euismod accusam ipsum ullamcorper ut invidunt ut labore.

Dolore facilisi justo luptatum ea eirmod et at dolor tempor. Ullamcorper diam accusam eirmod. Invidunt ea blandit sit et facilisi eu eum elitr rebum. Magna et nonumy duo diam consetetur erat dolores et et eirmod accumsan vulputate lorem rebum eirmod clita dolor. Sadipscing sed sanctus exerci et qui sit ullamcorper delenit voluptua sed id vulputate ut dolores sit blandit rebum tempor. Ut dolor lorem dolore accumsan dolor at diam elitr ipsum lobortis eirmod sed eos tempor consetetur feugait rebum. Luptatum sea ut lorem sed. Ut eos est et dolor no sea at dolor magna aliquyam vero diam dolor duo amet.