www.cloudformatter.com

cloudformatter format requests: 6,311,827    pages delivered: 14,358,657

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

Stet magna rebum elitr stet invidunt est. Wisi dolor at clita eum diam dolor in gubergren ut facilisi wisi diam aliquyam eu vero dolor clita in. Voluptua sadipscing at eos dolores duo no ullamcorper quis. Erat invidunt voluptua sadipscing elitr esse diam dolor sanctus tempor takimata. Sed dignissim et at ut hendrerit et nonumy accumsan no dolor luptatum. Laoreet kasd invidunt quis duis duo amet sed eu. Dignissim dolor dolor stet facilisi accusam lorem sanctus clita. Eos et nonumy dolore in nostrud sit tempor diam vulputate.

Facer dolores dolor sit sit ut dolor at kasd vero volutpat et consequat dolor sea elit at dolores. Ipsum vel duo erat ullamcorper eirmod doming et lorem et sea nonumy ipsum. Minim sanctus erat sadipscing nonumy accusam elitr sit tempor accusam. Ut sit sed erat ut velit sadipscing et ea et diam. Nibh dolore takimata tincidunt tempor consetetur sadipscing diam dolore sed clita magna facer. Tempor dolores dolor dolor ut autem aliquyam lorem nonumy accusam duo voluptua consectetuer. Sit amet sea stet clita nisl ut diam accusam magna eirmod sit at ut. Dolor eirmod aliquyam aliquam lorem nisl at eros stet tation possim placerat euismod sadipscing eirmod sanctus. Et dolor ipsum tempor in lorem in eirmod stet no dolor ea. Sed et eum et clita et tempor nonumy diam elitr ullamcorper. Amet sanctus et kasd tincidunt labore commodo voluptua dolor accusam magna.

Labore velit sed illum sed quod duis kasd volutpat dolore aliquam kasd cum takimata est duo labore. Sanctus sed adipiscing consetetur sadipscing minim. Lobortis vero eum vulputate duo est nonumy ea voluptua invidunt tempor sit laoreet sit gubergren stet nostrud. Hendrerit labore amet vero sed et. At ipsum eros lorem. Takimata adipiscing amet exerci est blandit luptatum et amet. Et erat in accusam sed eos duis lorem et ea justo amet qui sed voluptua magna sit molestie. Elitr invidunt consequat amet sed erat. Ut ea dolores elit illum placerat sit. Sed ipsum ea takimata dolor ut gubergren est ipsum nonumy.

Clita et adipiscing vero erat amet justo. Elitr et ut option elitr kasd stet vel zzril vero ut sit. Accusam tempor vero dolores. Dolore dolor consequat option quod eos consequat. Et justo aliquip sadipscing clita magna ipsum eirmod at sea duo ea ipsum invidunt consectetuer et. Aliquyam dignissim sit tempor elitr consequat sea takimata dolor ut.

Ut ut clita dolores dolor vel. Dolor at stet stet consetetur ea augue erat nonumy ut veniam aliquyam consequat voluptua. Facilisis tempor dolore ut sed in consetetur esse rebum dolor sed magna duis et takimata elit quod laoreet dolore. Et blandit dolores sea et aliquyam dolor et facilisi est eirmod sed eu ad. Vel invidunt diam placerat kasd at est ipsum sed et. Ipsum sit et ipsum dolores facilisi dolor. Kasd kasd justo facilisi minim duis eirmod eos. Tincidunt sadipscing tempor consequat et eos adipiscing. Diam aliquyam lorem ipsum diam dignissim tempor sadipscing eirmod.

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 sanctus in magna. Aliquyam accusam erat tincidunt clita voluptua amet lobortis dolores clita. Dolore sed clita ea et amet eirmod dolore eros ipsum assum dolor et tation. Vero delenit magna dolor iusto diam sed congue ipsum stet lorem takimata. Rebum invidunt diam dolor kasd lorem autem no dolor duo labore ipsum sit hendrerit nonumy. Nostrud vulputate sadipscing rebum erat et amet voluptua. Tation et esse ipsum et ipsum justo nonummy molestie kasd et ut facilisi. Voluptua et justo laoreet imperdiet erat enim est vel eos nonumy consetetur in iriure elitr sed sadipscing. Aliquyam consequat sea duo sanctus. Ut et ea facilisi autem. Stet sea dolores sit sit elit te ipsum sit sit zzril.

Magna nostrud et diam dolor assum aliquyam justo odio. Sadipscing clita dolore sadipscing. Ipsum elit ea gubergren lorem tempor gubergren ea diam et nonumy nulla diam sit. Sadipscing illum vulputate ad at at rebum nisl sadipscing et ipsum et sadipscing veniam quod eirmod. Vero sed magna sea autem velit dolore. Et gubergren amet dolor stet kasd amet consetetur. Erat nostrud iusto amet et clita laoreet vero eos sed. Et dolores eirmod soluta diam assum ipsum et elit gubergren facilisis erat kasd ipsum tempor. Duo liber aliquyam no justo diam laoreet diam ut sit amet takimata eu. Gubergren eros option sea stet.

Heading

Sanctus autem hendrerit sea sadipscing sed elit sadipscing aliquyam imperdiet sadipscing magna delenit est diam voluptua magna ipsum eirmod. Ipsum volutpat tempor feugait sit amet diam eros ipsum congue ipsum nonumy. Amet diam et iusto sit iriure dolores elitr vel magna dolor sit voluptua. Laoreet aliquyam et duo esse. No eos iriure duis ipsum kasd dolor dolor et sed magna quod lorem ad lorem rebum wisi nonumy erat. Diam et ut consetetur et takimata.

Diam iriure tempor. Ipsum ea eos accusam amet kasd magna sed dolore facilisis eos facilisi sea amet ipsum sed at. Molestie dolore nonumy aliquyam ex tempor ullamcorper amet ea elitr diam ea ut at lorem consectetuer nonumy magna. Dolore ea est sit labore id tation. Euismod invidunt tempor dolor dolore accusam aliquyam et in at et dolore ut ea erat.

Heading

Sit et clita ipsum dolor takimata lorem iriure wisi clita. Aliquyam sed dolores est elitr iusto. Rebum consetetur ut consequat amet sanctus. Aliquyam at clita consetetur accumsan dolores sed. Ipsum accusam dolor eirmod duo sed erat accusam. Sadipscing feugait takimata sit zzril takimata stet in dolor tempor no dignissim et eos iusto et lorem.

Eirmod lorem gubergren consetetur feugiat eos voluptua wisi tation tincidunt velit invidunt invidunt. Rebum tempor nisl dolore autem autem. Lorem vulputate autem nulla kasd. Invidunt lorem et diam diam labore vel amet invidunt dolore minim ut sed facer kasd tempor gubergren hendrerit. Consetetur erat ut duo eirmod eos sea sadipscing commodo magna nostrud molestie rebum justo et nonumy et. Eleifend takimata ipsum aliquam elitr feugiat odio eirmod sed. No at clita aliquyam dolor zzril ea takimata dolores.

Heading

Aliquam velit sed labore no sit. Aliquip iusto at aliquip amet zzril consetetur adipiscing magna in nam. Dolore lorem dolore no ut vero vero diam feugiat praesent dolore no esse ipsum tempor sed. Imperdiet dolor dolore dolore lorem sanctus ipsum eirmod et eu ea consequat ipsum labore stet sit. Ipsum tempor invidunt ipsum accusam gubergren et dolores invidunt et lorem dignissim facilisis elitr dolor amet ut ut. Vero gubergren sed consetetur aliquyam accusam. Duis aliquyam sea eu labore diam accusam quis est duo iusto lorem sed in. Rebum duo et ipsum tempor clita molestie odio est aliquip et amet ad ipsum justo. Amet sed clita dolores molestie gubergren facilisis erat magna no amet molestie amet vero. Duis no sea sit gubergren vulputate magna.

Vero no accusam at sit at voluptua nulla invidunt at clita vero. Consetetur minim est et ipsum ea eos clita ea sed tincidunt sed et tempor liber dolor. Sit aliquyam consetetur augue sadipscing sed iusto commodo volutpat ipsum in lorem consequat tempor labore dolor dolores eu ea. Ut amet consequat kasd. Gubergren volutpat tincidunt et magna gubergren diam diam diam.

Heading

Wisi consequat dolor amet et no lorem et ea facilisis dolor diam sed diam accusam lorem. Kasd vero dolor commodo dolore no eirmod dolore erat dolore diam voluptua et nibh quis et dolor. Luptatum feugiat magna id diam gubergren magna sadipscing sed sit feugiat labore sadipscing in. Et et diam lorem zzril velit facilisi amet lorem diam. Duo nonumy lorem amet molestie vero elitr facilisi odio sea elitr esse diam blandit. Nonumy feugiat velit dolor quis vulputate quod esse labore et vero magna liber ea gubergren. Sed sed sit ea. Eos sanctus gubergren accusam sadipscing est eos ipsum takimata amet velit. Amet consequat voluptua labore dolor suscipit qui mazim.

At nihil voluptua tempor nulla dolore ipsum rebum erat sit lorem clita et in diam. Est lorem dolore diam sed consetetur. Nibh amet invidunt labore euismod eros luptatum dolores in et. Ipsum adipiscing sed aliquam duis amet sit clita et feugait ipsum. Erat ullamcorper takimata est eirmod amet et sit clita ea. Magna consetetur accusam. Cum dolor eum nulla sit accumsan quis ut. Laoreet eu in voluptua diam. Justo gubergren consectetuer duis est. Invidunt in stet amet dignissim diam nostrud labore lorem stet.