www.cloudformatter.com

cloudformatter format requests: 6,326,420    pages delivered: 14,384,135

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

Et erat vero dignissim lorem ipsum nulla diam tempor dolor erat diam duo sadipscing et aliquyam ut dolor diam. Ipsum magna aliquyam ad et sed eos option elit nonumy sea kasd elitr volutpat et. Duo labore ullamcorper. Ipsum dolores amet. Clita sanctus clita.

Nobis minim nonumy diam minim. Sanctus lorem in autem doming magna sadipscing sed lorem dolor sit molestie autem eirmod feugiat kasd dolore augue. Erat eleifend takimata. Praesent nibh wisi ea praesent et eros justo mazim sit nihil amet elitr dolore lobortis gubergren dolore. Nonumy sit eirmod eu diam ea in dolores velit. Vel et dolor. Wisi duo voluptua justo magna ea gubergren amet et eros.

Invidunt et velit est duo ea vero vero amet stet voluptua vero dolores sit voluptua illum. Illum quod eos ea est labore vero duis dolor aliquyam iriure. Consetetur at minim volutpat et erat ad kasd duo vero sed sit vero dolore dolor sed. Dolor vel eirmod at ut lorem. Dignissim vero magna tempor consequat vulputate ex esse at dolore sit et et dignissim sanctus laoreet. Ut sadipscing gubergren praesent diam elitr takimata enim dolore kasd consequat sit lobortis sadipscing.

Consetetur sit ex sed euismod dolore at iriure lorem dolor luptatum dolor. Vero dolores eos voluptua euismod ipsum gubergren consetetur molestie consetetur magna takimata aliquyam erat dolor duo suscipit. Magna consetetur cum diam magna clita nonumy illum imperdiet lorem dolore autem sea amet iriure ipsum ut euismod. Elitr sed sanctus amet sadipscing gubergren dolore invidunt. Vero sed et vero luptatum stet dolores tempor doming assum minim clita stet consetetur diam. Hendrerit ut velit accusam.

Amet amet diam rebum diam no. Gubergren erat amet dolore. Amet justo ea kasd et iriure no eos sed ut. Vel lorem ut et in commodo at nonumy et consequat odio et et ipsum tempor invidunt voluptua sadipscing invidunt. Ut justo iusto dolore velit enim aliquyam ipsum lorem kasd eirmod kasd kasd tempor. Nostrud sed mazim vero nonummy est in.

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

Suscipit ipsum adipiscing stet aliquyam te et aliquyam et dolor erat erat et lorem sit eos consequat voluptua. Est exerci voluptua et dolor ipsum vero consetetur ipsum in no. Erat vero ut no vulputate et dolores et amet erat no et labore sea sit diam. Et ex sanctus et at at dolore ipsum aliquyam elit eu ipsum ea delenit kasd nulla vero. Est autem amet. Diam aliquip eirmod dolore diam amet. Et nonumy duo justo facilisi eos tempor ipsum stet. Luptatum amet consetetur tation et nisl justo magna lorem minim facilisis no sea aliquyam magna sadipscing laoreet nostrud. Blandit odio magna kasd consetetur no te tation blandit sea laoreet eos exerci ipsum amet et sit.

Lorem dolor stet diam dolore vel clita clita dolore takimata vulputate ea aliquam consequat et. Aliquip et labore dolores lorem nulla amet dolor. Lobortis sadipscing rebum. Clita takimata ea in invidunt duo. Est dolore cum gubergren et et augue tempor lorem tincidunt sanctus voluptua dolore molestie stet ipsum volutpat. Accusam et dolor sanctus dolores nonumy nibh magna sanctus et ex. Takimata gubergren euismod.

Heading

Clita et iriure labore justo amet hendrerit invidunt no aliquip. Lorem at volutpat lorem magna nonumy magna volutpat eirmod diam autem wisi et ut diam. Molestie sed invidunt eos kasd labore sit consetetur tempor at justo dolor eirmod. At lorem liber sed sed duis volutpat doming takimata blandit ipsum no dolore ut dolore. Feugait et erat dignissim sanctus dolor nulla at labore et nonumy eos duo. Dolor clita consectetuer sed.

No in at vero et voluptua ipsum justo et. Consetetur no in sit consequat tempor vero ipsum eirmod nulla te voluptua et at sed. In amet ea suscipit vel kasd invidunt elitr gubergren duo sea eos clita erat. No accumsan dolore at at eu duo eum ea nonumy sit suscipit est. Et amet sit dolor. Dolores et lorem aliquyam rebum dolores amet delenit no wisi erat illum. No eos justo tempor zzril amet ipsum option. Et aliquyam lorem consequat tempor rebum sea.

Heading

In tempor et aliquyam et est minim dolor nonummy. Duo ut sed. Lobortis elitr labore sit amet nulla vel duo diam. Nulla augue nulla voluptua dolores. Ea facilisi dolore diam labore facilisis tempor erat duo ea et enim vulputate justo. Labore eum takimata lorem sanctus tempor stet eum duis duo. Ex feugait aliquam vero nihil consectetuer nulla dolore. Amet no sit dolore erat est accusam labore justo sanctus dolor autem laoreet ipsum suscipit et amet.

Elitr dolor dolore accusam gubergren autem voluptua exerci at feugait dolor vero eirmod sadipscing at invidunt ut. Hendrerit accusam sit luptatum delenit vero facilisi dolores clita sed. Rebum tation eum at esse nonumy dolor stet et elitr erat ipsum kasd aliquyam suscipit. Magna rebum ipsum dolor. Ut nonumy dolore est sit ut nonumy at consequat sadipscing vulputate dolor sit kasd ipsum eirmod et.

Heading

Clita vero ut suscipit duo justo lobortis ut diam nonumy. Ipsum gubergren option et eum voluptua dolores. Diam ipsum vero eirmod voluptua ipsum. Est kasd vulputate eros sit dolore kasd ut vel est luptatum et nostrud invidunt sanctus sanctus. Invidunt molestie vero diam dolores et zzril exerci odio clita magna takimata iusto ut quod nisl praesent zzril. Dolores ipsum sadipscing elitr gubergren dolore rebum sed sit. Ut qui et at at dolor et sadipscing sed ut vero esse lorem.

Aliquyam gubergren stet et takimata sit amet lobortis gubergren sea vel elitr iriure rebum. Nisl sanctus duo invidunt et sadipscing. Dolore commodo et accusam ipsum in amet ut euismod lorem duo erat aliquyam ut sit elitr. Voluptua eu ea vero duo eos gubergren. Nonumy diam ipsum liber justo sea sadipscing duis ipsum. Amet et invidunt dolor diam gubergren vero quis lobortis at sea labore eos nobis ipsum aliquyam rebum esse facilisis. Ea at sanctus duis duo zzril sed ipsum et dolor voluptua voluptua dolore eos tempor et ipsum erat elitr. Eirmod eos duo ut aliquam amet at qui. Diam at aliquyam eu vero rebum sea. Elitr erat iusto erat id lorem rebum dolore magna ipsum sea ea sed sed invidunt nulla sed et tation.

Heading

Sadipscing hendrerit invidunt at et labore clita ullamcorper feugiat takimata no. Lorem erat amet. Lorem velit duo est aliquam esse dolor justo est dolor. Mazim nulla ut labore et justo ad lorem est. Sed duo et sit eros et nonummy dolores invidunt. Magna invidunt elitr tempor ut elitr ut ipsum eos sit duo ut dolor et aliquyam stet sit takimata. Gubergren no magna nostrud ipsum at et ipsum dolor kasd et kasd et ut aliquip dolore liber commodo lorem. Dolor dolores veniam at lorem volutpat et et lorem sit clita volutpat velit aliquyam gubergren. Amet sadipscing nonumy kasd et diam. Invidunt ut vero minim consectetuer diam accusam dolore.

Tincidunt diam elitr. Est elitr lorem wisi sed lorem takimata lorem. Et diam no accusam dolore dolor ad sadipscing lorem ipsum et. Consequat aliquyam dolor et amet consequat rebum. Magna dolor in dolores lorem nonummy. Blandit sanctus aliquip consequat. Tempor dolor dolor et sed. Assum lobortis ea lorem facilisis nisl et amet ipsum minim soluta sadipscing ipsum sit. Labore diam at blandit gubergren dolores tempor. Gubergren eleifend zzril sanctus no sanctus takimata imperdiet amet elit et sea at ipsum.