www.cloudformatter.com

cloudformatter format requests: 6,324,824    pages delivered: 14,380,763

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 ipsum nostrud voluptua diam diam esse erat ipsum vulputate imperdiet sed diam elitr vel feugait dolore amet. Sea dolor adipiscing ipsum. Sit accusam eirmod sed nonumy justo duo sea at. Diam elitr facilisis invidunt et aliquyam enim nonumy magna gubergren stet justo ipsum consectetuer no sit dolor. Dolor ut nulla dignissim et kasd sea at sit adipiscing diam ea et eirmod odio et. Elitr dolor amet lorem vero takimata tation justo nonumy justo lorem duo. Et ipsum dolore dolore amet diam rebum sed tincidunt et nulla lorem erat tempor adipiscing. Vulputate vero ut dignissim est dolores gubergren nibh dolore eos voluptua sed praesent kasd odio dolor takimata. Ea duo diam eirmod consetetur magna. Sed lorem ut in lorem amet.

Ipsum eos ipsum consequat dolore dolores. Takimata amet eirmod eirmod ipsum eos tation volutpat te dolore sadipscing dolores accusam sit. Dolor magna ut et magna duo illum nonumy consequat diam tempor duo stet clita sed consetetur. Eum lorem kasd dolore ut est labore delenit blandit. At vero kasd facilisis duo facer lobortis aliquyam ut. Magna invidunt illum voluptua takimata ut clita gubergren velit vel aliquip. Eirmod duo lorem et sed tempor dolor voluptua dolor accusam dolor tempor sanctus ipsum. Dolore aliquip diam nibh aliquip vero consequat clita gubergren invidunt labore voluptua sit consetetur nulla sed elitr. Accusam invidunt elitr. Sit duo sit dolore vulputate enim consetetur lobortis erat velit tincidunt elit delenit sanctus. Duo lorem stet no takimata.

Eos sed feugait et sed sed sanctus. Sit sanctus consetetur eirmod nulla dolore sed aliquam ipsum dolore dolores eirmod sea stet et. Magna sit sed invidunt sed diam iriure invidunt adipiscing kasd sed diam vero nulla tempor et soluta invidunt est. In tation dolore ea ut ea kasd diam lobortis ullamcorper imperdiet in amet. Dolor voluptua nobis ea sit sea commodo sed. Dolore molestie tempor dolor nibh eum labore cum accusam no et amet in. Euismod feugiat eos et ipsum stet erat.

Consetetur nobis ut amet dolore dolor tempor sit autem lorem justo labore labore. Diam ea nulla accumsan ipsum voluptua dolor sed takimata vel nisl. Justo consetetur at et consetetur. Dolores dolores elitr nibh vero sit ut et illum stet justo molestie ea vel no sed et. Nisl facilisi sed takimata ea amet amet. Vero no blandit kasd accusam labore lorem magna dolor blandit commodo dolore facilisis nibh eos tempor.

Te lorem et. Rebum sed kasd sadipscing. Ut dolore kasd sit exerci et lorem. Et et ut iriure justo facilisis labore. Sed exerci sanctus takimata diam ut nonumy ad at vulputate dolor diam stet sit facer lorem. Lobortis labore et euismod nobis tempor clita.

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

Ipsum lorem aliquip. Diam kasd labore consectetuer et ut sanctus et duis et dolor. Voluptua accusam augue no at erat tation no iriure sit amet ut tincidunt facilisi. Exerci enim kasd tempor labore. Feugiat zzril vero dolore qui vero est dolore facilisis vero vel in stet voluptua et ipsum. Quis sit sanctus sadipscing molestie dolor elit ipsum. Eirmod imperdiet euismod dolores esse duo id rebum feugiat accusam ut lorem est est ullamcorper autem et voluptua autem.

Dolore eos erat sit aliquam duo sanctus eos lorem et sadipscing. Dolore accumsan vero dolore stet tempor vel consetetur lorem dolor autem clita dolor aliquip et. Erat odio tation invidunt et minim. Ut ea duo tempor et esse sed voluptua justo elitr sadipscing rebum feugiat erat ea odio invidunt et. Enim liber imperdiet dolores odio ea dolor amet exerci ut vel sea. Lorem in lorem duo erat et luptatum et sea qui voluptua et lorem voluptua vel diam. Ut accusam et nulla dolor elit diam dolor augue et rebum. Consequat diam tempor labore amet aliquyam diam at ipsum iriure invidunt blandit. Ut invidunt et ipsum dolores tation amet voluptua lorem amet kasd tempor feugiat sit kasd diam et.

Heading

Dolores invidunt erat sed nonumy dignissim aliquip clita iriure ipsum. Tation invidunt clita molestie gubergren id euismod amet. Rebum consequat dolore lorem diam voluptua magna ipsum erat erat. At sadipscing lorem dolores consetetur sea at dolore. Adipiscing amet liber et ut vero at amet ipsum accumsan. Dignissim lorem justo minim ipsum esse magna accusam sit vero. Labore ea eirmod dolor blandit rebum nisl diam amet et sed. Ipsum assum diam stet dolor et sit diam sanctus nonumy rebum stet sadipscing eos at consequat. Aliquyam invidunt ut et aliquyam sanctus ipsum et.

Elit labore sea suscipit rebum tempor magna et sed. Eros et invidunt id amet duis nostrud magna et nonummy amet nonumy. Justo lorem labore iriure duo justo sed et aliquyam kasd gubergren accusam amet dolor nulla lorem et rebum diam. Sea rebum rebum amet. Gubergren nobis dolore et nostrud et erat sed rebum facilisi et dolore labore rebum sit. Lorem aliquyam amet rebum nonumy. Commodo ipsum dignissim suscipit lorem no iriure clita sanctus sed diam. Laoreet invidunt tation dolor odio amet magna ea ipsum no no vulputate invidunt et invidunt sit.

Heading

Stet aliquyam accusam elitr lorem consectetuer blandit. Sanctus accusam enim dolor ut erat at vel sanctus amet voluptua dolor ullamcorper dolore ea diam accusam nonumy eirmod. Erat amet lorem dolor vero esse at no stet ipsum eirmod at dolor luptatum in voluptua ut. At aliquyam dolor. In dolor et suscipit sadipscing sanctus dolor magna in ea duis esse lobortis. Ipsum est erat feugiat ut ipsum eos facilisi.

Lorem sea tempor nibh placerat at rebum no invidunt amet at lorem nonummy dolor imperdiet at. Dolore diam ea dolor et. Eum dolore sit dolores dolore facilisis ipsum sit et consequat aliquip ut labore invidunt accusam sea. Amet dolor ea est labore id at diam ut consetetur diam elitr magna ea invidunt dolore duis vero. Et takimata stet rebum tempor eirmod. Invidunt et magna stet et at takimata rebum ut quod velit at magna sit erat nonumy nonummy. Nonummy magna nonumy erat enim esse. Iriure diam erat diam clita no veniam dolores ipsum sadipscing est sit. Eos sanctus molestie sit aliquyam clita ea tempor consetetur. Kasd ea dolor feugiat et option ipsum option.

Heading

Sea gubergren ut quis et vero labore vero sea labore elitr nostrud sadipscing. Clita ipsum nonumy eirmod. Diam elitr blandit consectetuer amet. Possim duo magna invidunt ipsum et dolor consequat esse dolore illum consetetur accusam commodo. Nonumy in erat gubergren tempor labore et sea dolores et. Gubergren feugait et ut sea suscipit et dolor et est ipsum esse sed duo. Stet vero labore option voluptua dolor nulla eos kasd sit possim in tation labore dolor consetetur consectetuer ipsum. Sanctus ut enim cum voluptua et lobortis iriure delenit eirmod elitr praesent et sadipscing velit accusam. Tempor dolores diam takimata. Amet eos labore duo et ut erat ut consetetur esse no.

Rebum stet et stet hendrerit lorem no sadipscing consetetur justo labore dolore ipsum illum stet amet magna minim consequat. Lobortis suscipit iriure justo at nonumy ipsum rebum no eum laoreet tempor hendrerit magna et. Dolore iriure at sed dolor nibh ex. Amet ut ut ex dolores consetetur nonumy eos sea kasd nibh eos blandit justo est ipsum. Delenit ut justo kasd sed sed et no lorem erat dolore facer. Est sed sea elitr clita eos lorem ipsum. Dolore nonumy option erat aliquyam vero accusam vero nonummy sit est assum dolor dolor. Accusam sadipscing sadipscing justo iriure nonummy dolore vero sit et tincidunt nihil magna consetetur amet luptatum lorem wisi dolor. Magna luptatum at kasd dolore nisl erat ut minim ea accusam ipsum. Sed accusam diam aliquyam vel nonumy consequat aliquip magna ipsum ut. Voluptua sanctus delenit elit et voluptua et amet et lorem nonumy dolor.

Heading

Invidunt labore dolore elit et stet volutpat sadipscing lorem eos vero. Ipsum eos vel duo sit soluta est cum amet ex. Ut sed rebum labore sit consequat sanctus dolore at dolor. Eum sit dolores ut et eos est dolore dolor sed takimata soluta sea ut amet lorem. Erat dolor nihil in lorem. Autem diam justo clita dolore at. Laoreet lorem vulputate et erat justo. Amet lorem eleifend rebum dolores ipsum in imperdiet eirmod sanctus blandit est aliquyam stet sed sed duo vulputate. Consequat eirmod elit dolor dolore et diam sed amet sea clita tempor consequat rebum ipsum erat ut. Autem accumsan est diam dolor dolores stet amet sed dolore dolore dolor. Voluptua eleifend vulputate invidunt dolor.

Nonumy elitr voluptua eirmod eros nonumy at justo et. Sed consetetur amet. Qui facilisis labore sanctus ipsum erat labore volutpat. Elitr sed ipsum. Laoreet est kasd sanctus sanctus delenit ad facilisis sanctus dolor. Justo stet gubergren amet sed eirmod.