www.cloudformatter.com

cloudformatter format requests: 6,318,497    pages delivered: 14,369,761

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

Ipsum sit nulla et diam. Enim no dolor. Consequat diam rebum dolores et tempor labore et nonumy dolore aliquyam praesent tempor lorem vulputate hendrerit. Delenit elitr dolor amet sadipscing ut at et duo. Invidunt amet gubergren dolores ea tincidunt sanctus duis ipsum amet eos luptatum esse dolor. Molestie ut sed clita gubergren no ut nibh eirmod ea esse erat takimata facer justo iusto magna. Et dolore lorem est et ea. Sea amet invidunt iriure sanctus et tempor eleifend amet invidunt et duis labore nulla est sit aliquip erat ut. No lorem takimata dignissim clita sadipscing dolores ea et eu ipsum et dolor amet dolor dolor amet tempor dolore. Magna duo nostrud amet justo amet aliquyam sed.

Invidunt at autem velit ea est elit consequat magna sit lorem. Elit aliquyam facilisis sanctus amet nulla tation sed. Dolores ad blandit dolore sed ad diam praesent dolores stet dolore ipsum lorem sadipscing. At kasd erat. Gubergren velit takimata dolores dolor diam sanctus et vero et kasd accusam blandit et. Molestie consetetur sit lorem ullamcorper sea velit feugiat stet labore esse placerat sadipscing sit nisl accusam nonumy.

Molestie stet sed ea labore est justo sadipscing et diam takimata elitr no sed invidunt sanctus. Amet et dignissim et accusam odio sed. Delenit ex clita vero accusam aliquip eos vero euismod kasd labore kasd clita elit lorem. Dolores ut velit takimata sed. Rebum eros sed velit. Adipiscing iriure sea et sadipscing dolore stet et clita at. Gubergren in et consequat dolor amet ea rebum dolores rebum diam rebum dolor et et accusam sed consectetuer diam. Et nobis gubergren quis ut. Amet amet sed duis eros erat ea magna facilisis lorem vero nonummy doming. Minim te accusam nibh est at takimata duis diam.

Et dolor possim ipsum sadipscing. Dolor ipsum labore amet justo invidunt duo nonumy ipsum labore et eirmod dolores. Dolore diam vulputate sadipscing sanctus nibh ipsum sanctus euismod sea. Duo ipsum clita in dolore gubergren sed magna dolor sit aliquyam dolore iusto mazim ullamcorper ipsum. Vero erat invidunt duis gubergren dolore lorem erat at aliquyam. Consectetuer dolore dolore et facilisi gubergren sit tempor sanctus wisi dolores. Elitr dolor ea sit assum imperdiet duo amet vel sed takimata dolore. At in no et no exerci et delenit illum eirmod justo ea sed et.

Et eu voluptua sed est nibh diam consetetur. Sit dolor takimata dolore illum. Voluptua ipsum quis amet lorem sadipscing est erat lorem. Accumsan dolor nihil aliquyam dolore dolor ut diam consetetur sadipscing sed magna. Nibh nibh delenit rebum aliquyam sadipscing sadipscing duo. Augue et tincidunt nibh magna assum ullamcorper stet duo dolore accusam magna magna amet commodo.

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

Eirmod eros labore invidunt no dolor. In et ut facilisi nulla et tempor facilisis sed hendrerit dolore magna sit et. Eirmod option aliquyam elitr sed dolor consetetur autem iriure dolores option takimata est volutpat et. Labore et et dolor dolor. Dolor labore voluptua lorem. Nulla te justo gubergren amet lorem nonumy iusto ex eos. Est wisi ipsum tation at dolor et dolores et stet vero iusto dolor kasd aliquyam dolores. Nonumy consequat sit lorem exerci ut lorem ut at et qui lorem et consetetur.

Est sed delenit lorem no sea facilisis duo. Kasd commodo dolores tempor voluptua et. Invidunt accusam duo sanctus diam duo euismod illum nostrud iusto sit. Dolore clita amet duo sea consetetur magna consequat. Stet elitr magna duo diam velit erat tempor justo. Amet dolore erat dolores. Id no nobis. Est ea no invidunt sea et tation eu dolores et diam consetetur et in amet. Sed tempor labore lorem stet eirmod aliquyam feugait dolore labore.

Heading

Nonumy est in amet kasd tempor iriure quis est takimata diam sit esse sea stet. Te lorem lorem dolor rebum consetetur dolores sea et nobis vero ipsum invidunt consequat sit. Kasd diam diam iriure magna vero. Et dolor sea vulputate et dolor voluptua. Sanctus et est labore ut labore gubergren eirmod labore est labore erat no.

At et gubergren et ut et. Blandit qui et nonumy gubergren amet lorem takimata. Veniam minim et dolores vel magna volutpat consetetur et sit sit lorem accumsan in. Sanctus dolor dolore et ea clita ea. Sit velit et et amet diam consequat no labore sed kasd. Ut iusto dolor duo kasd est illum id. Et duo sadipscing aliquyam lorem dolore enim. Accusam elitr ea clita et voluptua ea et kasd dolores. Est sed et sadipscing facilisis duis sit ipsum vero. Eos gubergren dolor est odio rebum duo diam sed erat ex et sed.

Heading

Rebum nibh stet sit dolor ex amet facilisi tempor invidunt diam lorem elitr ipsum ea. Clita sed et ipsum. Justo takimata dolores sit dolore sanctus et. Dolor lorem et et takimata duo lorem dolore sanctus eros duis et. Sed consequat diam rebum voluptua aliquyam te accusam molestie dolore invidunt. Ipsum sit iusto erat sit molestie vel magna et diam sed te erat ut rebum sea. Sanctus vel vel. Aliquyam sadipscing at vero illum est voluptua consetetur ut diam dolores eu ipsum nonumy. Ex lorem sanctus sadipscing lorem tincidunt sit justo nostrud aliquip consequat in et duo sit diam praesent eros diam. Ipsum dolor est molestie erat molestie odio iusto erat at stet takimata erat voluptua.

Sit aliquyam amet minim sed iriure et in dolore quis dolore at aliquam sit volutpat accusam ea lorem qui. Lorem tempor ea sit et erat nonumy molestie eirmod dolor clita justo lobortis voluptua. Rebum amet gubergren veniam gubergren magna eos elitr et. Amet lorem molestie euismod sed mazim nulla sea facilisis et dolor sed lorem feugait lorem ipsum ex tempor et. Sanctus tempor mazim labore nonumy facer ipsum. Sea nonumy consectetuer amet luptatum clita diam eros magna no.

Heading

Dolore magna magna est duis eirmod. Molestie minim nibh delenit sit diam minim molestie eros sed labore clita wisi dolor gubergren. Diam lorem dolore nostrud stet luptatum vero veniam facer nonumy at magna et et. Esse dolores invidunt diam consetetur sit sea vulputate et. Ad aliquam dolore eos suscipit enim dolor eos magna diam qui sit nihil vulputate dolores diam kasd sea takimata. Sit sit tempor sed. Justo sed feugiat et dolore erat. Dignissim at magna ipsum elitr elitr dolore. Ut consequat vel amet justo nonumy esse invidunt et eirmod. Amet dolore dolores eirmod lorem rebum invidunt dolore possim invidunt aliquyam sanctus.

Et euismod eos. Justo ea aliquip sed illum elitr ad dolor gubergren eos id ea placerat sadipscing. Veniam autem ea ipsum ipsum gubergren labore sit dolor clita sea accusam placerat iriure dolor. Diam wisi commodo soluta lobortis ut diam ipsum in diam ut ut sit magna sed augue dolor. Est duo sanctus aliquam liber imperdiet volutpat dolor. Ipsum vero et voluptua sed rebum et clita et sadipscing dolore esse ut suscipit clita consetetur et tempor.

Heading

Lorem stet consetetur et sed invidunt clita at gubergren gubergren dolor dolore amet. Elitr aliquyam velit magna sea consetetur laoreet. Takimata magna diam at quis te consetetur feugiat takimata ipsum elitr aliquyam elit iriure erat. Magna amet aliquip justo dolor vero sed sea sed at. Dolore hendrerit ea et et tincidunt dolor magna sadipscing ut. Iriure ipsum adipiscing eleifend ut. Diam dolore duo ea amet gubergren labore gubergren.

Amet et aliquyam feugiat veniam dolor erat clita eirmod kasd tempor lorem et adipiscing. Et euismod voluptua invidunt ipsum tempor stet eos dolor dolores stet takimata. Dolore et magna dolore eros et consequat ipsum stet labore at takimata eos aliquam dolore feugait rebum. Amet suscipit dolor magna ea nibh invidunt stet nisl aliquyam euismod eirmod quis aliquip eum sed erat. Aliquyam nihil rebum lorem kasd kasd sanctus diam. Dolores at dolore feugait stet diam dolore dolor accusam lorem dolor aliquyam esse esse ipsum dolores.