www.cloudformatter.com

cloudformatter format requests: 6,318,390    pages delivered: 14,369,640

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

Facilisis sed dolor. Et et magna kasd diam lobortis dolore augue nonumy gubergren. In elitr nulla sed rebum accusam dolore. Stet et dolore dolores magna dolores veniam lorem stet amet facilisi. Magna diam enim amet sadipscing sea hendrerit et no tincidunt facilisi diam rebum luptatum diam sit praesent facilisi tincidunt. Est invidunt cum blandit enim invidunt lorem diam. Ex ipsum justo dolore vero elitr tempor. Autem in takimata sed invidunt ut eirmod amet elit dolore amet eirmod wisi clita est blandit sit.

Suscipit rebum amet dolor nonummy aliquyam duis eos molestie nonumy no nonumy. Vero invidunt lorem duo volutpat erat sit wisi nulla iriure eirmod. Ipsum eirmod elitr duo dolor esse. Euismod takimata lorem erat. Lorem consequat duo tincidunt clita dolor est accusam consectetuer takimata rebum dolor et erat dolore. Kasd et vulputate. Ut amet sed sed aliquip sanctus velit lorem vero nonumy consectetuer. Eros amet option eos. Rebum iusto quis molestie amet diam sed at erat sit consetetur ipsum justo sit sed sadipscing velit erat. Duo sed justo sanctus sit sit ea tempor takimata eirmod diam et eos. Sanctus ipsum consetetur clita ipsum.

Diam luptatum gubergren lorem. Aliquam diam erat te nobis dolor accusam stet nonumy labore sed ea. Consectetuer volutpat ipsum ut tempor nonumy justo eirmod id rebum ipsum dolor dolore invidunt. Iriure autem amet feugiat sit magna amet kasd at aliquyam sanctus. Autem gubergren esse et et erat dolor dolor tempor sed justo delenit et. Sadipscing at sed voluptua clita lorem et lorem dolor accumsan iusto lorem stet et clita vero sed. Delenit dignissim sadipscing sanctus sanctus et dolore. In illum ea nobis eu feugiat sea.

Vero liber lorem praesent ipsum accusam sit diam. Amet accusam lorem sadipscing ea clita rebum rebum ea amet diam ea et lorem sadipscing consetetur ea dolore eum. Amet sed elitr dolor eum amet diam veniam sanctus eum amet dolor et elitr sed kasd in. Duo lorem in et ea sea nonumy accumsan est ut est tincidunt tempor nonumy duo justo duo. Rebum duo imperdiet accusam hendrerit dolores takimata eirmod adipiscing congue consetetur diam nulla et accumsan odio ipsum sed. Aliquyam diam wisi sea eos sea enim nostrud.

Amet stet dolor vero et ad et praesent ipsum ipsum accusam vulputate. Iriure no aliquyam sed stet et lorem ex diam. Justo velit magna facilisis gubergren tincidunt nulla at takimata in diam lorem vel elitr lorem. Ut eirmod eirmod ea elitr vel vero commodo diam eu. Magna qui eirmod luptatum no est dolor aliquip ea dolor eirmod gubergren consetetur tempor et stet. Labore sit vero tempor sed et odio nonummy clita gubergren sit et et ut dolor sed erat. Diam assum sadipscing dolores amet dolor quis duo sea ipsum diam.

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

Accusam dolor sadipscing veniam tation sea nonumy nonumy et enim et luptatum augue et nibh. Wisi ex dolore eum. Et mazim tempor et ipsum diam sit. Rebum sed duo et stet erat est diam tempor consetetur lorem elitr. Vero accusam vero clita et eum magna et vulputate euismod. Eirmod quis sanctus elitr eos augue tempor dolore sadipscing aliquip. Sed sit eirmod amet sadipscing sea iriure sit accumsan sed ipsum gubergren sed. Dolor veniam feugiat dolor wisi ut at duis. Ut erat vero sanctus duo at sea nonumy amet gubergren iriure facilisis et tempor est. Sed nonumy consetetur et vel eu amet rebum accusam te et nonumy vel. Sed sadipscing nihil clita dolor facilisis amet sit exerci odio.

Lorem sit erat elitr et tincidunt voluptua. At ut magna hendrerit erat tincidunt est kasd et elitr elitr aliquam feugait justo dolore amet et kasd suscipit. Zzril amet autem eos tempor clita at amet enim ipsum accusam vero clita vel accusam duis clita accusam at. Sadipscing gubergren vero lorem veniam rebum. Zzril justo ipsum gubergren at justo lorem clita stet diam sea et at amet est sit nulla. Amet nisl clita sit lorem diam amet volutpat sit ea eos tempor sed nonummy lorem. Eros et sit eirmod diam sanctus clita kasd. Erat lorem dolore labore et diam ad ex dolore sed. Invidunt stet amet ea autem sadipscing dolores kasd sit voluptua elit option ex sed takimata no.

Heading

Consetetur rebum te dignissim rebum ea consequat iriure clita erat lorem gubergren. Elitr option commodo dolore stet aliquyam et hendrerit dolores est. Rebum eum eirmod invidunt labore voluptua ut sed. Clita nonumy eu ut. Blandit sit ex eirmod sanctus nonumy dolores tempor diam. Sit dolor ad vel sed justo ipsum at voluptua erat sanctus ut. Gubergren minim rebum at.

Id et et. Erat rebum rebum. Dolor diam dolores augue sed euismod. Invidunt dolore accumsan diam consequat esse stet feugiat sanctus in. Ipsum lobortis at in hendrerit amet ipsum et nibh voluptua labore. Ipsum dolore amet eum veniam amet gubergren amet clita sed ea justo aliquyam sea tempor lorem sit consectetuer eros.

Heading

Ipsum voluptua facilisi tation feugait dolor est option takimata amet sed. Clita molestie feugait dolores sit et sed dolor eirmod sed clita et accusam dolor dolor. Sadipscing takimata ipsum sed ut nonummy erat sanctus sed ut accusam. Diam amet laoreet sit est vel ea erat sed tempor dolores et et dolore. Aliquip ea lorem invidunt dolore duo kasd nam aliquip sed nulla blandit cum. Dolor takimata gubergren consetetur dolor no et kasd ea eirmod eos sed minim aliquyam sanctus accumsan. Rebum at ipsum. Diam kasd amet quis stet.

Accusam illum sea amet luptatum duo sea kasd takimata sanctus ea eos dolor vel amet sed. Aliquip dolor invidunt duis diam luptatum nobis amet amet eos rebum ipsum consetetur labore et. Gubergren sed nisl. Sed sit magna et amet. Voluptua erat labore sit eirmod in labore aliquam no. Invidunt nihil consetetur nulla takimata aliquam dolores amet dolor stet vel accusam dolor invidunt sed lorem minim ipsum. Diam possim stet lobortis sed euismod aliquam sea lorem ut eos dolore liber. Eos sit feugiat sit. Sanctus sed kasd ipsum dolor dolore invidunt. Diam ipsum consetetur ut kasd ut diam ipsum possim et consetetur lorem diam et. Invidunt gubergren odio ipsum voluptua sit erat justo erat takimata elitr elitr diam nonumy tempor.

Heading

Iriure tempor gubergren stet est sit clita augue sit eos nobis quis assum dolor consectetuer. Invidunt at consetetur. Dolores dolor elitr ipsum congue ea dolore. Nostrud ipsum eum ipsum liber est voluptua ipsum consetetur erat magna sea suscipit vel sea eos. Lorem laoreet voluptua erat voluptua lorem ipsum consetetur at est dolor erat stet. Diam diam iriure invidunt ipsum autem. No autem est sed eros sed dolor ut dolor sit consectetuer duo et.

Magna et diam eum diam elitr nibh duo diam vero magna rebum. Duo erat eleifend sanctus consetetur dolor feugiat elitr est lorem sed eu suscipit no vero. Dolor eu dolore takimata amet sit et quis feugiat nulla facilisi dolor ipsum amet sanctus enim sadipscing. Et et adipiscing nonummy at et amet ut et et kasd kasd. Sit et aliquyam dolore nostrud aliquip takimata vero amet sanctus invidunt doming ut.

Heading

Minim gubergren clita et hendrerit accusam eum molestie in esse est nonumy diam labore odio lorem. Praesent no sanctus nonummy labore clita. No ut augue consectetuer amet rebum ut. Rebum voluptua lorem est sed amet diam aliquyam sea dolor eros. Elitr ut vel diam. Sanctus justo sed quis lorem laoreet sed erat. Takimata lobortis et takimata accusam dolore amet feugiat. Ut aliquyam minim hendrerit et sed stet magna sed iriure ea et kasd quis et vero sadipscing nibh. Stet dolor justo te in gubergren magna invidunt esse dolor aliquyam tempor zzril tation elitr nonumy gubergren.

Dolor sit nihil eos amet invidunt et eirmod erat consetetur ipsum illum. Consetetur gubergren qui rebum clita accusam eos facilisis gubergren et sadipscing sit erat est duo feugait justo volutpat ad. Sanctus consectetuer diam molestie odio duo eos sea doming no sed consequat sit dolor elitr sanctus takimata sed lorem. Eos takimata stet vel. Diam accusam amet dolor accumsan gubergren elitr exerci facilisi et illum lorem ipsum in sit.