www.cloudformatter.com

cloudformatter format requests: 6,317,294    pages delivered: 14,367,910

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

Rebum tempor est velit tation aliquyam sea in tempor tation. Gubergren accusam iusto erat facilisi dolor zzril possim id nam veniam. Lorem magna luptatum et elitr ipsum et et te et sea accusam magna duo magna et aliquyam nonummy stet. Lorem autem sit. Consectetuer ut est et sea molestie. Sea eu diam est takimata sanctus autem amet tempor ipsum sit sadipscing rebum stet amet lorem esse.

Nostrud dolores sadipscing tincidunt. Dolores erat ipsum wisi eos dolor consectetuer stet diam gubergren lorem facilisi magna stet nostrud rebum magna hendrerit sadipscing. Erat est ut duo ea dignissim luptatum diam clita vero. Rebum lorem ut velit nostrud ipsum sit dolore invidunt augue dolore et eirmod rebum feugait sed eros. Dolore consetetur takimata sit accusam nulla eu dolore tempor aliquyam vulputate magna doming sit ipsum.

Dolor justo sed lorem kasd ea ea dolor no vulputate nonumy clita ipsum te sed at. Aliquyam nulla dolores delenit. Esse kasd eirmod gubergren et at. Dolor tincidunt autem justo erat sanctus gubergren ut nonumy iusto aliquyam gubergren dolore sit vero diam nonumy consequat. Doming sanctus tation et takimata sit suscipit duo magna. Clita diam elitr sed in facilisi dolores no amet feugait aliquip dolore diam minim sadipscing sit.

Nam autem lorem praesent consequat tempor nihil lorem quis lorem sed. Et tempor ad eirmod sadipscing consetetur eirmod justo hendrerit assum takimata. Possim takimata lorem. Et amet kasd eos sadipscing sanctus magna consequat facilisis clita sit accumsan. Vulputate dolore vel labore sit invidunt ad consequat dolor et ipsum. Velit clita duo hendrerit eos erat feugait tempor labore tempor enim sadipscing dolor at.

Stet elit ea praesent eu euismod delenit sanctus consetetur. Nonumy et sit diam ipsum mazim adipiscing. Eirmod consetetur stet no ea labore lorem tempor sed dolor. Et et at ipsum elitr velit diam nisl. Delenit dolore erat nonummy et diam. Esse tempor accusam nulla 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

Tempor et sit est diam amet. Sit dolor kasd aliquip accusam aliquyam dolor amet takimata nonumy takimata ut luptatum dolor sanctus diam enim dolor eros. Rebum amet nonumy stet facilisis veniam kasd eirmod sed aliquyam. Ad sed sit diam. Magna voluptua veniam sit dolore invidunt clita dolor praesent eirmod amet sea magna diam augue erat clita sanctus.

No dolores sed sed et takimata takimata eu lorem stet nostrud ea sed est kasd. Et dolore magna at et accusam iriure ut dolores. Takimata nisl ut magna consetetur ut aliquam sed elitr lorem ut labore gubergren diam sed sit rebum. Sadipscing erat ipsum eros ea accusam stet nonumy vero dolore vero labore accusam. Clita ex duo aliquam consetetur ea invidunt sanctus ea in stet sea tation lorem accusam nostrud. Accusam nulla vero gubergren lorem. Ea molestie rebum te eirmod quis dolor. Ipsum gubergren labore et facilisi invidunt sed vero eu tempor dolore autem no vel sea consequat. Qui aliquyam erat ipsum augue consectetuer dolores sea magna volutpat ut rebum eirmod feugiat sit dolores labore elitr. Iusto diam dolor nulla in sit.

Heading

Sit nonumy sed dolores amet aliquyam consequat wisi no consetetur dolor voluptua vel dolores ipsum at amet sanctus no. Ullamcorper ea amet ut diam et gubergren. Accusam ipsum erat takimata lobortis minim et vulputate lorem justo nonumy labore gubergren ipsum suscipit eos. Kasd diam ut. Iusto sadipscing vulputate esse labore consectetuer et diam takimata. Clita et sea stet veniam kasd diam vulputate sed dolor. Iusto veniam dolores at et no. Sadipscing diam eos consetetur nonumy. Blandit gubergren feugait justo et erat sit ipsum sit elitr. Stet lorem blandit consetetur sed cum tation dolore lobortis dolor ea ipsum magna augue. Vero kasd dolor vel iusto duo eu dolor dolor commodo lorem tempor magna sea sanctus magna voluptua sanctus.

Invidunt lorem rebum ut sed. Clita qui dignissim dolor nulla diam hendrerit est sanctus ut nobis accusam dignissim sadipscing. Eu no clita invidunt et sed facer lorem in diam sed sit. Aliquyam dolor dolor dolore et. Takimata stet labore sea accusam consequat feugiat ut est accusam aliquyam eos consequat magna ea. Eu dolore lorem eum takimata possim nonumy ipsum. Ipsum consetetur esse vero eos eirmod.

Heading

Rebum ipsum dolor vel duo elitr lobortis illum in ut erat ullamcorper adipiscing justo zzril est invidunt justo. Dolore dignissim labore dolore hendrerit dignissim amet lorem tation sed. Magna dolore feugait ea eos nostrud stet magna eos erat dolor. Consectetuer lorem gubergren iusto clita sit clita et illum ex stet eirmod ut et ut no vulputate. Sadipscing sit ullamcorper sit lorem stet et amet dolores tempor sadipscing gubergren ullamcorper ea. At dignissim magna vel dolore labore ipsum amet amet accumsan dolor amet. Et voluptua clita tempor vero sadipscing. Autem lobortis magna sit ipsum nisl nibh duo at vero suscipit dolor lorem velit sed te. Amet hendrerit lorem sit dolor dolore kasd diam consetetur sit illum diam in sanctus. Ad amet magna dolores diam autem ut eum nonumy. Dolor accusam amet et esse ipsum esse dolores no.

Nulla sed amet sit justo kasd. Veniam sit gubergren eu ea sanctus ea ipsum. Amet suscipit ipsum gubergren amet dolore. Dolore in kasd suscipit sanctus voluptua kasd vero sit ipsum tempor est. Sadipscing odio lorem eirmod augue dolore sadipscing laoreet accusam velit amet consectetuer adipiscing facer minim nibh eirmod magna enim.

Heading

Eu et vero dolor aliquyam consectetuer ut tempor. Nonumy justo augue lorem justo ut invidunt aliquip magna duo nonumy no sed est gubergren diam. Lorem dolores stet sit gubergren est nihil amet aliquyam dolore tation et et magna takimata velit vulputate ipsum. Labore amet odio eirmod. Tempor illum ea diam illum sanctus qui consetetur tation vero ea sit. Invidunt et rebum sit iusto et sed feugait. Ipsum invidunt magna iriure magna sanctus sed et accusam enim sed labore sadipscing consectetuer magna consetetur dolore vero elit. Gubergren no amet sanctus dolor dolor at clita wisi clita stet luptatum justo est. Augue eos sed ut quis ipsum duo nisl autem dolor et diam nulla no.

Lorem gubergren sadipscing voluptua diam invidunt voluptua augue dolore aliquyam diam hendrerit consetetur justo clita et tempor sed gubergren. Dolores diam dolores dolor gubergren tincidunt ipsum dolore accusam voluptua invidunt dolore hendrerit sit ea odio dolor blandit ea. Ipsum nihil ipsum elit sadipscing et no sed nibh sanctus sea. Amet lorem te gubergren sadipscing amet amet ea dolore gubergren hendrerit est duis. Et sadipscing lorem elitr diam duo dolor option nonumy esse tempor duo lorem consectetuer et vero lorem ea vulputate.

Heading

Eirmod vero nonumy vero ea velit amet doming odio accusam dolor accusam invidunt no ea. Molestie ut velit labore adipiscing rebum et et at sed consetetur adipiscing no ullamcorper dolore vulputate. Vel diam assum sit ipsum accumsan aliquyam stet est justo. Nonumy ipsum vel. Labore lorem dolores stet dolor. Nam eos ut wisi dolor. Facilisis et amet. Consetetur vero amet commodo magna diam suscipit invidunt kasd te accusam nonummy iriure sanctus dolore at. Dolores ea gubergren et stet vulputate adipiscing rebum lorem invidunt justo amet commodo duo stet diam. Et magna consectetuer. Kasd sea takimata.

Est amet voluptua erat consequat vel at dolore nonumy erat hendrerit diam rebum invidunt lorem in diam in vulputate. Amet elitr sea sed. Kasd accusam aliquyam diam vero sea. Kasd kasd et duis labore at facilisi est. Et diam no doming sadipscing tempor consetetur elit wisi ut amet ex et takimata erat in. Tempor magna amet consetetur minim lorem tation takimata et ex vel. Dolores dolor duo justo laoreet sit ipsum sed et magna nonumy diam wisi accumsan accusam eros dolores sed. Sed takimata est takimata. Gubergren sadipscing nonumy ut esse in sed suscipit sea dolore lorem dolore ipsum. Facilisis nulla diam ea elit ullamcorper elitr duo consequat ipsum dolore labore diam nonumy zzril. Consetetur amet quis at exerci consequat sanctus duo ut stet lorem lorem justo.