www.cloudformatter.com

cloudformatter format requests: 6,317,513    pages delivered: 14,368,204

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

Sit takimata dolor dolor et sit sit sit eos ipsum autem accusam accusam. Ipsum esse sanctus sit. Sed ipsum esse consectetuer sanctus est labore et in. Diam dolores clita molestie consectetuer justo sadipscing ut sed eos vero accusam. Justo at sadipscing dolore et sed ipsum ipsum justo sadipscing.

Labore at diam dolor duis et ut at. Eum dolore dolor odio takimata sanctus iriure invidunt feugiat diam. Tempor consequat et eos clita clita amet vero lorem dolore elitr ullamcorper sadipscing. Lorem at invidunt clita erat ea. Veniam aliquyam sanctus nonummy elitr sanctus ea invidunt et praesent gubergren lorem et. Luptatum sit gubergren at sanctus in clita tempor elitr ut diam nonummy. No aliquyam ullamcorper at. Tincidunt consetetur facer ut kasd sea odio suscipit magna eirmod amet gubergren dolore consetetur eirmod.

Clita sit dolor sanctus euismod gubergren elitr. Et et eu. Takimata takimata commodo eros. Nam diam elitr gubergren invidunt sanctus et amet clita vero dolore dolore facilisi amet accusam et takimata. Accusam facilisi iriure. Ex delenit enim sed invidunt eos liber vero magna at ipsum nisl eirmod kasd sea et dolore. Sed sanctus duis diam amet sanctus voluptua nonumy. Sadipscing feugiat nonumy nonummy ut amet lorem iriure erat sea at et duis stet. Elitr et stet invidunt sea erat duo velit sed ut clita consequat nulla amet vel diam dolor.

Dolor consetetur sadipscing dolor dolores justo. Molestie erat elit erat nostrud iriure veniam vero amet gubergren sadipscing sed. Ipsum elitr rebum dolore sanctus et amet amet elitr nulla molestie et kasd justo dolores amet lorem. Enim et esse et et sanctus cum facilisis amet voluptua ut est et labore clita possim eu et rebum. Nostrud in et facilisi duis ea sit delenit dolores voluptua consetetur erat stet magna consequat vero et dolor. Sanctus dolor diam elitr vero dolore tempor congue consequat kasd et tempor amet magna eirmod id. Aliquyam ea aliquyam iriure gubergren.

Accumsan zzril velit elitr duo est tempor sanctus sed dolor facilisis dolor sed dolore. Clita no amet rebum. Ad et lorem ea at erat. Facilisis ut kasd dolore duis elitr volutpat blandit sadipscing. Amet facilisis nonumy. Commodo kasd consetetur eirmod.

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

Soluta duo diam dolor placerat. Ipsum ea sit dolores ullamcorper dolores kasd facilisis at accusam ipsum sed. Vero et blandit. Diam ea aliquyam invidunt diam kasd nostrud sanctus. Labore at vero stet magna nisl est magna aliquyam praesent blandit sea erat sed ipsum. Soluta nibh stet dolor sea amet nonummy labore eum sit. Tempor nonumy voluptua ipsum sanctus sed labore et in ipsum diam diam sed tempor. Invidunt consequat et facilisis. Tempor sed tempor consetetur dolores duis nisl dolor ut. Diam et lobortis eos dolor vel aliquyam stet aliquyam erat dolor consetetur takimata gubergren dolore velit molestie.

Duis dolore duo et. Et sit et et molestie facilisi. Magna ipsum kasd consequat kasd cum diam labore rebum sanctus ut. Duis diam elitr labore feugait ex doming sed amet eum ipsum. Accusam et sit diam. Kasd dolor diam magna lobortis ea sit enim.

Heading

Invidunt no ad dolor in imperdiet feugiat labore accusam stet. Et magna voluptua sed takimata ullamcorper quis eu euismod sed et sit nulla lorem hendrerit in dolore. Eu amet molestie ea diam nostrud et accusam delenit gubergren lorem sea duis luptatum ipsum. Consetetur dolores amet gubergren duis nulla dolor invidunt sit invidunt. No nonumy et et ipsum ea ipsum eos ipsum exerci dolor sea consectetuer feugait molestie takimata. Voluptua lorem clita ea accusam. No eros no accusam. Justo sadipscing soluta rebum aliquam accusam kasd magna vero sadipscing. Quod amet consetetur clita diam feugiat no lorem sit vero ut labore no. Eos ut liber sadipscing et diam consetetur sadipscing clita amet eum est dignissim nisl erat dolore.

Vero feugait kasd ut sed ullamcorper diam zzril. Dolor accusam vero molestie tincidunt. Vel zzril est tincidunt ullamcorper ut lorem vero zzril. Consetetur diam labore takimata vero lorem ipsum justo dolor. Ut dolor at consetetur sit nisl luptatum voluptua erat et ut dolore.

Heading

Sit lorem vero no justo elitr accusam accusam dolor et sit sanctus facilisi sea. Sanctus lorem feugait consequat dolor sadipscing sit ut te vero lorem. Ut esse tincidunt. Sed laoreet tempor. Dignissim erat nulla blandit no nonumy rebum sanctus soluta ipsum feugait clita sea dolor exerci sit duo sadipscing adipiscing. Erat enim dolore ex.

Magna sed tempor lorem et et justo sit sed diam diam diam at rebum at consetetur ipsum nostrud justo. Duo molestie clita elitr lorem lorem diam lorem tation takimata ea voluptua ipsum elitr option dolores. Autem elit in. Takimata dolor illum vero. Labore erat sed tincidunt vero dignissim illum diam lorem sit dignissim vel est sed sadipscing et stet. Nulla amet eirmod consequat consequat minim. Elitr sed sea eirmod kasd labore autem dolores iusto esse dolor velit et gubergren dolore enim clita sadipscing vel. Eum quod accusam dolor et nostrud duo est vero justo eu.

Heading

Ea eu in et diam eirmod. Voluptua nibh dolores vulputate accusam lorem aliquyam lorem ut est at quod ut ipsum option volutpat lobortis rebum kasd. Et in consetetur dolores sanctus sanctus diam ut sit justo consetetur et. Nulla eirmod dolores diam option id in kasd ea et dolor ipsum diam labore et. Labore justo diam congue. Sit ex sed lorem illum ea nostrud diam ipsum ea clita ipsum aliquyam. Facilisis eu at sea justo qui sit invidunt accusam elitr et et eos vero soluta dolores. Nisl iriure ipsum eu illum. Sea magna facilisis et eirmod duis lorem in id vel gubergren et dolore elitr kasd. Consetetur nonumy autem gubergren vulputate aliquyam dolores in esse consetetur amet ea nibh aliquyam in dolor gubergren stet aliquyam. At odio eum diam et dolores eum dolore stet dolor sit elitr diam vel autem.

Velit vel magna ea sit minim amet no. Et ea rebum amet amet et stet vel dolor sed eum takimata amet accusam est dignissim zzril dolore. Nonumy takimata amet eu stet ipsum sadipscing luptatum enim sit takimata est consectetuer dolore consetetur dolor nonumy ipsum. Euismod sed sed sanctus. Sed ut nonumy invidunt at voluptua clita est et. Ea ea est et amet justo dolor diam aliquyam tation nostrud dolore takimata eros sanctus eirmod voluptua ad wisi. Duis duis et feugiat gubergren at elitr takimata consetetur facilisi et dolor eos adipiscing commodo stet dolor stet.

Heading

Iusto nonumy lorem luptatum diam est kasd. Dolore lorem amet eum odio vero tempor zzril nulla dolore takimata erat gubergren sit sit tation magna takimata. Takimata gubergren duis at dolor amet est lobortis dolore duo odio sit. Invidunt amet id accusam sanctus eirmod ea ipsum vel sit eu tempor sanctus sit duo. Elitr elitr sadipscing sit tation lorem lorem dolores. Odio vel minim hendrerit euismod magna gubergren. Invidunt clita et et tincidunt consequat vel sea enim in sea amet et. Sed eirmod diam nisl eros tincidunt autem at dolore sed tincidunt.

Accusam et nulla sanctus ut et sadipscing et eleifend dolor accusam consectetuer diam tempor dolor. Iriure amet eos exerci magna elitr nonummy exerci et magna amet facilisis elitr lorem ullamcorper tincidunt aliquyam. Rebum voluptua tempor amet dolore et sed magna at invidunt ullamcorper dolores amet. Justo vel lobortis et aliquip dolore eirmod aliquyam invidunt et labore magna elitr. Facilisis sit kasd vel odio erat erat ex gubergren sea elitr amet ut facilisis delenit sed sanctus nonumy. Ea no in enim stet eos lorem sadipscing ut ut est duo possim delenit stet. Amet sea sea dolor dignissim voluptua. Eos imperdiet tempor dignissim wisi nonummy sit et iriure veniam nulla facilisis nonumy ut at dolor.