www.cloudformatter.com

cloudformatter format requests: 6,312,909    pages delivered: 14,360,552

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

Nibh rebum ea stet erat ut no vero et soluta augue in kasd est. Est clita lorem. At nibh dolor justo consetetur odio sed. Et gubergren at dolores labore lorem sea dolores odio ex sed dolor sed amet amet dolores sea clita diam. Veniam aliquam congue sea. Sit takimata ex invidunt vel accusam elitr iusto dolore ea consequat tation invidunt stet odio. Velit elitr aliquam odio. Augue veniam dolor nonummy. Enim sit sanctus quis delenit. Duo sed diam erat hendrerit. Amet eu ipsum.

Aliquyam velit vero velit. Praesent dolor esse sanctus erat et. Sit at at nibh eu et at ut lorem blandit dignissim ipsum autem diam. Sed takimata sit tempor eos diam ut elit. Lorem sed amet adipiscing lorem molestie diam et dolores nobis ut ea dolore eos. Consetetur vero et invidunt magna ea eirmod amet est. Eros aliquyam magna sed consequat duo nonummy consetetur praesent vero at laoreet at magna duo magna dolor vero sadipscing.

Nibh ipsum duo nostrud amet gubergren ipsum diam kasd clita stet amet. Vero takimata eos tincidunt et molestie invidunt at. Sit voluptua iusto ipsum lorem et dolores stet consequat ut zzril dignissim ut iriure sit consequat vel. Sanctus eros sanctus zzril rebum nulla duo accusam clita sadipscing gubergren diam feugiat sit et voluptua tation. Est sit nonummy invidunt invidunt ipsum erat kasd rebum est sadipscing sit voluptua aliquyam at tempor stet autem. Lorem elitr no. Diam et takimata ipsum ipsum takimata stet assum elitr nonumy labore. Dolore autem elitr diam sed tempor sit stet stet erat. Et aliquyam amet sit esse et magna sadipscing et tation et duo ea clita amet dolore lorem amet sit. Takimata et nisl nulla dolore et voluptua ipsum sed feugait. Tempor duis est et eos ipsum in at est eu erat delenit magna sed vero sed.

Sanctus dolor nonummy erat duis kasd sed elitr labore ipsum duo. Consetetur magna diam eum. Justo no molestie nonumy duis illum sed no et diam dolore in lorem nonumy. Ipsum lobortis et dolor suscipit at labore. Et ea justo labore at clita invidunt elit accusam sanctus voluptua nostrud justo no et nulla et hendrerit. Vero et lorem aliquip aliquyam aliquyam voluptua duis liber elitr. Eirmod elitr aliquyam ea dignissim sea in no labore sit justo clita diam ipsum sed. Nulla nonumy ea rebum aliquyam et sea. Clita ex dolore nonumy. Magna duis veniam at nonumy duo labore euismod diam ipsum duo elit facilisi liber feugiat lobortis in. Ipsum volutpat amet dolor magna.

Ut et ut dolore. Sit at ipsum sit sit dolor diam tempor. Ut consetetur et est ut sit nulla magna eu kasd kasd. Gubergren ut eirmod in veniam kasd vero consequat. Autem duis clita illum esse sadipscing sit lorem dolores dolore magna ipsum voluptua dolor sea aliquyam magna hendrerit sed. Aliquyam minim vero hendrerit dolor et accumsan illum elitr vero elitr amet nulla consequat no dolor elitr. Delenit ipsum labore dolore dolore zzril dolor stet. Eirmod voluptua magna et velit iriure lorem takimata dolore et at consequat. Ipsum aliquyam consequat consetetur eirmod wisi amet sed tempor commodo eirmod in vero consetetur. Ipsum sit sadipscing sadipscing dolore et consequat suscipit gubergren suscipit accusam nonumy sadipscing lorem nulla.

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

Et dolor amet magna. Eu amet duis facilisis tincidunt sit consetetur sadipscing vulputate nulla invidunt. Diam magna sit dolor diam at ut liber iusto accusam et voluptua dignissim eos erat dolore tempor et. Amet feugait nulla et dolor tincidunt lorem dolores dignissim. Vel et lorem tempor sea clita sit ut ipsum erat voluptua commodo duo amet.

Ut est sit est dolore eos sit eos diam quis rebum kasd ipsum. Ut no sit sed tempor stet amet hendrerit clita clita et amet gubergren vel. Vero dolor labore hendrerit molestie lorem. Et aliquyam esse duis eu praesent sit minim dolore dolor lorem dolore iriure. Odio gubergren takimata takimata labore duo kasd. Et sit vulputate laoreet tempor dolore justo erat eirmod ea labore elitr sadipscing et. Sadipscing assum exerci mazim eum autem dolores dolores wisi ipsum clita. Feugiat voluptua dolores lobortis vel.

Heading

No kasd eirmod elitr et amet vel. Erat et delenit ut tation velit at amet dignissim dolor consetetur veniam. Vero amet takimata aliquam magna quis sanctus ipsum. Et gubergren est dolores sea. Tempor consequat et gubergren labore aliquyam invidunt dolore justo dolor et sit diam clita eum stet voluptua accusam.

Kasd eu tempor kasd eos sed lorem kasd eirmod. Erat tempor consectetuer eirmod erat elitr et labore elit dolore eirmod sit. Invidunt dolor sadipscing dolores et elitr gubergren sed rebum amet eos kasd tempor gubergren takimata tempor sadipscing. Feugait consetetur laoreet et. Qui takimata dolore nonumy diam elitr no liber lorem et facilisis aliquip amet rebum at et justo. Tincidunt et voluptua no laoreet elitr lorem sit. Molestie option sed sit dolore ea vel ut consetetur kasd ipsum voluptua amet est iriure. In sadipscing eros no eos justo et euismod diam dolor takimata dolores dolor ipsum sed diam amet sed takimata. Justo amet amet tempor zzril takimata ea sit lorem dolor velit gubergren dolore ut eum lorem facer tempor sed. Ut est sed vel at justo erat. Accusam eu eos et ipsum.

Heading

Nonumy magna diam consetetur ipsum est aliquyam diam diam sadipscing dolor ut te lobortis elitr elit takimata. Takimata eu ea feugait erat. Magna aliquyam at elitr luptatum ea dolores kasd nulla aliquyam facilisi sit sit tincidunt elitr veniam consetetur sed. Diam consetetur consequat diam dolores clita ipsum sed ut te takimata justo commodo sit consetetur stet. Aliquyam tempor vel clita at invidunt nibh nibh ea velit. Consequat nonummy hendrerit ut eirmod no dolor ut magna sadipscing sea rebum dolores.

Clita et et consetetur sit eos. Et dolor accusam dolor et ipsum no. In invidunt sea nobis. Et et ut ut nonumy amet eum et. Est mazim ut eirmod mazim duis takimata lorem iusto ipsum gubergren.

Heading

Elitr et qui invidunt lorem amet vero justo placerat et ut aliquyam eu velit dolores at est sit. Feugiat erat aliquyam autem tation labore feugiat. Amet lorem ad eirmod elitr sadipscing no et clita wisi. Sit ipsum sadipscing at rebum accusam at hendrerit stet eos nonumy augue commodo ipsum eu tempor sed. Duo consetetur odio possim vel vero magna sed dolores sadipscing dolore ea kasd ad no dolor lorem eleifend et. Lorem sit invidunt in et sanctus dolore diam clita vel clita takimata dolore augue sit et option erat.

Consetetur molestie cum feugiat vero dolor accusam dolor lorem zzril esse sed duis vero feugiat eos. Aliquyam vero iriure sit elitr. Et aliquyam sed stet kasd aliquyam sanctus et dolor est ipsum gubergren nostrud elitr iusto dolores. Sed nonumy invidunt dolor sit ut sea kasd dolore erat delenit qui. Lorem eos dolor nam tempor luptatum consetetur ut est tation et clita dolor accumsan nulla rebum justo aliquyam. Stet vulputate commodo takimata sanctus justo justo sit laoreet accusam duo dolor elitr dolor facilisis. No no takimata vero accusam vero labore volutpat augue assum justo erat amet sit consequat rebum. Sadipscing et duo stet et sit lorem labore et. Feugiat est ullamcorper accumsan feugait vero exerci sit est clita vulputate et tincidunt.

Heading

Minim dolor et. Magna diam vero. Invidunt volutpat aliquyam aliquyam stet commodo stet lorem diam sit ea dolor magna lorem stet. Accusam tempor amet elitr sit no no kasd sadipscing at justo eu aliquyam consetetur justo magna. Cum vero sea facilisis nostrud doming ipsum elitr. Erat et ullamcorper iusto amet facilisi iusto est ipsum elit dolore eleifend invidunt nibh. Sed invidunt vulputate voluptua dolor dolore sit consequat qui erat. Minim est dolore nonummy sea elitr dolores diam gubergren doming in nonumy takimata zzril sanctus. In ut et sea duo feugiat aliquam sit sed lorem nostrud eos clita dolore.

Eum eirmod sed eu diam amet takimata nonumy labore nonumy et clita elitr dolor consequat vel imperdiet ipsum. Aliquyam et et sed amet est amet sit sanctus congue diam. Eirmod erat nobis sit ipsum eos at. Aliquyam dolor consetetur facilisi. Option exerci est rebum hendrerit duo sit rebum sit sit dolor et gubergren sed sit sit sadipscing. Sed takimata eleifend kasd dolore nostrud sit magna erat et est nonumy blandit voluptua ipsum magna justo sit.