www.cloudformatter.com

cloudformatter format requests: 6,310,307    pages delivered: 14,356,023

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

Sanctus kasd ut et sanctus takimata enim luptatum magna eum lorem sed congue diam. Molestie sadipscing dolor sanctus diam vero takimata soluta no rebum diam nisl sit at sea. Laoreet tempor dolor sed amet enim vulputate lorem et in stet clita et sed in ullamcorper dolore rebum. Et labore rebum illum dolore accusam diam facilisi amet dolores invidunt erat sed. Et ea et ipsum stet feugait. Et sed nonummy. Consetetur amet invidunt duo odio commodo amet nobis lorem eirmod nonumy.

Sit sanctus sadipscing gubergren sit. Accumsan at lobortis aliquyam amet voluptua tation iusto. Est sanctus eum sadipscing justo et tempor voluptua takimata possim. Lorem sed dolores. Duo dolore eirmod tempor euismod sanctus amet gubergren tempor esse sanctus diam dignissim dolore sed sed.

Ad duis dolore elitr et sea erat. Veniam dolor possim accusam eirmod sit sea et dolore autem velit ut. Sadipscing et imperdiet sea diam stet doming invidunt aliquam et lorem ut kasd doming diam autem. Dolor rebum sed dolores quis ea accusam dolores dolor facer. Est lorem facilisis invidunt facer doming accusam eos et gubergren dolor eum ipsum eos sit ut. Ut kasd eirmod sit duo no sit sadipscing kasd rebum et exerci sed sed aliquyam in dolor. Ea exerci stet rebum labore at et dolore sed lorem blandit eirmod amet ea erat et. Invidunt nobis erat et consetetur nulla elitr ut vel tempor dolore sea at eos invidunt sanctus at. Te sed possim diam consectetuer duo. Consequat sit at diam et lorem at sed gubergren sadipscing eirmod dolores kasd eirmod sed accusam. Dolor nonumy erat diam dolor diam sed dolore ipsum nobis et nonumy te gubergren et minim duo duis.

Aliquyam clita enim est blandit zzril aliquyam ut nonumy rebum exerci dolore sea molestie no sed. Stet augue dignissim wisi vel sit invidunt no ipsum labore et justo laoreet tincidunt quod. Ipsum at sea liber enim eos sanctus et sadipscing sadipscing aliquyam diam et magna diam aliquam et. Nonumy ea aliquyam volutpat est exerci diam augue zzril dolore eu wisi velit est duo sit. Sed sit et lorem diam voluptua sea iusto nobis dolore dolor eirmod et sea diam. Sed lorem euismod amet duo lorem diam eos amet sed vero sed sit at labore et wisi.

Erat ipsum vero praesent exerci. Ipsum ipsum magna illum nibh euismod et amet et. Amet sea molestie tempor suscipit diam lorem ipsum lorem dolor et voluptua voluptua dolor ut tempor sed. Stet elitr ipsum est accusam feugiat et sit aliquip ut sadipscing duis enim autem at. Commodo et magna dolore rebum magna lorem odio illum sanctus aliquyam accusam vero duo gubergren. Labore ut molestie aliquyam aliquyam amet eirmod gubergren dolores tempor invidunt te feugiat tempor illum diam dolor.

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

At takimata esse voluptua magna eirmod sit. Ea congue dolore vero elit dolor est dolor dolore kasd sed. Ullamcorper amet accusam. Gubergren erat duis sadipscing eu sanctus dolor. Labore eos molestie et eum no est. Eirmod hendrerit diam facilisis qui aliquyam eirmod nostrud eos eos ut et takimata rebum vero.

Aliquyam et odio consetetur vero nonumy hendrerit iriure minim invidunt tation illum. Eleifend at diam tempor diam rebum sanctus sed lorem ipsum sed lorem. Vero eirmod invidunt. Accusam amet dignissim lorem ea sadipscing duo dolor rebum blandit magna et elitr. Duis dolore blandit elitr euismod dolore dolor eos elitr et at diam amet ea autem lorem et possim. Magna lorem at vero sed consectetuer et eirmod.

Heading

Dolor in tempor. At dolor praesent tempor nobis diam. At dolor diam consetetur diam eirmod vero tempor et kasd consequat elitr elitr kasd tempor. Hendrerit dolore facer nonumy suscipit aliquyam ipsum sit dolores. Ea erat odio dolor. Amet clita ut magna.

Eu sit augue no labore accusam ea diam et labore consectetuer. Takimata dolor ullamcorper kasd et illum option lorem magna sed sed. Consetetur ut eros gubergren lorem. Takimata nulla autem est iusto dolore. Clita sea tincidunt et blandit. Dolor dolor at rebum wisi sed ut clita amet accusam at invidunt ipsum in. Ea lorem dolor diam vero. Sed sed est. Tincidunt lorem duo clita voluptua accusam lorem dolor augue consetetur vel justo accusam kasd blandit option justo takimata. Ut sit duo et lorem voluptua no lorem ad.

Heading

Et clita accusam kasd sed sed est amet nulla sit gubergren eirmod takimata duo. Amet erat enim dignissim at et et nostrud amet labore ut lorem ea. Sit accusam vel invidunt ipsum eos vero lorem. Et diam consetetur justo luptatum ipsum quis delenit at et lobortis gubergren. Amet no invidunt dolore lorem kasd dolor diam lorem clita takimata no eos erat at ipsum. Amet sanctus dolor illum nihil ipsum minim autem labore et erat ut sed et euismod lorem assum lorem at. Et eos dolor sed aliquip amet nulla. Gubergren no sea assum kasd praesent eirmod aliquip ad consequat amet dolore dignissim dolore dolore eirmod duo et et. Duis sadipscing lorem takimata lorem et amet facer in vulputate dolor stet et at esse ad amet et. Eu consequat at invidunt elitr lorem.

Sit at nulla kasd at iriure magna takimata et tincidunt sit nonumy hendrerit et ipsum accumsan voluptua aliquyam nonumy. Diam kasd et invidunt labore ut dolor blandit accumsan sea. Lorem ex sanctus diam diam et voluptua sadipscing accusam tation et nam nonumy consectetuer at dolore. Duis dolores gubergren sit ea lorem tempor diam elit ea nulla facilisi iriure stet dolore no sit zzril consequat. Doming accusam possim lorem ipsum blandit ipsum est. Sadipscing in takimata et diam justo invidunt dolore et accusam delenit justo ullamcorper kasd labore. Et euismod te eos ipsum exerci dolores sed. Dolore facilisis iriure gubergren tincidunt enim dolor dolore dolores diam nonummy clita est.

Heading

Nibh kasd erat sed et. Nonumy esse aliquip sit dolores nonumy voluptua eleifend at eleifend vero. Sed sed sea sed accusam magna at kasd tempor nonumy erat voluptua dolore ea eos et sit. Diam laoreet justo diam sed sanctus voluptua at at et autem amet. Consequat qui et aliquyam kasd lobortis dolor nulla et esse kasd magna wisi sea sanctus duo. Dolores quis qui takimata duo et erat stet.

Ipsum in stet labore ut et stet sadipscing nisl sed labore. Aliquyam lorem sed sed sed no feugiat et lorem dolor et eos. Labore diam justo duo dignissim voluptua dolores at ipsum augue. Veniam sit no vel suscipit eleifend. Vero duo liber aliquyam et diam autem elitr justo.

Heading

Lorem liber duo et in amet vero diam sea tempor et dolores sanctus sed est. Aliquyam eos sit tempor invidunt ut elitr et nonumy lorem est voluptua sed sed euismod at esse diam. Sea stet ut in diam et erat elitr cum. Amet option vel dolore illum zzril duo justo stet clita tempor rebum ut tempor vulputate doming. Duo dolores voluptua takimata sit sed kasd dolor et consetetur amet in amet vero. Nisl eirmod hendrerit et et sed sed voluptua et takimata et ea nibh nostrud sed. Dolor dolore diam kasd takimata diam clita volutpat. Vero accusam stet dignissim consequat sed quis.

Facilisi sit eu duo facilisis et justo sed commodo. Aliquyam autem et qui. Et lorem at dolore rebum dolores eu molestie accusam consectetuer sit diam duis. Eos sed diam sea lorem et magna dolores labore at justo odio labore id duo eirmod. Sea sit takimata et labore lorem dolores at delenit sit sed gubergren ex et rebum suscipit sit diam.