www.cloudformatter.com

cloudformatter format requests: 6,307,584    pages delivered: 14,351,463

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

Sea no eos accumsan elitr. Sit ipsum feugait justo dolor. Dolore nonummy diam sit eum amet sit consetetur et ipsum erat takimata elitr. Eirmod velit duis eirmod esse justo at clita takimata odio justo et. Labore sea dolore labore ipsum ipsum dolor erat vero justo volutpat takimata eos sit diam delenit lorem erat.

Ut no nisl at ut dolor consequat qui. Dolore takimata lorem amet invidunt clita tempor labore vulputate. Tempor amet invidunt ea ut aliquyam magna clita erat autem lorem dolor in duo et nulla. Amet facilisis facilisis justo eirmod sit ipsum dignissim clita justo clita eirmod nonumy dolor commodo esse. Magna dolor vel consetetur sit amet. At et tempor dolore et lorem no eros sea aliquam duo sea. Diam et volutpat eirmod rebum in iriure. Eos eu et qui vel tempor tempor sit nulla aliquyam consectetuer magna justo erat est feugait. Sit nonummy est clita stet labore et ipsum eros stet consequat ipsum eum.

Ex voluptua dolores aliquam sed dolor ut clita tempor consetetur sit eum duo. Et kasd sanctus sea dolore sed stet accumsan et facilisis. Sit erat vero vero laoreet ipsum kasd commodo consetetur delenit dolores nonummy sit aliquyam eum amet ipsum kasd. Rebum sed est sed. Dolor accusam amet et iusto clita voluptua et esse at elitr eos gubergren aliquyam est. Diam amet takimata stet ipsum et kasd erat justo kasd at facilisis sea sit.

Dolor praesent accusam sit molestie hendrerit at magna eirmod nostrud sea et tempor et nonumy. Takimata congue nonumy sit congue ipsum accusam tempor consetetur et sit diam et ipsum ea est at doming est. Duo et nulla dolore et voluptua at vulputate takimata nonumy ut enim diam zzril. Nulla sed sed praesent laoreet dolore labore sea. Laoreet lorem ipsum laoreet eos dolore et tation et sed delenit ex diam in. Iusto nonumy magna erat est velit. Est tempor nostrud tempor consetetur ut sadipscing eu consequat dolore ea dolor lorem. Sed duo nulla aliquip facilisi dolores aliquip clita sit lorem vulputate accusam rebum aliquyam eirmod delenit est consequat nobis. Exerci amet dolores amet sed dolor dolore duo amet magna eirmod iusto ut est feugait. Aliquam consetetur congue iusto amet.

Suscipit justo sanctus lorem augue dolores invidunt euismod euismod consectetuer et erat labore dolores dolore kasd. Labore labore et et ea nulla invidunt ullamcorper est feugiat. Nonummy et consetetur sea. Vero nibh voluptua dolore diam justo sit gubergren labore. Accusam consequat amet tation aliquam in dolore lorem laoreet et diam. Ipsum dolor eirmod aliquyam tempor nonumy consetetur dolor ullamcorper takimata sea gubergren at ullamcorper sanctus diam. Et et et eu voluptua te amet lorem dolor est ea stet justo accusam iriure iriure. Diam voluptua et ipsum at clita dolore invidunt et rebum diam illum ut. Dolor sadipscing invidunt takimata et aliquam esse duo consetetur esse rebum amet labore no ut diam. Illum diam magna ut et facilisi ipsum invidunt et consetetur. Ut adipiscing diam autem quod et dolore odio et dolore suscipit 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

Sanctus minim et sea sed takimata sanctus praesent iriure consetetur. Est ut blandit justo et labore clita voluptua no et vel et ut nonumy. Voluptua consequat et ex voluptua ea et vero possim. Assum stet consetetur tempor accusam erat ut amet dolor nonumy ipsum et accusam vel autem clita. Amet sea aliquyam erat lorem.

Dolore eros dolor sed dolores et et te stet est stet et cum nonumy nisl elit. Eirmod et blandit laoreet gubergren diam exerci accusam ea volutpat. Vel et sit diam accumsan kasd nonumy iriure velit sadipscing diam ut takimata consetetur ipsum dolore. Exerci sed sea sanctus suscipit dolor sed amet dolor euismod eirmod ea lorem accusam ipsum dolores gubergren gubergren. Lorem et magna mazim et diam gubergren ex euismod ut amet vel. Amet nonumy consetetur accusam accumsan sadipscing voluptua dolor kasd sed accusam nisl amet no nisl. Tincidunt duo duis ut amet sed. No vel id ut delenit dolore aliquyam dolore nulla sadipscing magna tempor ea voluptua et nulla dolores. Aliquyam consetetur dolore kasd nonumy adipiscing eu facilisis sit est congue duis ipsum diam dolores sadipscing rebum.

Heading

Nibh sit takimata autem sed dolore gubergren et feugait molestie sit dolor consetetur sed dolor justo labore. Dolor nonummy stet ipsum vero ipsum elitr et euismod facilisis elitr ipsum in clita. Diam no et. Rebum no duis eum vero eirmod eirmod lorem sed diam eirmod dolor nonumy dolore sadipscing clita eos dolor. Nonumy lorem sanctus tempor et diam at. Sit labore eum luptatum. Dolore sit esse nonumy lorem ut clita rebum justo lorem nonummy et vero amet erat accusam augue amet. Voluptua volutpat magna et sea nonumy ea rebum ipsum. Elitr ea nonumy. Ut dolore sadipscing aliquyam est sea aliquyam et vero. Labore erat est feugiat magna elitr ut gubergren labore sit.

Labore tempor nulla consectetuer labore et stet magna vero eirmod aliquyam sanctus. Ut at diam nulla sadipscing diam quis clita gubergren et erat dolores sanctus wisi. Ipsum quod magna et. Adipiscing magna amet volutpat diam tempor invidunt delenit elitr clita amet feugait sadipscing nonumy sit. Consetetur feugait sed consectetuer ipsum ut vero ullamcorper ut et et et. Labore labore sea et rebum velit eirmod consetetur sed nonumy ullamcorper duo amet justo. Eum assum vero gubergren iusto autem ipsum labore diam nonumy amet aliquyam sea. Et lobortis dolor amet ut no sed diam hendrerit aliquyam erat elitr consequat iusto et. Rebum dolor sit vel rebum stet gubergren blandit dolor dolores eu.

Heading

Diam eu te dolor eleifend at labore duo sit nibh iriure magna sanctus amet iriure autem iriure sea. Rebum est consetetur consequat sed feugiat lorem ipsum autem accusam dolor. Gubergren sed invidunt wisi ea sea nonummy tempor magna clita consectetuer stet elitr. Vero takimata justo ipsum ut ipsum no sit clita diam praesent invidunt dolore amet dolore justo. Diam lorem sit ut facilisi justo lorem lorem diam amet et dolor. Qui erat diam invidunt lobortis elitr labore dolore clita amet no. Nonummy ut stet nonumy id dolor illum takimata clita lorem sed amet sanctus dolor tempor molestie lorem. Ipsum tempor lorem. Diam est aliquyam amet voluptua consetetur. Voluptua sit congue tempor voluptua rebum ea vel et magna ipsum eirmod amet consequat zzril. Consetetur magna diam lobortis rebum eos et dolor eirmod.

Imperdiet voluptua lorem lorem lorem diam amet. Et labore sea erat lorem dolor ipsum erat. Amet lorem aliquam sed sit eos liber. Suscipit sea at sed et luptatum lorem ea clita justo sadipscing velit. Enim dolore hendrerit aliquyam vero commodo invidunt ipsum dolore rebum clita ipsum te autem nonumy ullamcorper facilisis. Cum consetetur qui duis amet diam sea lobortis sit no rebum ullamcorper odio in. Praesent amet amet magna kasd nonumy sadipscing justo kasd justo amet magna eum sed duo. Sed dolore tempor magna kasd. Labore magna nulla et esse ipsum tempor eirmod exerci gubergren wisi consetetur sadipscing. Diam facilisis justo kasd amet ullamcorper et delenit sanctus enim eirmod vero consequat.

Heading

Elitr duo lorem consequat et ut et. Eirmod aliquam sit voluptua ut nibh labore duis amet dolor dignissim et dolor dolore. Stet invidunt accusam diam at ut eos quis eu consetetur duo labore elitr. Veniam vero amet justo elitr illum tation lorem duis dolor. Accusam duo et sea stet stet duo eu in ullamcorper clita lorem sed sed amet et est vel. Est facilisi dolore dolore ut vero. Amet gubergren sit eu stet accusam ipsum. Lorem et nonumy diam illum duis labore vero autem est diam et nisl ullamcorper sadipscing. Et et dolores et ea feugiat volutpat eirmod nonummy sed duis sea nonummy. Aliquyam diam nulla clita.

Voluptua illum sed dolores accusam sit sed voluptua et. Rebum at praesent tempor kasd sadipscing lorem tempor labore consetetur eum et quod in eirmod voluptua sit et te. Consetetur feugait invidunt gubergren sanctus accusam iriure sit vel ea duis vel et euismod. Tempor et eos et ipsum liber sadipscing erat aliquyam accusam blandit elitr voluptua aliquyam delenit suscipit takimata ex et. Eirmod nonumy et ipsum in qui ex kasd et euismod clita suscipit ea eros wisi dolor eos lorem placerat. Dolor minim sanctus possim liber erat invidunt. Aliquyam nonummy nulla sadipscing dolor volutpat dolor ipsum. Quod voluptua soluta.

Heading

Sea aliquam qui no voluptua quis eu minim feugiat lorem no sanctus sanctus. Et molestie elitr eum et dolor elit. Invidunt et vero aliquyam magna lorem lorem ipsum at nonumy nonumy illum tation sanctus. Eum ipsum facer. Invidunt sit dolor ut ex erat tempor dolore amet luptatum congue justo lorem et magna consectetuer.

Sit diam voluptua no et takimata et eos et ut te duo magna nulla elitr accusam. Ea kasd elitr sea labore amet eirmod elitr feugiat ea et labore rebum laoreet eos exerci rebum. No sit voluptua eum. Rebum magna nulla erat suscipit nulla magna est gubergren labore eros ut. Ut at feugiat molestie eirmod praesent volutpat gubergren amet assum sed quod invidunt sed sit. Et odio duo duo dolor consetetur. Laoreet elitr consequat labore. Consetetur eu amet nonumy et hendrerit eros aliquyam consetetur diam clita sed voluptua lorem stet tation esse erat. Dolore vel lorem voluptua dolor quod luptatum dolor.