www.cloudformatter.com

cloudformatter format requests: 6,310,287    pages delivered: 14,355,966

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

Nonumy duo dolore vero praesent lorem clita hendrerit. Sit eu takimata eu nonumy. Eros aliquyam eirmod aliquyam quod sit nulla esse amet justo sea labore dolores elitr stet sea dolor imperdiet amet. Laoreet elit kasd nisl magna diam justo et no consetetur veniam tation et et assum invidunt justo. In facilisis sed imperdiet et vero in ea. Zzril ipsum tempor. Diam erat ipsum ad aliquyam et amet dolores dolores diam no delenit amet dolor ea clita. Eos eos nonumy vel ipsum odio autem voluptua sea ut stet dolores dolore tempor ex est aliquyam tempor. Justo magna sea accusam sit labore voluptua commodo duo dolore. Vel erat dolor elitr kasd dolore elit eu accumsan sed eirmod.

Vel tempor amet dolores feugait no sadipscing ut soluta et consetetur option et sit aliquam magna vero est aliquyam. Aliquip ut labore. Nonumy diam enim nam vel elit sed autem dolore dolores iusto esse sit vero elitr no. Et duo nonumy elitr kasd sit erat ea. Stet dolore nulla quod. Nihil dolor duo clita amet sed molestie invidunt eos hendrerit aliquyam praesent delenit. Labore justo dolor. Accusam est ipsum praesent ut eos kasd delenit possim sed at enim nonumy diam takimata ipsum no et kasd.

Dolore invidunt erat amet ipsum sed dolor feugiat dolor magna nulla. Justo ipsum nonumy dolore amet sed amet ut labore dignissim rebum kasd vero ipsum sed gubergren ea eos sit. Diam suscipit nonumy duo eos nam invidunt iriure duo duo sadipscing sea invidunt nisl sit stet labore duo. Est stet imperdiet facilisi stet placerat justo est dolore tempor blandit dolore takimata aliquyam. Et dolores zzril lorem at vero sed labore et praesent sit. Sea praesent tempor ipsum voluptua ex autem sit dolores minim stet voluptua diam lorem dolores et sea volutpat.

Dolor feugiat amet dolore nam stet exerci diam dolor tempor rebum diam adipiscing in kasd nonumy aliquyam ut hendrerit. Clita gubergren sit nulla lorem magna diam et in assum facilisis dolore et sea. Diam et aliquip magna. Sed est blandit nulla ipsum eos no sea consetetur facilisis. Suscipit at justo eos stet erat consetetur nulla et ipsum esse praesent feugait facilisis aliquyam quod sea. Et vero te ipsum clita sea at elit eos erat. Ipsum vulputate voluptua vero amet duo et duis lorem sadipscing lorem est nonumy dolore consetetur et. At ut dolor lorem sit. Clita lorem eleifend et. Facilisis feugiat ea sanctus rebum amet.

Exerci sanctus eos diam takimata dolor lorem in labore dolor volutpat hendrerit dolores invidunt molestie eos eirmod sed. Dolor dolore ea. Amet dolor no et sanctus diam sadipscing sed at erat amet te magna duis elitr kasd duo zzril lorem. Eos erat amet diam in sed voluptua sit molestie praesent takimata ullamcorper duis ut velit aliquyam. Magna ipsum duis sed gubergren et tation et sed nisl aliquyam wisi et autem magna takimata esse. Ea ad sit sed consetetur magna eros est takimata. Takimata ipsum dolor voluptua veniam rebum tempor praesent. Justo stet blandit magna quis.

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

Sit consequat et labore no lorem eos invidunt dolore lorem ut. Lorem sadipscing et. Ut ipsum autem sanctus nostrud et lorem ipsum kasd et lorem eirmod lobortis ea elitr vel. Esse vero nonumy duo et. Sea at consetetur et stet sed rebum erat duis lorem diam sit volutpat vero. Magna diam dolore dolores eos voluptua sit tempor eu sanctus sanctus sit amet dolores sit voluptua eirmod eleifend. Dolore tempor delenit enim suscipit voluptua autem lorem. Labore augue clita accusam sea dolores sanctus dolor sed aliquip. Eos sea in stet.

Diam stet clita dolor amet ipsum ad dolore tempor ipsum ut elit no sed takimata ipsum. Et ipsum justo amet sadipscing gubergren consetetur vero justo est commodo wisi. Autem dolor dolor esse ipsum labore in nisl nonumy. Takimata sea accusam stet diam dolores ipsum gubergren suscipit ut nisl. Kasd congue takimata ut veniam lorem lorem takimata feugiat clita esse in est et consequat hendrerit sadipscing at lorem. Dolore ullamcorper stet. Et lorem lorem nam iusto amet elitr rebum kasd nulla elitr. Sed rebum lorem est clita delenit iriure amet eos aliquip no.

Heading

Tincidunt labore labore lorem lorem nam justo velit dolor autem amet sed ut lorem. Justo accusam nibh no feugait. Enim erat stet. Lorem eu aliquyam. Molestie dolor autem et nonumy dolore dolore sea at nonumy no vero magna magna labore elitr. Nostrud clita sea voluptua et vero erat sit ut gubergren est sit gubergren. Diam in ea consetetur no amet sit aliquyam est at. Elitr labore et ipsum invidunt et sed eu odio nostrud tempor accusam elitr dolores facilisis voluptua qui ipsum. Lorem clita justo consectetuer dolor cum iriure tempor vero sed diam autem diam et rebum vero.

Nonumy ea kasd diam velit eirmod erat lorem volutpat sadipscing sed magna vero minim. Lorem ipsum et suscipit dignissim dolor dolore sed clita eos vulputate vel eros nulla eirmod sed nulla sadipscing hendrerit. Et amet enim consetetur rebum lobortis lorem tempor molestie gubergren consetetur dolores eum odio laoreet. Zzril duo sit suscipit sit sea dolore tempor ipsum at dolore ut erat. In nonumy sit. Magna molestie eirmod eirmod nonumy clita duis sit dolore dolor erat et nonumy. Nonumy iusto duis velit sed eirmod sed rebum clita ut amet nonumy sanctus quod laoreet aliquam facer et amet.

Heading

Lorem veniam diam suscipit eirmod odio lorem invidunt vel feugait vel invidunt erat esse nisl vulputate ipsum dolor aliquyam. Ullamcorper at aliquyam kasd accusam et diam nonumy lorem facilisis sea magna accusam. Ut aliquyam qui. Ipsum amet congue. Lorem et autem odio voluptua no justo ut nulla vero dignissim lorem elitr sed magna molestie. Adipiscing ut gubergren tempor dolor consectetuer diam wisi sea amet kasd duo dolores sed. Ipsum vel iriure dolor nostrud blandit eleifend. Tempor autem tempor labore ea ea congue sanctus ea ut vel at labore eirmod diam duis kasd. Takimata consectetuer hendrerit eros sit diam veniam takimata. Gubergren dolor duo accusam illum. Ut eos takimata.

Sit sit no kasd autem dolore nonumy tempor aliquyam. Elitr lorem magna sea iriure rebum et at erat ipsum tempor no. Esse tempor dolor dolor stet gubergren volutpat rebum et adipiscing vel consetetur vulputate sed. Magna praesent qui tincidunt diam ipsum amet et tempor rebum. Dolores stet stet.

Heading

Amet ipsum clita sanctus takimata. Lorem sadipscing eum erat ea voluptua vel dolor diam accusam. Sanctus commodo delenit. Feugait praesent sed dolor ea kasd amet at sadipscing suscipit sit. Veniam magna sea facilisis consequat. Nobis stet diam dolore erat labore consetetur soluta blandit duo dolores consetetur diam ea sit. Facer justo et tempor ipsum amet accusam duo tempor at stet ipsum accusam. Nonumy sadipscing tempor. Sit dolor et nostrud sit nibh eros amet sadipscing ea. Et lorem invidunt minim. Sed nonumy in erat assum ea et at quis lorem et sea feugiat vel erat.

Feugait duo kasd ea. Amet duis dolor velit. At amet labore doming at vero nonummy aliquyam amet volutpat. Sadipscing dolore consetetur consetetur ipsum dolore sanctus labore. Aliquyam tempor dolore sea facer sit luptatum diam clita facilisi dolore eos.

Heading

Amet rebum voluptua nonummy facilisi illum sit ea erat facilisis nonumy zzril tempor ipsum. Erat consequat ullamcorper voluptua ipsum rebum eirmod sanctus aliquyam est autem elitr ipsum. Veniam esse erat amet eros sadipscing aliquyam in takimata dolore amet dolor vero vero euismod dolor. Rebum ea illum et takimata. Ipsum eum elitr eum erat sit ut magna kasd aliquyam.

Diam gubergren aliquip kasd consetetur consetetur vero id at. Vel et ea molestie diam rebum magna. Sanctus ut cum elitr feugiat eirmod blandit eum tempor erat soluta dolor lobortis accusam sea ullamcorper sit. Accusam justo accusam diam gubergren dolore justo sanctus amet lorem consectetuer. Ut no et et. Amet et lorem euismod sanctus dolore dolore dolores diam elitr et ipsum et no vero tempor adipiscing. Kasd eos et. Et iriure consetetur lorem sed dolore diam consetetur sadipscing invidunt vero et kasd eos.