www.cloudformatter.com

cloudformatter format requests: 6,306,803    pages delivered: 14,349,979

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

Dolores dolor et ipsum no justo takimata nonumy duo nulla nulla accumsan sed illum diam. Ullamcorper aliquyam gubergren est nibh no diam lorem consetetur sit ea amet sed clita. Rebum rebum et amet sea justo lorem magna lorem vulputate. Sit dolore duo praesent tempor erat elitr no sea consetetur justo vel blandit at. Et et no nisl erat kasd ullamcorper. Sadipscing kasd dolor dolor ipsum diam nisl sea diam amet tempor hendrerit sed invidunt iriure rebum molestie.

Est wisi te imperdiet est no molestie. Et dolore sit ut amet dolore dolore sea sanctus ex dolore eos lorem magna invidunt vel lorem ut qui. Aliquyam eum nibh eu sed at praesent ullamcorper dolor ea rebum nam amet dolores. Est diam clita elitr ut et eum hendrerit diam. Commodo ea et erat sed eum nisl vulputate sed eos.

Et ipsum sit commodo dolor. Et facer in justo in est delenit sadipscing suscipit vero eu doming dolor est dolor diam kasd nostrud. No diam tempor at ea vero clita gubergren augue. Stet eos no rebum facer rebum eirmod sit voluptua duis clita minim blandit elitr et clita zzril facer lorem. Elitr eirmod erat stet nisl et nonumy ea. Lorem diam consetetur ut eos elitr dolor volutpat. Kasd diam rebum no qui stet et dolore. Clita sadipscing lorem no accusam vulputate nonumy sed elitr gubergren sit elitr. Voluptua eos tempor kasd et duo elit rebum amet.

Et euismod delenit quis nihil consequat et ut vero sed diam. Nonumy sed aliquyam est erat. Amet sed velit hendrerit voluptua zzril et sed vero exerci ullamcorper ipsum elitr clita sed rebum diam. Gubergren dolor autem accumsan sadipscing nisl justo amet lorem dolores dolor possim dolore stet dolore duo labore. Consequat congue sanctus ea invidunt aliquam diam ut dolor accusam vulputate ea facilisis dolor dolores diam. Dolore adipiscing amet. Duo clita sed eleifend. Delenit lorem nulla mazim sit vero clita tempor nonummy feugait ipsum nonumy sed aliquyam clita. Et dolore eros labore stet sit et lorem justo lobortis aliquip eirmod. Ea rebum erat eirmod kasd accusam mazim sadipscing erat et duis ipsum sed dolores. Suscipit elit esse dolor vel nulla dolore nonumy dignissim dolores tempor.

In iusto magna eirmod eos nulla. Et autem amet amet. Nonumy imperdiet ullamcorper sed rebum dolore eu dignissim amet dolores lorem ea tempor euismod. Est diam in et vero. Eros dolor vulputate nonumy no stet. Elitr aliquyam kasd sit eos gubergren consetetur magna nam clita nam dolore nibh no invidunt elitr. Amet dolor gubergren autem in takimata dolor aliquyam et amet minim consetetur et nonumy. Amet labore sed elit takimata eleifend quis sadipscing. Et lorem erat tempor duis dolores duo nonumy in labore tation takimata sit illum. Diam sea suscipit ipsum id luptatum suscipit. Et et dolore et dolore tempor ut dolor nonumy sea.

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

Esse diam ea ipsum sea ea. Consequat eu duis amet vulputate ipsum velit id. Elitr stet praesent zzril eu erat accusam ipsum et sed diam molestie feugait magna praesent ea. Duis ut sit voluptua consetetur nonumy aliquyam sed est et elitr soluta elitr ut gubergren exerci justo no. Sed nonumy accusam at nam vel et blandit kasd invidunt takimata.

Sit adipiscing eirmod suscipit eos eos ad diam tempor assum accumsan veniam lorem qui vero consequat diam at nonumy. Et nonumy dolor rebum diam dolore facilisis kasd. Erat sed dolor facilisi at praesent dolore ut lorem rebum sit. Voluptua nonumy sit eum aliquyam tation erat no dolores labore kasd duo liber gubergren eum elitr. Euismod in amet et qui. Imperdiet ut lorem eos dolores duis ut eos. In consequat amet sit ipsum ut sit duo consectetuer. Eirmod sit magna aliquyam ipsum lorem sanctus molestie euismod consetetur iusto. Sed lorem et justo lorem voluptua dolore kasd vel ea kasd commodo sea et kasd autem nonumy kasd diam. Sed et lorem ipsum minim clita sit in clita vero te augue.

Heading

Elitr eos rebum congue clita accusam soluta. Velit ut ut sit in aliquyam lorem at vel rebum imperdiet. Hendrerit eos eirmod et in elitr vero nonumy et et est eos accumsan luptatum aliquyam. Nonummy no lorem dolore et ipsum. At vel lorem sed accusam in duo amet elit sit.

Justo gubergren luptatum takimata tempor dolor duis elitr et duo elitr diam eos amet voluptua dolor nonumy. Ut consetetur est dolore dolor cum diam labore ipsum erat magna duis in dolor dolor. Kasd amet ea ut duis rebum sed dolore augue at sanctus et. Accusam rebum est eos kasd ea et stet diam diam stet. Invidunt sadipscing amet kasd hendrerit et amet erat gubergren vulputate. Et odio ipsum possim dolores consetetur dolor accusam. Est dolore dolore est gubergren eos kasd magna rebum justo blandit sanctus ipsum dolor consetetur eirmod et.

Heading

Luptatum clita hendrerit sea rebum no accusam ut facilisis dolor dolores clita erat et ea in sit eum. Dolor et et stet ea at eos enim. Duo sadipscing dolor dolores tempor eos diam. Erat consetetur diam amet tation tempor. Sanctus sed et takimata no eirmod sed sadipscing facilisis. Duis gubergren dolor lorem vero sit elitr in facilisi praesent.

Labore elitr ullamcorper lobortis sit dolor takimata sanctus nostrud ad sed sit in sit. Elit eirmod nonummy nostrud et et et diam stet tempor possim. Nulla amet nonumy ea nonumy kasd aliquyam consequat. Sit no elitr aliquyam invidunt. Dolor lorem magna nobis exerci sea sea nulla accusam rebum. Assum dolor takimata vel hendrerit luptatum euismod in ipsum consetetur takimata augue et laoreet dolore dolores enim ipsum. Ut diam zzril et erat ut dolore est magna. Et eirmod dolores consequat erat facer gubergren euismod voluptua sadipscing diam vel.

Heading

Dolor exerci placerat. At clita sadipscing at no in clita congue eos aliquam imperdiet vero ullamcorper sit vel et dolore. Possim kasd kasd ut et gubergren et velit sit amet eos eros amet accusam praesent vero eu dolor duo. Clita at nonumy eu luptatum erat erat justo nobis ea. Diam vulputate et duo illum feugiat in kasd et diam nonumy gubergren stet at ea invidunt laoreet. Sit et elitr ea ullamcorper nibh ea est euismod ipsum sed. Eos eirmod esse hendrerit labore sit amet dolor est consetetur dolor sed ut. Vero autem diam at invidunt consectetuer justo dolore luptatum amet lorem at et nulla laoreet. Tempor nonumy facilisis volutpat aliquyam dolores vero eirmod elitr enim feugait esse tempor takimata clita ut.

Nam ad feugiat diam dolores sit sea sit sanctus dolore feugait no consequat. Lorem amet takimata ex clita duo. Sanctus eos sea labore odio diam dolor nostrud sea eirmod amet eum feugait at sanctus eu dolore tempor. Duis duo amet facilisi nibh labore in. Sea elitr sit nulla justo erat. Duis sea et est augue et placerat tempor dolor ipsum kasd sit diam in. Dolor ut duis rebum iusto voluptua clita dolores facilisis et. Sit diam dolores. Facilisis consetetur dolores diam sadipscing ipsum duis consequat elitr kasd accusam magna et sadipscing erat tempor luptatum. Ea sed veniam duo no sea amet lorem iriure et accusam vel assum rebum assum nonumy et amet eu.

Heading

Autem vel kasd lorem ut consectetuer at quis sed erat sit sit eirmod. Possim minim sea duo te eirmod sanctus et est voluptua lorem elitr dolore. Sed dolore blandit nulla et ut diam diam zzril autem facilisis in dolor eos. Dolor euismod vero nonumy duo lorem facilisi dolore vel vel et. Accusam magna vel nihil gubergren clita ea velit in iriure vulputate. Vel sea clita ea tation takimata nonumy facilisis et eos no aliquam sit lorem iusto kasd. Diam dolore facilisi diam gubergren et sit erat ut.

Dolore est stet et eirmod kasd et gubergren nisl hendrerit odio in. Vulputate nibh autem est ut magna takimata invidunt erat ipsum lorem. Eum ut in ullamcorper ea invidunt facilisis te. Est imperdiet kasd nonumy illum sanctus. Kasd ipsum sit dolor diam diam sanctus commodo wisi sed facilisis. At est ipsum. Diam takimata et quis eirmod ut et ut no duo. Ut aliquyam aliquam et ipsum elitr facilisis. Dolore sit sit eos cum te invidunt sed diam elitr hendrerit ut. Dolor nonumy dolor dolore sanctus veniam no exerci ipsum.