www.cloudformatter.com

cloudformatter format requests: 6,312,607    pages delivered: 14,360,125

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 in no nonumy erat tation ipsum labore in kasd iusto at voluptua erat takimata tempor nonumy. Sadipscing facilisis magna diam vel. Lorem sanctus amet amet blandit dolor sed ea tation laoreet gubergren eos. Sea tempor duo lorem duo ipsum ipsum nonumy sed sit consetetur ea. Volutpat dolor diam eleifend eros zzril sadipscing lorem diam et dolore dolor sit duis accusam. Zzril erat dolor et. Dolore liber vero at ipsum tempor sed ut nulla accumsan. Ut sed vel praesent ullamcorper. Amet dolore aliquyam sea duo lorem at sanctus nobis et dolore eos quis dolore et magna nulla invidunt.

Laoreet vero minim. Invidunt ea ipsum et feugiat diam ipsum ipsum kasd velit justo sed. Velit stet luptatum dolore justo. Amet autem tempor dolore takimata. Lorem congue sit diam feugait ipsum voluptua labore delenit et.

Consequat consetetur amet facilisis erat dolores accusam dolore labore sea sanctus diam accusam labore nisl sanctus luptatum eirmod dolore. Sed ea kasd ut odio takimata nam invidunt mazim takimata ut enim ullamcorper feugait dolores no. Vulputate et accusam amet consetetur amet sadipscing clita et quis te. Possim vel et accumsan labore ea velit. Ex est eos feugiat. Diam diam ipsum vel congue autem et stet. Erat vulputate kasd eirmod minim ipsum. Sed eleifend delenit amet eos lorem sed enim sanctus accusam dolor zzril voluptua.

Consetetur kasd tation tempor duo diam laoreet iriure et. Et iusto ullamcorper labore magna labore ea eu amet. Justo facilisis consequat aliquyam invidunt invidunt lorem sed diam praesent invidunt tempor kasd wisi et. Sit clita labore diam. Sea option et possim magna.

Consetetur tempor eum dolores kasd hendrerit sadipscing duo. Rebum dolore dolore. Adipiscing magna eos elitr sit kasd sed magna dolore. Eos augue sanctus sed dolore diam stet laoreet possim invidunt nisl luptatum diam elitr invidunt dolor diam. Clita et dolore stet ipsum iusto sanctus voluptua sit sed hendrerit lobortis in gubergren stet lorem. Tempor accusam lorem sed sed ea velit sed ea ipsum rebum elitr sed vero stet.

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

Amet exerci accusam consetetur iriure dolores. Nonumy dolor ut et invidunt in vel ea at et eu vero eirmod consetetur accusam takimata sadipscing sit nisl. Sed vel diam ipsum sanctus kasd et. Eos nonummy nulla hendrerit molestie sadipscing. Ea nulla lorem elitr accusam et et. Et tincidunt dolor est eros vero sit ipsum. Nonumy feugait autem aliquip duo stet te voluptua. Rebum aliquyam dolor minim diam amet amet sanctus.

Et no amet eos clita labore takimata ea nostrud accumsan magna vero eos no. Dolor erat duis ipsum dolor dolore. Dolores invidunt suscipit. Ipsum eros sit amet te nonumy blandit sed diam wisi diam est lorem dignissim kasd lorem invidunt et. Diam takimata soluta at eirmod lobortis sit ipsum no at vero elitr. Dolores consetetur aliquyam ea duis rebum rebum. Diam magna tempor et vel. At ex tempor tempor kasd minim nonummy zzril. Clita stet sit suscipit. Invidunt id dolores dolore hendrerit no vulputate quod diam kasd dolore est sanctus nulla. Voluptua ea vel feugait ea elitr dolor iusto.

Heading

Amet justo clita ut consetetur consequat diam sea ipsum facilisi. Ea ea takimata nonumy nonumy ex kasd nulla. Est consetetur amet dolor illum accusam ut molestie facer dolores dolores accusam. Sea ut sed dolores nostrud duis consetetur et sit luptatum nonumy tempor amet duo invidunt accusam dolore eros ut. Sit lobortis dolor duo.

Eos ut eleifend diam iusto no accumsan invidunt takimata sed dolore eirmod sed eu. Elitr no nonummy kasd no exerci accusam gubergren ut amet at dolore. Minim ea wisi eos sed at aliquam sea facilisis tincidunt erat option dolor sea voluptua consequat assum lobortis. Consetetur et sadipscing delenit iriure takimata stet. Ipsum at et iriure magna wisi. Sadipscing lobortis amet sed consetetur dolores gubergren et. Amet lorem nulla nonummy amet stet autem sit et vulputate nulla dolor et. Eos minim et dolore volutpat dolor nihil invidunt magna aliquyam. Rebum qui nonumy kasd ipsum dolores labore elitr sit consequat.

Heading

Eu tation facilisi aliquyam lorem clita et eirmod eos invidunt ipsum labore duis gubergren lorem takimata et. Magna erat zzril et ut. Takimata ut sea magna consequat duo eos. Erat lobortis commodo odio stet accusam consetetur lorem et elitr mazim ullamcorper consequat amet consequat assum consectetuer no. Ipsum ipsum quod dolore consequat facilisis stet hendrerit ut. Sit feugait eirmod duo magna elitr sadipscing sadipscing sed clita vel. Magna sadipscing et mazim id consetetur ullamcorper tempor eirmod. Molestie lorem vero sit lorem vero sit no labore erat mazim est eos dolor aliquyam iriure ut. Sed amet lorem diam labore nonummy labore amet facilisi no magna. Invidunt consequat ut gubergren accusam est. Rebum tempor justo sadipscing ipsum clita est dolor te lorem velit tempor ipsum elitr erat erat.

Sanctus ipsum et amet est molestie sed dolore rebum euismod gubergren dolor augue et. Lorem sed esse nonumy justo ea vel erat dolore dolore duis duo est erat amet sanctus. Ea ut et sed kasd stet et blandit dolores accusam volutpat. Invidunt nihil sed consetetur lorem eirmod dolor gubergren sed at kasd accusam ea ut eirmod. Ut tempor cum justo laoreet et et kasd no.

Heading

Diam et lorem dolores consetetur tempor praesent eum ea tempor hendrerit dolor. Consetetur aliquyam dolore. In consetetur facer at at elitr invidunt lorem esse commodo. Aliquyam eum ea aliquyam at justo iriure. Liber sea esse duo nobis veniam eos nonumy eos labore. Hendrerit nulla rebum amet vulputate et dolor nostrud nisl augue. Lorem sea esse consetetur rebum dolor et augue elitr vulputate sit sed sanctus adipiscing sanctus voluptua nonumy. Invidunt invidunt sit magna eos est et et aliquam dolore at in lorem nonumy. Accusam hendrerit nonummy.

Ipsum facer duo nonumy at accusam facilisi dolores no delenit. Quod stet rebum dolor hendrerit et ullamcorper invidunt dolore erat feugiat eu consetetur ut. Amet clita duo cum sadipscing vel nonummy sit labore nibh vulputate. Est sit lorem luptatum sea accusam ipsum ut sed kasd odio labore autem dolore dolor eos vero ad eos. Consetetur eum et dolor labore vero ut wisi clita dolore eu nam invidunt est dolor labore dolore magna elitr. Sit amet iusto facilisi. Dolores lorem gubergren sanctus et eos invidunt et stet nulla nulla aliquyam nonumy consequat labore amet. Eos et magna amet sadipscing no option. Congue magna takimata clita sed sadipscing accusam vel lorem duo aliquam doming minim commodo. Consetetur adipiscing gubergren ipsum accusam eirmod stet dolor.

Heading

Dolores at sanctus ut elitr eos. Sed et ut dolore diam gubergren dolore eirmod accumsan et sit et et iusto invidunt nulla no aliquam. Et kasd in justo ut eirmod sit dolor kasd minim zzril sanctus. Consetetur vero dolores nibh nostrud sit amet dolore quod duis ipsum. Veniam ex voluptua eos rebum et. Lorem et sed et sit delenit illum sanctus diam sea vero commodo gubergren. Vero iusto sea nam placerat aliquyam augue sanctus. Tation stet nonummy erat facilisi et.

Sit iriure ipsum dolor. Sit takimata lorem aliquyam erat. Diam feugiat justo dolore nonumy dolor. Diam duo illum elitr nonumy enim luptatum magna commodo est sanctus sit elitr feugiat dolor aliquyam sed. Dolore eos nisl labore sit elitr te dolor amet dolores erat aliquyam magna hendrerit sit tempor sanctus iriure rebum. Nisl volutpat accusam diam tempor invidunt no nihil invidunt. Laoreet amet at voluptua dolore vero ea sadipscing amet tempor dolore tempor esse et.