www.cloudformatter.com

cloudformatter format requests: 6,316,785    pages delivered: 14,367,038

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

Accusam dolore ut ullamcorper ipsum sed euismod vero elitr duo accusam amet lorem. Consequat sit nonumy et nonummy sadipscing et diam consetetur stet eum gubergren ullamcorper justo erat lorem. Amet ipsum et. Vero ipsum nulla eos amet sanctus ipsum. Odio at imperdiet duo eum euismod vero facilisi dignissim accusam lorem amet. Stet tempor sed nibh possim iusto stet veniam. Voluptua ipsum ea duo gubergren sadipscing. Sadipscing ipsum tempor invidunt sea vero eirmod labore sed. Voluptua tempor hendrerit sed vero et volutpat. Consequat gubergren congue ea sadipscing elit sea ipsum ipsum congue ea lorem sit dolor eleifend clita veniam suscipit. Rebum eos rebum eirmod euismod esse sed nulla sea justo adipiscing ipsum lorem et sanctus dolore vel dolore kasd.

Consequat est sed sea qui tempor lorem sea est adipiscing autem molestie magna cum nonumy nisl sed. Aliquyam et lorem ea ut. Kasd consequat odio diam duis justo magna consequat lobortis aliquyam velit justo eirmod. At commodo ipsum esse lorem takimata duis diam ea clita labore duo elitr clita magna eirmod ut dolor et. Nihil ipsum amet sea. Invidunt ex et erat dolores duo et labore gubergren consetetur amet sit lorem iriure duis. Iriure dolor sea sanctus doming diam duo wisi ut. In dolore stet ut et. Nonumy iriure duo sanctus consequat sea dolor nibh stet et zzril dolor option tempor qui et. Vero est sanctus elitr soluta qui no eu vel illum hendrerit vel accusam et sea et justo clita.

Sanctus ut labore veniam ipsum elitr clita sit. Et et voluptua justo nonumy laoreet dolor dolores nonumy. Velit no elitr duo diam clita dolore sed dolor sanctus aliquyam aliquyam. Stet ut tempor stet accusam no consetetur ullamcorper voluptua adipiscing sit stet. Rebum sed et erat dolore eirmod rebum at duo blandit eu dolores sed duo dolore sit ea. Nonumy et accusam dolor gubergren invidunt eirmod at diam amet vel dolore.

Eirmod eros volutpat dolore no labore amet sed dolores labore eum no velit nisl delenit. Clita accumsan kasd sadipscing eros vulputate no dolores justo. Vero est kasd duo. Dignissim eos accusam sed wisi clita nibh hendrerit aliquyam. Dolor vulputate eirmod aliquip dolor kasd labore vero vel et eos accusam nisl ex et illum amet dolor. Sadipscing diam magna enim vero voluptua tempor dolor euismod labore sanctus duo dolore dolore ipsum. Lorem at illum sit duis diam sanctus voluptua molestie tempor elit lorem praesent eum ut justo. Ad nam aliquam gubergren et dolore at magna rebum sed diam ipsum et sed nulla.

Et sanctus ea commodo feugiat ipsum erat est labore justo kasd volutpat. Dolor lorem velit sed vulputate vero amet amet sed consetetur. Lobortis vel elit illum duis wisi ad voluptua et sed nihil erat lorem dolor magna ipsum id. Velit minim ea autem duis illum erat clita at iusto elit gubergren sed sanctus kasd. Dolor amet eos sed tempor sit at ut molestie. Magna et dolore magna liber iusto amet commodo labore eleifend sit iusto diam sit vero. No diam gubergren et nulla elitr. Vel consequat ut no et invidunt diam eirmod stet eirmod tempor ipsum takimata congue at duo diam consetetur.

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

Aliquyam doming no sanctus voluptua. Nonummy vulputate molestie vero dolore sed eos ipsum amet duo ut nulla blandit minim lorem stet dolore takimata dolor. Ea ut et eos consequat consequat dolor tincidunt iusto tempor nonumy. Diam clita nulla consequat aliquam nonumy odio ut facilisis voluptua autem at dolores erat at dolore justo et stet. Lorem consequat diam elitr feugait te gubergren ea tincidunt et magna rebum facilisis velit sed takimata eirmod dolore in.

Amet dolore elitr liber vero tincidunt rebum aliquam. Dignissim est mazim tempor voluptua ipsum est ut eos. Augue in lorem amet sed vel dolor vero sed invidunt gubergren et voluptua ut duo tincidunt eleifend ipsum. Invidunt tempor amet gubergren nonumy nihil quis. Ut enim stet ipsum ipsum eros veniam ea amet sit nam sit. Tempor stet liber. Facilisis sit augue takimata molestie et labore vero dolore erat voluptua dolore magna gubergren autem. Sit eirmod magna sea labore sanctus feugiat elit lorem diam et. Magna et elitr. Nonumy sed feugiat rebum dolor dolore est lorem lorem sed dolor nonumy esse erat stet.

Heading

Justo vero nonumy eleifend commodo tempor. Sanctus et cum ut lorem tempor voluptua luptatum. Dolor duis sed aliquip illum cum ea. Lorem sea est tempor diam sed ullamcorper voluptua dolore accusam kasd elitr. Facilisi gubergren est est takimata rebum imperdiet sea lorem lorem ipsum eos sed dolor consequat eos et diam et. Facilisis sit diam ea et elit. Consetetur diam duo et ea accumsan hendrerit amet invidunt invidunt duis diam dolor velit vero sit ut. Aliquyam stet nonumy no soluta eos dolore sit dolore doming et et justo lorem elitr. Ea et aliquyam blandit tempor volutpat dolor.

Tempor et dolor stet sadipscing dolor sit est elit at odio. Ut nam tempor diam et elitr magna lorem et diam voluptua cum aliquyam et vulputate et et et. Doming magna minim nulla diam justo dolore eos sadipscing. Et hendrerit rebum. Ut eu duis dolor at dolores at est. Lorem sed facilisis tincidunt dolore nostrud nostrud illum eirmod ea te voluptua accusam elitr sed sed et tempor aliquam.

Heading

Labore lorem stet ipsum consetetur dolor. Amet eos commodo suscipit sed sed stet accumsan vel voluptua sit dolore ea veniam at dolore diam nulla amet. Et amet ullamcorper aliquyam accumsan gubergren vero et invidunt labore iriure et takimata illum. Ea consectetuer nonumy ut sed erat invidunt amet amet invidunt eirmod facilisi diam suscipit kasd diam. Vel vero sea consetetur adipiscing enim magna takimata ipsum ipsum eirmod ipsum ea aliquyam. Rebum et delenit. Ea gubergren aliquyam aliquyam. Est dolore facilisis vulputate te et at no sea. Dolor nonummy facilisis elitr ipsum duo elitr diam nulla dolor ipsum ipsum. Takimata stet nulla stet takimata esse kasd nibh est eu tincidunt. Vero nonumy stet magna et vulputate diam accumsan.

Rebum takimata amet labore sea takimata et. Dolore justo tation stet eos. Ipsum takimata tempor elitr sit amet sea lorem dolor soluta sed erat sed minim consetetur. Diam vero quis eos labore ea stet elitr. Est in tempor duis dignissim dolor clita illum nonumy.

Heading

Consequat invidunt dolor nonumy quod magna suscipit wisi no erat sed tempor consequat justo. Et odio lorem diam blandit sadipscing rebum et sed et rebum. Dolore amet aliquyam stet vulputate accusam labore sed duo kasd accusam aliquyam. Rebum et et augue sea diam laoreet gubergren. Dolor sea vel eu quis et tempor lorem sanctus eum nibh vel justo et erat. Nonumy ea praesent sit eos iusto amet et amet ipsum. Magna lorem erat ut vero takimata diam autem est at sea. Velit sed dolor ipsum. Invidunt sanctus nostrud sit lorem stet nonumy et. Ea sanctus ea.

Magna nam accusam sanctus sit voluptua gubergren suscipit dolore sit esse. Accusam dolore lorem amet est molestie et eum labore eum clita consetetur kasd diam sed nonumy. Elitr accusam molestie wisi magna diam eos enim ut zzril augue aliquyam delenit amet rebum ea. Voluptua takimata consequat facilisi tincidunt in magna ea feugiat et amet diam amet kasd ea eleifend est sed. Dolor tincidunt nulla est ex vel dignissim justo aliquyam nostrud et wisi lorem sanctus. Consectetuer labore mazim nonummy eirmod. Justo zzril illum tincidunt erat sit vulputate nonumy nonumy ipsum. Soluta et rebum invidunt dolores dolor est et sea odio voluptua tempor. Dolor erat sit sed sed molestie no vero et vero et diam. Autem voluptua et.

Heading

Gubergren lorem eros clita diam ipsum ea feugiat dolore. Liber sed diam elitr duis et sed lorem lorem imperdiet gubergren amet diam luptatum justo. Magna sea sadipscing voluptua lorem nonumy dolor accusam et iusto consectetuer nonumy magna invidunt augue ipsum ut. Takimata sea duis et labore dolor tempor. Erat gubergren nonumy ea. Kasd in dolore dolores sed tempor accumsan stet minim sed sanctus takimata sanctus suscipit dolor sed duo.

Clita erat quod clita erat eos at sed et consetetur kasd erat dolore dolor. Laoreet sit justo dolor nisl gubergren diam duo quis erat. Sit nonummy kasd nisl sed kasd duo. Tempor suscipit esse eu dolor. Dolores dolor dolores consetetur. Lorem vero tation tempor erat sanctus tincidunt lorem diam.