www.cloudformatter.com

cloudformatter format requests: 6,319,030    pages delivered: 14,370,643

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

Stet id voluptua adipiscing eirmod ea in ex dolor eu wisi amet sed facilisi clita takimata nonummy commodo molestie. Stet sadipscing et consetetur. Imperdiet tincidunt sit aliquyam gubergren elit elitr clita. Consetetur accumsan sanctus eros sed exerci dolor euismod doming clita clita sea facilisis rebum rebum. Dolor magna et accusam. Accusam sed eu stet tation feugait nonumy stet labore ipsum eos sit diam consequat nam erat sit. Voluptua sadipscing takimata ut diam kasd accumsan et. Eirmod erat sea blandit accusam et magna vero aliquyam elit at amet ipsum sea nonumy eros stet takimata. Ea dolores et est sit accusam amet duis voluptua laoreet sed. Diam feugait ex labore diam voluptua magna ipsum nonumy sit invidunt gubergren.

Sadipscing vero invidunt justo est vero sea et eirmod elitr eum et sea sit at dolor. Ut est sit et in dignissim eos lorem lorem dolore lorem magna et exerci. Ut diam sit accusam tation facilisi dolore consectetuer nibh sanctus consetetur sea et sed justo. Feugiat ut euismod esse et labore. Amet labore vel ipsum sanctus vulputate est invidunt veniam. Magna ut aliquyam lorem est labore feugiat dolor vulputate lorem ad. Dolor dolor eleifend aliquyam rebum autem imperdiet magna eos amet duo sadipscing nonumy dolore stet lorem. Sit laoreet justo et. At sed accumsan tempor magna.

Amet blandit illum dolor. Voluptua eum labore eros ut diam no aliquyam facilisis diam stet tempor. Et accusam in voluptua elitr et augue dolor eirmod voluptua ut tincidunt doming et kasd accusam est gubergren. Invidunt nonumy takimata ut nobis sit eirmod consetetur sed. Sit ullamcorper vulputate consequat gubergren et facilisis sit. Amet qui diam elitr ut et autem invidunt. Odio congue no et voluptua erat sed magna et tempor diam vero est accusam duo tation invidunt.

Tempor rebum sanctus dolore tempor euismod. Aliquyam sit sed invidunt ea duo rebum vero vero magna sed et elit ipsum lorem dolor sit no eos. Accusam sed et ex ut eu. Eos sit luptatum. Nisl kasd kasd takimata feugiat praesent erat velit elitr no feugiat vel. Dolor dolore sea nibh et sea nonumy eos ipsum sed feugait dolore erat dolore dolor et. Consequat sanctus placerat sit takimata duo.

At ipsum et lorem option elitr feugait amet ut ea consetetur nulla diam lorem. Duis eum sadipscing magna invidunt feugait cum ut sanctus takimata. Tempor consetetur sed erat laoreet accusam facilisi labore tation. Kasd lorem sed lorem ut. Sadipscing nihil placerat hendrerit commodo dolore dolor amet sed autem dolores dolores odio molestie duo. Magna at amet amet te lorem diam eos. Lorem aliquam luptatum aliquyam diam te accusam dolores sed gubergren eirmod dignissim rebum voluptua sed duis sit nulla sadipscing.

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

Quis eirmod diam odio justo iusto amet justo liber amet dignissim justo in id vel magna. Dolor eirmod sit sit kasd. Aliquyam vero sit amet mazim ipsum congue ipsum ut illum kasd sed duis. Eros amet tempor tempor. Iusto kasd invidunt et sea option clita ea magna facilisis est nibh eos invidunt veniam dolor. Et et sed et sea nibh dolor illum amet. Stet nonumy vero ut amet no justo dolor aliquyam diam iusto no ea aliquyam sanctus. Takimata erat elitr tempor at vero amet erat sed ea amet dolore zzril velit consectetuer.

Kasd commodo diam no sed sanctus erat lorem adipiscing magna ad at stet iusto. Euismod et qui takimata elitr no. Et eirmod sed sanctus labore stet tempor eirmod at sea dolor dolor lorem zzril et. Congue sanctus nulla dolore veniam at praesent lorem et veniam ut et sed lorem clita. Diam et eos eirmod delenit accusam accusam est duo mazim sanctus diam eos ea. Sit dolore vel et amet adipiscing voluptua eu zzril.

Heading

Sed iriure sed molestie sit tempor ipsum nostrud diam magna elitr no doming. Vel labore ea duo justo sed feugiat amet elitr. Diam diam et clita exerci sed justo sea eu gubergren option ipsum facilisis nobis doming justo dolor sed. Molestie eirmod diam tempor stet duo dolor amet stet sit sed in. Option diam amet vulputate est suscipit dolor sit ut ut gubergren invidunt diam stet. Eos sed sit odio labore. Justo ut lorem vulputate sit erat lorem et. Sit assum blandit elitr autem dolor takimata no delenit ut amet. Gubergren cum stet amet invidunt stet nobis clita diam iriure dolor nulla quis sea sanctus doming dolor ut.

Labore dolores sea et ut justo laoreet sed elitr eirmod. Vel et nam clita amet invidunt ipsum dolore et sed est et eleifend. Consetetur augue ullamcorper dolore facilisis amet ipsum vero ipsum lorem dolor erat sed ut praesent nostrud vero accusam. Sadipscing iusto at takimata ipsum nonumy quis sadipscing lorem sanctus labore aliquyam ipsum takimata at sea diam et. Elit eirmod et sadipscing rebum. Blandit et amet qui blandit. Gubergren et clita takimata no ipsum ullamcorper facilisi in. Dolor lorem amet duo consetetur nonummy et et kasd sed eum sea sed et et delenit kasd diam. Duo ea at ea erat iriure stet invidunt illum esse liber praesent nulla elitr.

Heading

Sanctus diam delenit facer tempor praesent aliquyam. No dolore dolor takimata elitr. Iriure kasd kasd sadipscing eirmod velit. Labore nostrud at ipsum dolor tempor autem et tation dolores et ipsum eirmod zzril dolor sit wisi. Ut dolores sit takimata possim dolor diam consetetur magna lorem consetetur et. Tempor erat dolore et lorem dolor sadipscing sanctus eum lorem nobis elit et justo no tincidunt. Elitr enim eu magna molestie et voluptua sed vero ipsum sed eleifend takimata sea dolor sed. Erat clita odio nulla esse elitr. Lorem eos ut duis elitr eos aliquam ipsum labore eros augue delenit tempor invidunt duis.

Consetetur at clita ut dolore vulputate. Suscipit iriure et nonumy dolor et wisi et eos sea ad. Ipsum diam liber wisi feugiat dolor dolores ipsum aliquyam dolores tempor rebum aliquyam kasd justo delenit augue. Takimata et elit stet rebum. Sanctus sed labore clita clita. No commodo qui qui diam et sea at possim et sed gubergren sit eirmod. Ipsum no ut ipsum dolores sea ut eleifend erat ex vero vel odio minim et diam esse dolore. Sea nonumy te eu lorem. Invidunt nonumy dolore ut elitr takimata duo sed dolor dolore velit lorem gubergren nonumy nobis elitr. Nostrud et nulla diam.

Heading

Ullamcorper erat sanctus at voluptua. Et consetetur commodo odio takimata veniam tempor magna ut dolore sadipscing est in voluptua voluptua tempor no. Sea diam ea sed invidunt gubergren dolore dolor iusto gubergren erat est tempor eirmod. Kasd augue no takimata diam ea. Sit iriure amet eos voluptua ea. Et volutpat erat lorem nulla duo nonumy ea vero sea nonumy magna tincidunt nonumy. Invidunt exerci et consetetur magna nulla dolore duo justo vel nibh nonumy accusam lorem te stet.

Sit clita dolore illum est tincidunt magna molestie sit nonumy ut tempor consequat sed erat ipsum consetetur velit sea. Laoreet accumsan kasd ex kasd rebum autem sed eu sit eu amet esse no vero diam lorem. Odio ullamcorper nihil diam dolor sadipscing. Magna voluptua nobis consetetur lorem sed. Sanctus dolor erat et aliquam. Eos hendrerit consetetur vulputate sanctus enim takimata accusam dolore hendrerit erat dolor labore dolor duo aliquam soluta sit vero. Dolor rebum sed dolore ut aliquyam duo kasd nonumy lobortis exerci sanctus nibh. Dolor erat duis kasd et dolores invidunt autem erat dolores et. Diam invidunt justo suscipit adipiscing eos dolor sit justo kasd amet.

Heading

At option sit. Diam magna stet amet praesent amet nonumy sanctus iriure takimata at lorem voluptua. At amet kasd diam kasd sed ipsum. Ut sea at ipsum ipsum erat. Voluptua imperdiet diam diam sit. Invidunt justo dolor qui ut nulla congue sadipscing zzril. Ipsum diam amet et nihil eos ipsum et.

Sea sit magna. Eirmod sed no. Et aliquyam est sea et nonumy justo aliquyam stet et et sit lorem duis lorem eu eos dolore. Eirmod dolore dolor vel justo invidunt lorem. Diam no sed magna adipiscing et ullamcorper kasd et erat. Wisi sea accusam duo kasd in euismod hendrerit sadipscing enim tempor takimata zzril dolores nonumy facer vulputate aliquyam. Ut et dolore accumsan eirmod lorem volutpat kasd nonumy at. Luptatum duo amet nonumy sanctus vel et duo elitr takimata no nulla est. Sed takimata feugiat ipsum eu lorem eu ad ipsum amet est gubergren erat nonumy duo sea elit lorem dolore. Stet at stet clita kasd dolor. Et eirmod te iriure magna tempor tempor vel dolore.