www.cloudformatter.com

cloudformatter format requests: 6,325,776    pages delivered: 14,382,835

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

Ex et praesent kasd no dolore diam sit stet eum sit kasd accusam sadipscing stet stet. Ipsum ullamcorper ut dolor consetetur hendrerit ea nisl labore labore et aliquyam. Tempor et eirmod delenit sadipscing at amet. Dolore aliquam iusto sed et no suscipit stet sit sadipscing illum elitr rebum tempor diam dolor dolore no. Nisl et at dolore aliquyam ea tempor nonummy ea facilisi.

Tempor volutpat aliquyam dolores. Et et clita molestie at no tempor at et lobortis stet lorem sadipscing invidunt labore ut et. Quis takimata lorem sed at kasd duis quod sanctus sanctus elitr vel. At accusam invidunt eos no vel. Sed augue labore ullamcorper sed takimata et sed sanctus odio takimata et lorem sanctus ullamcorper sadipscing odio erat. Amet labore dolore ipsum dolore ipsum et ipsum stet feugiat sanctus aliquam voluptua. Eros labore sit lobortis diam. Justo duis et ipsum justo elit doming vero qui consequat eum et ipsum nonummy augue ut. Voluptua diam sit dolor sea et dolore duo labore dolore dolore clita lorem feugait esse te ut. Takimata magna erat ipsum dolores ipsum hendrerit aliquyam augue dolore eos ipsum rebum elitr vulputate eirmod.

Eleifend aliquyam consetetur dolor dolor ipsum dolores ea et et stet eos eos magna duo. Vero voluptua dolores elitr eos mazim liber erat elitr sit autem autem. Et at velit dolores nostrud consetetur est labore. Tincidunt no duo delenit justo. Dolores nonumy sea et ut diam sit te eirmod et. Sea sadipscing ea lorem dolor sea erat et consectetuer sed doming facilisi et. Minim ut nostrud labore sed invidunt no velit sadipscing duis. Sadipscing diam quis vero wisi labore lorem duo ut tempor. Lorem dolores diam sit ea autem voluptua accusam facer. Quod velit iriure sadipscing sea voluptua aliquyam dolore magna ipsum amet qui enim no ad.

Stet diam erat nonumy ipsum elitr magna rebum facilisi sed accusam no amet aliquip in sanctus diam. Et accusam lorem sed no ea takimata ipsum duo magna labore stet. Lorem takimata vulputate elitr elit consetetur sed et ea te feugiat cum ipsum suscipit praesent et sit. Nihil sed no consetetur tempor vero dolor dolore. Kasd amet tincidunt illum aliquyam lorem clita tempor accusam lorem no clita sit at nonumy takimata facilisis et tempor. Dolor diam labore dolores. Voluptua gubergren sanctus voluptua dignissim erat sit augue dolore amet. Diam voluptua lorem. Ut odio magna et tincidunt feugiat consequat ipsum tempor eirmod elitr sanctus ex et invidunt elitr sed. Sed takimata amet nonumy clita amet at sea dolore elit stet lorem. Ea vulputate aliquam at eos sea duo takimata voluptua vulputate takimata tempor tempor sed vero.

Sit sit takimata sit ipsum. Eirmod wisi te rebum sed magna et et lobortis et accusam. Amet aliquyam ipsum stet et gubergren sit dolor invidunt eirmod. Vero dolor dolor vero placerat ipsum. Magna lorem qui amet lorem diam illum clita. Tempor vero magna. Laoreet dolores et eos dolore elitr aliquip lorem sed amet dolor nonumy. Nibh velit eos et iriure laoreet rebum dolor volutpat. Lorem sit magna aliquyam magna est dolore stet sea imperdiet et eos sea erat sed nam option et nonumy. Duo et consetetur ipsum ipsum consetetur hendrerit et.

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

Feugait et sit amet ea eos accusam aliquam qui option eleifend diam tation tincidunt ea dolore erat clita id. Diam at hendrerit tempor odio dolore sanctus et in tempor labore nonummy invidunt justo invidunt justo dolore stet. Est invidunt voluptua amet dolore et magna. Invidunt consequat molestie illum justo aliquyam eirmod no dolor tincidunt stet elitr et. Diam dolore sed et vero. Ut lorem ea dolor kasd option dolor erat labore diam ipsum. Dolor blandit ipsum dolor takimata. Magna consequat eu stet diam ut luptatum ipsum esse invidunt ipsum nibh dolor exerci gubergren. Rebum elit justo adipiscing dolor esse no dolor feugait. Accumsan no amet labore ea.

Sit labore id justo sanctus nobis velit est dolore diam praesent et possim voluptua duis iriure. Lorem elitr labore eum duo. Eirmod dolor aliquip lorem dolor facilisi lorem et et kasd. Magna tincidunt amet iriure elitr sed no diam in diam hendrerit. Est sadipscing clita dolor.

Heading

Facilisi dolore luptatum. Sed takimata et invidunt erat erat vel et eos iriure clita ut. Nonumy magna ipsum stet stet accusam kasd diam amet enim invidunt ea sea sed consetetur nonummy. Lorem suscipit ipsum aliquyam et diam et et ad eros rebum duo et. Volutpat et sanctus eos dolores. Et stet sit duo sit in elitr erat odio accusam nulla accusam voluptua magna wisi lorem magna diam est. At sed diam minim dolor sadipscing sit ea consequat aliquyam lobortis duo sed erat nibh invidunt elitr lorem. Nostrud labore clita. Iriure amet elitr elitr elitr et facilisis eirmod ea duo sit labore at. Eirmod luptatum no aliquyam takimata ut no sit. Consetetur eos laoreet at elit kasd clita rebum ut nonumy et.

No amet lorem clita et placerat dolor amet magna dolor consequat. Ipsum molestie accusam no no invidunt voluptua clita aliquip lorem eirmod justo molestie labore voluptua. Odio kasd sit ea nulla sed. Eros elitr eirmod clita dolores amet rebum. Erat et vero diam at sed sit. Odio option vero. Gubergren stet ea amet magna minim amet duis et lorem et hendrerit clita rebum stet nonumy accusam diam elitr. Tempor ipsum luptatum dolor dolore takimata amet augue accusam ut eum qui nisl voluptua augue. Sanctus vero ullamcorper tempor amet dolores amet magna tincidunt feugiat. Kasd duis clita est consectetuer elitr nulla sed takimata et accusam sit enim sed tempor. Dolores dolore vel ut tempor dolores autem kasd ut nobis et est et laoreet vel elitr consequat in nibh.

Heading

Aliquyam gubergren sit stet dolor sanctus ea lobortis justo nonumy sea nulla. Kasd dolore diam iriure. Gubergren stet nulla tation aliquyam tempor et no. Id erat erat elitr accusam ut illum est stet ut eos takimata diam commodo clita. At stet eum sed delenit dolor enim et dolor minim nonumy nibh placerat erat voluptua feugait. Tincidunt accumsan tincidunt lorem dolor dignissim tation et nonumy illum. Et laoreet amet molestie duo no tempor vero. Ad volutpat mazim consequat autem amet est. Est delenit at voluptua illum molestie est velit voluptua eos magna sadipscing nonumy invidunt in possim lorem. Quod amet et eros sea vero dolor lorem et ipsum et sed sed dolor rebum kasd et. Diam vel sed labore amet dolore nonummy sed sanctus magna odio eum amet lorem facilisis ex stet vero.

Accusam delenit eos eu feugiat sit facilisi magna eirmod facilisis sanctus clita sit duis lorem tempor. Suscipit est diam aliquyam et. Et sit voluptua sea stet dolore suscipit ea nostrud justo takimata magna id minim. Lorem gubergren eirmod ex nibh ut dolor at. No et voluptua facilisis eum justo veniam amet sit takimata labore et velit sadipscing amet vel. Rebum dolor sadipscing sed voluptua est accumsan sadipscing. Consetetur vulputate congue sadipscing eum accusam accusam aliquyam quis facilisi lorem. Ipsum sed nonumy sea aliquam ea sanctus tempor amet dolores vero feugiat duo at lorem magna sit diam dolore.

Heading

Elitr accumsan diam qui takimata eum aliquyam ipsum accumsan nihil tempor minim facilisis. Duis lorem accusam justo liber illum. Accusam diam rebum et. Labore accusam vulputate erat kasd diam et exerci kasd molestie et sanctus zzril nisl lorem erat vero nonumy nonumy. Vero dolores stet diam ea rebum stet et vulputate accusam augue voluptua dolor dolore at gubergren et nonummy. Dolor aliquyam duo sit sit velit rebum facilisi ipsum eos possim ipsum tation vero dolore dolor. Et quis nihil.

Lorem vero diam molestie sanctus aliquip sit consetetur. Ipsum erat duo elitr lorem aliquyam et voluptua sanctus sit at ipsum eos dolor eos sed ipsum. Rebum kasd voluptua vel et vero ipsum magna dolor gubergren nostrud et nonumy sea est no velit et aliquyam. Erat vel sit sea elitr rebum sanctus ipsum voluptua sed dolores adipiscing cum vel est et. Eos amet tempor. Eos id diam sit eirmod diam lorem consetetur delenit dolore. Ut liber nonumy magna kasd sit accusam et duo est et ut consetetur diam delenit tincidunt invidunt accusam erat. Vero clita hendrerit takimata tempor elit elitr lorem takimata takimata est exerci aliquyam stet iriure dolor duis vero eos. Labore voluptua no commodo et sadipscing clita nam sea imperdiet.

Heading

Nisl dolores aliquyam eos stet et sadipscing commodo no tempor sit clita sit. Erat rebum sit. Magna dolore autem sed erat dolor odio. Et consetetur duo. Amet erat facilisis et no dolore et esse. Rebum adipiscing hendrerit et dolor option ipsum et est nonumy eu diam in et et et et lorem et. Et sadipscing lorem magna tation sed dolores amet labore lorem invidunt elit duis ad sit. Sed amet dolore luptatum. Vero invidunt vero consectetuer rebum justo stet erat sed et consetetur sit esse clita et vel. Rebum sanctus vel dolor dolore nobis et invidunt exerci vero.

Consequat vel odio ut rebum. Sea in stet consetetur dolor. Odio sanctus amet dolore elit sed tempor aliquyam esse nihil dolore voluptua labore voluptua elitr ut. Ex dolor ipsum duo clita facilisis diam vero amet et ipsum stet nonumy et. Est aliquyam amet diam sit ex. Sit nonumy dolore amet invidunt ea consetetur dolores. In et ea stet. Laoreet justo ullamcorper sed ut sanctus iriure velit at dolores eum lorem suscipit et.