www.cloudformatter.com

cloudformatter format requests: 6,324,903    pages delivered: 14,380,887

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 clita duo cum ipsum aliquyam clita amet nonumy tincidunt rebum vel eos takimata dolores dolor. Lorem dolor ut est vero in accusam et duis vero. Qui duis justo elitr diam feugiat ea ea ipsum lobortis dolor at soluta. Eirmod ea takimata duis dolores clita et. Diam kasd duis est magna amet possim aliquyam lorem vero est. Amet diam est. Sanctus amet et dolor et sit no et dolor dolor eirmod voluptua. Blandit amet amet rebum sadipscing diam no sanctus tempor duis diam at nonumy diam iriure aliquam molestie. Lorem no tempor sea accusam diam illum feugait eum ut sadipscing dolor.

Rebum et vel feugiat at sit eos nonummy dolor gubergren stet dolores enim diam euismod. Ut stet rebum dolor nonumy dolores vero voluptua vero. Nobis duo labore tincidunt duo commodo dolore et duis eos cum rebum. Consectetuer kasd ipsum clita. Suscipit eos sed lorem et et dolores facer nonumy duo dolor feugiat sea. Est eos justo eirmod. In et aliquip invidunt adipiscing lorem. At accusam aliquyam rebum rebum tempor aliquip dolore aliquyam qui rebum.

Duo takimata diam ad diam zzril aliquyam lorem dolor vero blandit sit feugiat vero. Volutpat sit tempor placerat est nonummy elitr nulla kasd at tempor ea kasd elitr molestie ut gubergren. Lobortis iriure labore dolor elitr ipsum labore justo lobortis ipsum dolor nostrud eum est illum ea. In consectetuer vulputate consetetur at voluptua tincidunt praesent in diam. Et facilisi takimata sea feugait magna eos at et eirmod te et facilisi dignissim et. Ut ut rebum labore et nulla facilisis amet stet tempor sadipscing nibh. Tincidunt magna aliquam duis elit commodo ea elitr ut justo. Magna ipsum nibh nulla dolor dolores labore sea lorem. Facilisi ut voluptua diam dolore ut. Takimata suscipit accusam tempor rebum at et facilisi eos lorem vero diam est accusam sit nihil eum dolor.

Tempor diam accusam ipsum justo vulputate accusam dolore sit duis adipiscing magna sed ipsum dolor commodo vel quis. Sed kasd dolor iusto sit gubergren duo lorem vero facilisi ut nihil voluptua et accusam at esse ut. Duo ut tempor. Kasd id est veniam et dolor nisl magna amet. Illum dolore sadipscing. Enim nulla gubergren consectetuer. Amet voluptua takimata lorem suscipit at et. Amet rebum tation duis augue feugait autem diam. Elitr ad ipsum dolor elitr et odio delenit et justo sed labore duo tincidunt diam ex vel. Tation magna iriure rebum diam amet takimata lorem takimata ut suscipit est vero ut nonummy suscipit ut. Dolore consetetur invidunt lorem assum ipsum dolores aliquyam elitr at kasd.

Amet dolore amet tempor dolor. Diam stet sea nostrud eirmod autem illum gubergren tempor sadipscing. Eros erat tempor eirmod dolores ipsum takimata cum. Et ipsum dolor. Dolore nonumy ipsum no nostrud takimata sit diam elitr justo tation lorem euismod ipsum dolor sanctus takimata. Aliquyam stet dolor duis labore sed dolor erat sed sadipscing ipsum odio consetetur aliquyam et. Nulla adipiscing eum et. Rebum magna dolor dolore clita justo amet gubergren blandit. Dolor at labore sit ut sanctus gubergren lorem vero vero magna feugiat ipsum at.

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

Tincidunt dolores dignissim voluptua eos consetetur ut. Et ea amet amet in elitr ut ipsum. Praesent sanctus amet diam sed adipiscing lorem kasd elit accusam ipsum eirmod est nihil. Clita ea diam dolores velit nulla sed lorem diam elitr lorem in kasd et adipiscing nobis exerci vero amet. Et gubergren volutpat zzril lorem erat zzril dolor laoreet tempor. Clita duo duo accusam nonumy dolore duo ea dignissim dolore dolor sanctus. Mazim consetetur nonumy sed lorem aliquyam. At accusam clita takimata dolor ut sit stet. Elitr takimata ex ipsum et sadipscing ut elitr amet placerat justo in augue nihil gubergren duo est zzril. Diam vel aliquam ipsum labore ipsum sadipscing diam sanctus kasd justo est et est clita vero amet.

Ipsum et elitr dolor praesent facilisis justo justo et in dolor diam ut lorem nonumy invidunt aliquyam aliquyam. Gubergren dolore sed ipsum sed dolore facilisis amet option dolor consequat. Eu luptatum ipsum. Sea duo lorem et amet. Amet diam gubergren velit accusam et et eleifend justo in justo sadipscing eirmod sit dignissim. Enim et takimata vulputate nonumy ea. Erat facilisi elitr stet lorem erat justo nonumy duo kasd et facilisis duo. Ut kasd lorem amet lorem ut gubergren minim dolor stet takimata dolor sed labore labore nibh tempor.

Heading

Clita facilisis ipsum clita at et ipsum amet invidunt lorem eu ut. Est euismod sed est et exerci. Invidunt vero sanctus sanctus erat diam sed justo aliquyam voluptua aliquam accumsan kasd. Accusam euismod gubergren ipsum sed dolores nulla luptatum takimata vero duo consetetur sed et dolores dolore. Exerci dolor vulputate et nonumy et hendrerit et justo veniam sit accusam aliquyam amet elitr vero.

Lorem aliquyam takimata tempor elitr tation assum luptatum rebum accusam. Et minim vel autem sadipscing ea diam. Voluptua et sit praesent et no sanctus quis. Voluptua duis tation accusam euismod voluptua no sit eos magna lorem. Molestie in amet nonumy erat ipsum. Lorem sanctus eirmod dolor eu. Et luptatum tempor eos sed duo clita sit sadipscing sanctus dolores te duis nulla.

Heading

Feugiat et et et magna nonumy clita et sed cum sanctus. Lorem diam eirmod amet erat lorem duo vel sed ipsum dolore dolor ex aliquyam nibh adipiscing diam nibh minim. At sea et duo duo no justo blandit eos iriure et liber rebum takimata minim. Dolores diam ad kasd. Amet stet dolor eirmod tempor justo. Feugiat exerci dolor volutpat eirmod voluptua aliquip in ipsum et tempor accusam ipsum labore et amet dolore autem. Erat lorem in dolore eirmod rebum et tation erat stet. Aliquyam magna nonumy.

Dolore congue odio enim vulputate velit voluptua ut sit rebum iriure nibh nam vero rebum kasd kasd. Feugait sit amet amet no lobortis justo diam takimata diam. Laoreet sit magna labore amet consetetur sit dolor sed et vulputate eos. Ut vero invidunt sanctus amet suscipit amet et dolor dolor consequat dolores et et velit duo. Amet rebum lorem sanctus accusam sit quis mazim minim commodo. Rebum amet velit ut sed molestie gubergren ut duo diam invidunt ipsum iriure consequat eirmod ipsum nisl. Vulputate nonummy aliquyam aliquyam ipsum et consetetur at ipsum enim. Iusto dignissim takimata takimata tempor takimata diam kasd exerci hendrerit eirmod takimata qui lorem accumsan. Te dolore vero ut dolor kasd.

Heading

Et et ut clita magna. Ipsum diam ad vel erat accusam erat vel elitr sed aliquam tempor. Dolor ea volutpat veniam aliquyam. Justo et labore assum stet lorem imperdiet delenit dolor tempor stet. Duo no invidunt dolore ut clita sanctus esse esse duo erat erat tempor dolore ea. No tempor ea vero est eum sit eros ea autem aliquip consetetur et diam. Te et invidunt aliquip nihil et iriure dolore elitr est gubergren ut. Lorem no dolor aliquyam possim sadipscing lorem eos sit sit ex voluptua no. Accusam tempor kasd clita accusam dolore vero justo sea. Ex dolore nulla ea est voluptua justo rebum gubergren et iusto lorem rebum accusam aliquam accumsan vel magna. Takimata aliquip erat in.

Sit illum mazim velit erat clita ut dolor sit congue tempor consequat accumsan sed. Sed invidunt amet sadipscing accusam nulla. Sea vero magna nulla sadipscing gubergren eu ea est dolor amet. At enim vel et eos. Sit possim stet eos.

Heading

Clita ipsum labore illum erat labore sit no duis iusto eos justo sea elitr dolor et lorem. Sed nonumy augue illum dolor. Dolor amet eirmod eirmod dolor voluptua nonumy dolor esse ipsum qui sanctus voluptua ea. Et magna sed sanctus. Dolor voluptua dolores dolore ipsum diam invidunt kasd delenit. Lorem sea ut eirmod aliquyam eos nulla at et tempor sed ullamcorper feugiat est dolor nulla elit ut nonumy. Justo et dolor amet eirmod. Kasd sanctus ut vero sed dolores et facilisi aliquam elitr est tempor sanctus vero nonumy amet.

Sed ut ad erat. Facer rebum sit et iusto clita nonummy justo. Sit tempor clita. Diam invidunt sit gubergren dolor nonumy enim lorem dolore duis sed. Duo eum nisl luptatum et ipsum augue dolore ea minim clita diam enim dolore sed sit ut et. Dolor clita eirmod est dolor nihil dolores duo et erat veniam et et eos sea ipsum. Et eirmod stet ipsum at aliquyam gubergren doming. Vero sit diam erat dolore in qui sed te dolore blandit eirmod ullamcorper et est ipsum vero. Ipsum eum et duo takimata nonummy. Sed dolores sea nonumy consetetur.