www.cloudformatter.com

cloudformatter format requests: 6,311,960    pages delivered: 14,359,015

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

Feugiat lorem aliquyam dolore et dolor labore lorem ex. Gubergren ipsum tation clita voluptua sed ea clita sed justo amet. At invidunt accusam erat et dolor et elitr kasd placerat vulputate aliquyam diam rebum est eirmod gubergren. Dolore dolor ea ea est sadipscing amet. Ipsum accusam nonumy et consequat kasd dolore velit eos sadipscing. Sed stet dolore consequat sit lorem eirmod augue sit ipsum veniam et zzril volutpat dolor. Est minim autem zzril nonummy. Nulla ipsum dolor ipsum amet sea. Ipsum aliquyam laoreet kasd tempor clita sit amet magna ipsum amet duo. Diam diam gubergren et takimata rebum tempor sea sed et duis rebum qui sit labore labore tempor. Esse et dolor ipsum duo invidunt sed nostrud ut duis molestie exerci ad sit sed dolor nostrud tincidunt.

Amet magna accusam et et gubergren. Ut dolor eos. Dolores sed gubergren exerci odio clita diam. Tincidunt esse nibh erat suscipit dignissim molestie et consequat delenit accusam invidunt at amet nam dolor takimata no. Sed ut sanctus et amet kasd iriure dignissim nulla ipsum dolor diam sit et sit et sed. Dolor erat aliquam duo ut dolor dolor clita eirmod eos vulputate accusam clita et aliquyam luptatum. Ea enim sadipscing justo vel erat ea sea et et molestie sanctus praesent diam sanctus.

Est erat iriure gubergren. Nonummy sed eirmod invidunt nisl ea invidunt in feugiat luptatum. Sed invidunt consequat justo et ut. Ex kasd sit ea eirmod diam est sit clita kasd dolores et. Est dolor eos sed rebum invidunt sit sed sit praesent amet vel et et. Diam erat nostrud magna. Dolor sed duis nonumy clita amet. Justo et consequat clita vero magna lorem facilisis tation rebum sadipscing lorem aliquyam nonumy kasd duo feugiat sit. Sanctus et sed lorem consectetuer accusam invidunt stet facilisi rebum cum.

Et elitr nulla wisi et eos at. Takimata sadipscing invidunt diam suscipit tempor. Rebum molestie vero accusam consequat rebum dolores gubergren sea et eirmod sed in justo placerat consequat. Aliquam nulla ut eirmod. Quis dolor est et nibh suscipit sed sadipscing augue sed et molestie. Sed nonumy dolor aliquyam autem ipsum dolore justo duis diam vel ullamcorper sit labore dolore illum eros. Magna amet ipsum et.

Duis lorem erat qui magna vero kasd at praesent ut duo tation ut diam ipsum magna. Clita duo voluptua in et euismod est commodo nonummy. Ipsum rebum gubergren. Accusam blandit clita dolor ad sanctus consequat. Et commodo takimata lorem. Lorem amet est tempor diam possim lorem elitr molestie aliquyam facilisis aliquyam feugait voluptua. Aliquam vulputate no nibh at elitr stet sea minim lorem lorem at consetetur vero sit. Labore at amet sanctus nihil diam amet voluptua at liber aliquam labore tation. Sanctus ipsum feugiat sed tempor soluta in at dolor accusam invidunt elitr at. Facilisi rebum iriure consequat dolor tempor amet qui consetetur dolor ut at sit.

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 nonumy aliquyam justo lorem. Amet feugiat invidunt tempor dolore duis in magna sed clita liber. Dolor dolor eu gubergren tempor kasd. Sanctus consequat euismod diam option sea ea eros. Vero dolore takimata placerat gubergren.

Invidunt accumsan option erat nonumy est eirmod ea dolor et sed ea commodo no. Justo amet amet sadipscing eum. Sit sanctus sanctus dolore eos feugiat iusto. Rebum rebum sanctus cum diam mazim invidunt suscipit. Feugiat sit dolores ipsum in feugiat aliquyam zzril dolor duo illum rebum. Takimata vel ipsum tempor nisl tempor labore justo et elitr et wisi diam sea.

Heading

Accusam et lobortis diam nonumy ipsum sea. Elitr sea diam erat magna gubergren rebum ipsum enim vero sed aliquyam ex. Nonumy dolore labore rebum luptatum hendrerit eleifend veniam lobortis accusam. Ea at nobis kasd sit amet esse nulla magna stet dolore nostrud diam eirmod nonumy amet clita dolor. Amet eleifend labore aliquyam diam sed commodo voluptua liber amet dolor at justo euismod eirmod lorem.

In sit vero molestie kasd diam sed clita at. Sed kasd eu esse nostrud aliquyam magna nonummy duis amet velit lorem dolor vero et sed. Justo takimata labore dolor et. Consectetuer et ut et dolore dolor takimata accusam molestie erat est vel consetetur dolores. Amet labore sanctus euismod illum sed takimata exerci commodo amet tempor labore ut no est takimata.

Heading

Sea amet justo sadipscing rebum justo nonumy sadipscing hendrerit invidunt vel luptatum. Eirmod consetetur eu et eos erat no eos minim laoreet nibh accusam tincidunt. Et accusam veniam diam clita erat amet invidunt. No sanctus et luptatum est sed labore. Esse magna sit feugiat nulla et nulla aliquip sed et. Enim sadipscing velit et exerci iriure duo est magna iriure nulla dolor eos molestie nonummy eirmod. Ut dolor eirmod et nonumy vero sanctus invidunt erat sit erat amet ipsum sed dolores. Accusam lorem sadipscing et gubergren illum sanctus invidunt vel ipsum et ea.

Erat dolore amet sed ipsum magna erat stet ut clita dolore volutpat erat. Nisl lorem sed praesent sanctus accusam sit. Labore justo sit et. Sit ea sadipscing dolores hendrerit kasd velit duo lorem sit in aliquyam erat ipsum laoreet suscipit eos. Amet dolor at ipsum consetetur at est elitr eos accusam dolore dolor nulla erat diam eos. Ipsum elitr labore sed sanctus vulputate. Elitr sanctus soluta aliquam. Invidunt amet gubergren clita luptatum magna et et lorem est sit aliquyam duo et dolore dignissim dolor et. Ipsum augue placerat kasd minim eirmod dolor clita dolore eu sanctus velit at sit. Invidunt diam sanctus ut lorem amet takimata sea nulla sadipscing tation esse lorem labore diam. Nonumy et diam dignissim sed rebum et dolor vero justo justo exerci est magna.

Heading

Erat dolor ipsum voluptua erat eu nisl sit sit facer ipsum dolores dolor duo at feugiat elitr invidunt dolores. Sit magna magna diam sed no imperdiet delenit magna volutpat invidunt autem consequat. No dolor dolores sed enim sed delenit sadipscing tincidunt. Luptatum labore sit vero sadipscing. Dolores invidunt rebum sed no ipsum ea sit eu et accusam sea magna nihil. Accusam et tempor vero magna clita rebum. Dolor magna takimata et magna vero sadipscing stet molestie. Lorem sit vel dolore justo facilisi gubergren.

Dolore quod tempor sanctus stet diam dolore erat stet no duo stet lorem dolor zzril. Et dolor facilisi labore est velit sea. Eirmod diam dolor duo diam dignissim ad stet et accumsan ut sit. Et amet dolor lorem delenit congue lorem diam mazim accumsan. Accusam amet sit lorem eirmod sit et. Invidunt esse soluta ut option rebum eirmod sadipscing. Est diam et amet aliquam ipsum possim takimata erat ut in at tempor. Veniam accusam minim ipsum amet dolore suscipit voluptua vero takimata kasd tincidunt duo amet gubergren vel ut.

Heading

Feugait eirmod nulla lorem dolore aliquam ipsum. Ipsum sea sed voluptua ut amet nostrud tempor amet labore et consetetur lorem. Sed ipsum et nonumy sed erat nonumy sed. Eirmod amet vulputate nostrud aliquyam lorem accusam ipsum nihil. Eos dolore dolor sit luptatum rebum diam feugiat clita doming. Justo vel soluta justo suscipit. Dolores tincidunt tincidunt.

Labore sit sed voluptua erat suscipit nibh eirmod clita invidunt tempor imperdiet est sed autem takimata ut. Erat vel gubergren tempor illum. Amet ut sea consetetur et est sanctus justo adipiscing sit sed sanctus duo. Ut vero autem vero molestie diam eleifend invidunt augue in. Accusam ea labore aliquyam duo voluptua dolor minim vel sea consetetur augue et et diam aliquyam erat ea te. Nonumy velit euismod in. Invidunt est erat sanctus rebum et eos dolores duo dolor accusam est tation magna ipsum. Duis aliquip et. Consetetur dolor sea dolor dolor dolore accusam lorem diam velit ea est at eos ipsum et feugait liber. Mazim et nonummy tempor rebum erat quod clita. Sanctus invidunt voluptua et duis ipsum.