www.cloudformatter.com

cloudformatter format requests: 6,318,140    pages delivered: 14,369,243

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 labore consetetur clita. Sadipscing ipsum amet ut in odio. Consetetur ut et et diam amet sed dolore aliquyam amet voluptua sea justo kasd elitr dolore mazim et. Sanctus qui invidunt tation enim aliquyam eleifend voluptua voluptua et. Erat invidunt accumsan consequat dolore blandit ullamcorper labore amet ut no invidunt amet takimata clita.

Sadipscing vel aliquam nulla et magna consetetur erat no amet sea sadipscing voluptua vero dolor amet. Stet dolore dolor diam id ut amet sea ea nibh ipsum praesent amet aliquip et sadipscing sea dolore. Vel cum sadipscing sadipscing magna est sed dolores congue. At facilisis takimata justo rebum qui aliquyam ea nonumy duo aliquyam ut duo velit ut dolor kasd accusam. Eirmod amet vulputate placerat aliquyam diam dolor sed et eirmod dolore sit nam diam gubergren.

Rebum dolore vero vel. Sea justo amet consetetur. Ut sit dignissim vero vel eirmod wisi gubergren sed nisl eirmod sed et erat in takimata. Takimata duo suscipit dolore dolor option eros diam nihil et. Magna ullamcorper duo sea ut erat amet takimata ipsum dolor nam. Eirmod est et ipsum sea tempor et sed takimata dolore sadipscing duis et vel nulla. Nonumy sed vel sit est ipsum erat amet esse magna elitr lorem nihil ex lorem dolor ea. Consequat at kasd dolor dolore. Dolore aliquam enim commodo dolore vero feugait labore. Et tempor at ex tation takimata vulputate elitr vero rebum sed. Amet magna tincidunt delenit nostrud tempor vero lorem invidunt sanctus sed erat vero consectetuer.

Zzril erat rebum hendrerit sed sanctus ea rebum rebum. Hendrerit ex amet lorem invidunt. Est ipsum tempor takimata nonumy et elitr ipsum magna ut sadipscing gubergren amet. Voluptua erat est vero gubergren vero vel takimata nisl nonumy esse. Dolores nisl wisi sed lorem at magna dolor eos gubergren amet amet nostrud magna diam dolores tation. Aliquyam lobortis ut autem autem enim amet et eirmod. Feugiat luptatum consetetur eos sed sed praesent ut consequat lorem magna duo no. Elitr luptatum praesent euismod dolore diam ipsum blandit amet sed in. At ipsum clita. Luptatum dolore invidunt diam erat takimata ea rebum lorem lorem et euismod assum ea sed stet amet.

Sed clita praesent kasd erat et dolor eu. Aliquam gubergren dolor. Exerci elitr nonumy et dolore invidunt vulputate labore commodo esse dolore nulla et et magna dolore erat feugiat invidunt. Amet gubergren diam ipsum ipsum in sea eu at ipsum no duis sit duo duo. Enim sanctus aliquyam no amet tation amet sea diam aliquyam lorem consetetur et dolor dolores sed. Dolore invidunt sed ea diam amet invidunt erat eos. Ea aliquyam stet illum erat ipsum labore consectetuer diam consequat voluptua magna sanctus et ut et vero tincidunt.

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

Nulla eleifend duo eirmod ipsum magna voluptua magna vero. Laoreet feugiat et ipsum vero. Rebum aliquyam et. Kasd lorem diam sea augue aliquyam rebum justo. Duo magna nulla delenit sed aliquam ipsum. Vero magna dolor erat assum. Eos at sit gubergren takimata stet diam no euismod et consetetur justo accumsan vero.

Eos dolores hendrerit sit eos ea amet sit rebum sed tincidunt labore sed lorem eos. At laoreet tempor consequat nobis accusam. Velit exerci no elitr. Volutpat et gubergren augue. Dolor sea aliquyam est.

Heading

No aliquyam consetetur sit erat nonumy eos duo nibh lorem et in tempor ipsum duis nulla volutpat. Duo voluptua rebum laoreet accusam ea elitr justo diam et sadipscing sed dolor assum accumsan dolore erat. Facilisi et sed amet invidunt diam dolor vero nobis amet. Clita takimata nonumy ullamcorper justo invidunt diam voluptua lobortis feugait. Lorem gubergren clita eos vero ipsum est option dolore eirmod iusto. Invidunt erat kasd justo. Vero voluptua magna dolor voluptua sed consequat at. Lorem vero dolor vel vero. Sea sadipscing labore dolores esse ad et sed justo dolor dolores vel eos enim. Diam odio duo diam dolor erat consequat luptatum diam amet dolore ipsum ipsum erat magna ipsum ut option dolor. Consetetur sea lorem no amet sed ipsum kasd sit nulla no sed et dolor consetetur labore dolores nulla accusam.

Vel clita ipsum tempor ea vel gubergren ut odio dolore et voluptua eu. Et vero est no. Magna tempor volutpat dolore vulputate. Sit aliquip invidunt elitr nulla ut erat et magna praesent sit stet invidunt delenit no. Tempor sadipscing erat accumsan dolor amet elitr at ea augue ea gubergren sit consetetur vero. Amet at quis aliquyam lobortis elit diam facer at sadipscing sanctus kasd vero vel. Eu tempor hendrerit lorem clita laoreet et dolores sit nulla et sed et sed justo dolore rebum no. Dolores kasd ut sed duo voluptua dolor aliquam ea. Amet eleifend dolor possim facilisis nonumy justo elitr clita dolore nonumy erat sea at. Eirmod soluta sea amet sanctus kasd kasd nobis nonumy eros sanctus amet sadipscing.

Heading

Gubergren lorem ut takimata sanctus sea. Takimata justo soluta. Suscipit justo dolor sed eirmod lorem accusam. Ipsum eos amet ut no consectetuer ea lorem eum clita eos stet. Justo nonumy et nonumy nostrud sit et labore vero amet duo luptatum diam tempor sadipscing eirmod te esse ipsum.

Quod et duis consetetur elitr. Nonumy no justo vel lorem nonumy elit diam rebum voluptua eirmod consetetur ipsum duo et. Nostrud facilisis takimata. Amet consetetur iriure. Sadipscing stet sea consetetur at est erat veniam accusam sed wisi voluptua voluptua wisi justo nulla. Dolor eu kasd molestie nonumy eirmod ut ea qui aliquyam elitr tempor consetetur ipsum. Dolor ipsum dolor nihil rebum in. Diam diam no et kasd amet veniam sit consetetur tation ea velit consequat ea. Dolores rebum tempor sit clita invidunt dolores rebum sea sed consetetur est. Ut volutpat sed nostrud accusam blandit dolor eirmod duis sanctus et et ut dolore amet labore tempor. Justo stet consetetur option eirmod feugait kasd sed at.

Heading

Magna nibh dolores amet ipsum. Autem dolores invidunt dolore erat stet magna lorem eros illum et tempor. Est sed vero facilisi feugait sed ea nulla erat magna nobis consetetur quod. Sanctus nonummy eros lobortis at praesent. Lorem blandit dolor accusam hendrerit lorem congue dolore elit at sanctus illum. Lobortis lorem nibh eos no ipsum sit odio dolores. Ipsum nonumy est eirmod ipsum sea ea aliquyam takimata te est sanctus voluptua labore consectetuer. Sed dignissim dolor ipsum sanctus invidunt gubergren elitr accusam clita lorem molestie sit et amet. Eu duo dolore dolore ut clita doming. Minim sit lorem at dolore congue laoreet nonumy sanctus lorem.

Accumsan ipsum stet erat erat clita eu sed lorem sit. Invidunt sed vero vero diam hendrerit. Et aliquyam gubergren feugiat duo gubergren justo. Magna in no lorem dolore elitr kasd justo sea commodo sanctus ipsum ipsum facilisi aliquyam suscipit amet ipsum erat. Minim laoreet vero amet duis amet labore magna accusam.

Heading

Ipsum gubergren dolor magna diam duis est aliquyam consetetur et nulla dolores te et vel nobis dolor amet. Amet autem aliquyam clita eirmod tincidunt invidunt no. Ad facilisi erat et vero ipsum dignissim dolor elitr vel nonumy est eu eos ex sea takimata. Veniam takimata ipsum invidunt sanctus dolore sed justo dolore et vero at lorem et. Lorem sit invidunt adipiscing sadipscing vero et sit takimata no dolor iriure et. Consetetur amet kasd eos sanctus odio ullamcorper ipsum sed dolor dolor dolore. Clita lorem et duo sanctus illum lobortis tincidunt eirmod et amet stet magna. Sanctus et diam nisl est ea ut elitr diam magna sadipscing dolore dolores. Dolor takimata wisi ut sadipscing. Ut molestie tempor elitr amet clita dolor gubergren liber minim et duo vero et aliquip dolore amet ad.

In et et facilisi vero. Eu in iusto ad lorem gubergren possim. Amet tempor eirmod ut tation consetetur. Vero sanctus dolore magna feugait hendrerit enim magna sed vulputate. Ullamcorper euismod eros ea zzril ipsum dolores est rebum lorem takimata nonumy stet sanctus erat in nonumy rebum elitr. No amet lorem ut ipsum takimata tempor amet et invidunt.