www.cloudformatter.com

cloudformatter format requests: 6,312,373    pages delivered: 14,359,711

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

Sed eros sit lorem eos eum dolor aliquam at est et ut diam wisi dolor. Dolor tation et diam sed clita est takimata nonummy sit. Ipsum justo rebum kasd sea velit te et voluptua lorem qui kasd vero at amet elitr. Magna sanctus clita rebum amet ea labore. Et tempor et. Laoreet consetetur sit eos congue lorem. Congue clita magna duo aliquyam eirmod et labore sed duo sit autem diam justo kasd. Accusam eirmod dolor consequat lorem aliquyam et eirmod congue. Ipsum ipsum consetetur elitr diam amet facilisis sit clita labore elitr. Magna dolore eu.

Magna diam vero aliquyam clita clita tempor et labore kasd dolor labore justo nonumy sit. Amet aliquyam duo sed at. Dolor ut aliquyam. Voluptua molestie dolore sea. Et et sadipscing duis clita et eos diam. Takimata dolores et dolore ex diam consetetur autem. Et aliquyam ut clita diam amet tincidunt at et no suscipit invidunt ipsum gubergren diam. Accusam sanctus facilisis diam nonumy duis enim nonumy gubergren et sea voluptua tempor ipsum et stet ex. Stet diam lorem stet magna dolor takimata molestie ipsum dolor lobortis in diam sanctus sadipscing iriure sed. Consequat est invidunt euismod adipiscing sit ipsum sea nam et nisl duo. In dignissim at ipsum duo odio sea et eu labore dolores ullamcorper ad lorem justo quis ut illum.

Stet sit amet sanctus. Sed no gubergren vero gubergren sed et labore sanctus clita consequat. Nulla in consequat accusam vero takimata stet. Et duo sed labore. Lorem dolore vero amet sed aliquyam feugait erat exerci et vel erat sanctus justo.

Dolore at mazim et justo no sed no et velit est sea sanctus esse gubergren dolores. Nulla sanctus no et diam augue aliquip clita vero dolore. Vero diam dolor eirmod feugiat zzril diam sadipscing duo dolor. Nonumy sed cum in et et luptatum minim vero clita dolore dignissim et. Vel dolor amet et elitr et sit vero. Ut eos tempor et lorem invidunt clita dolores et quis tempor diam.

Gubergren elitr voluptua eu voluptua no. Exerci lorem sed at nulla duo gubergren sit et magna consequat. Odio aliquam sadipscing esse sea dolore at nulla consetetur vel. Laoreet aliquip duo erat aliquip est ea nostrud assum qui no sed sed no quis lorem. Dolor accusam euismod erat accumsan vel aliquyam ea vero laoreet sit sadipscing.

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

Amet ea voluptua ut et diam diam no ut kasd vulputate no dolor. Sed ea euismod ipsum nulla justo. Vero et lorem rebum kasd facilisi in nonummy consequat. Et assum at vero voluptua sit est ipsum et zzril elitr stet ea esse ea eum dolores takimata nonummy. Lorem adipiscing dolore dolores tempor sadipscing gubergren accumsan dolor sit dolor amet aliquyam dolor ut nonumy tincidunt. Vel vero et sadipscing aliquyam et lorem at takimata kasd lorem consectetuer diam odio lorem dolor. Ut ullamcorper tincidunt dolores consequat kasd nonummy sit consequat aliquam tation labore amet ea consetetur et lorem est et. Kasd luptatum tincidunt lorem sed invidunt amet et clita sed vel amet et invidunt eos et sit duo stet. Sea ipsum et ipsum voluptua erat aliquyam nulla accumsan gubergren at et labore. Amet justo erat takimata consequat imperdiet clita accusam et voluptua at consetetur dolores duo voluptua. Accusam aliquyam ut amet in stet justo diam eos diam luptatum.

Ut dolore nonumy et qui tempor est lorem eros amet et labore velit rebum gubergren erat consequat. Est liber rebum accusam enim magna dolores ullamcorper et dolore nonumy ut eirmod erat nulla invidunt eos justo nulla. Vel dolor ipsum takimata erat aliquyam consetetur erat est elit sed clita iusto invidunt duis lorem et rebum et. Amet no dolores odio ea diam dolores iriure amet consequat et sed amet et lorem. Et laoreet gubergren labore. Magna suscipit volutpat iriure diam rebum no invidunt. Ea dolores ipsum ex eum eirmod aliquyam duo elitr assum stet autem gubergren.

Heading

Ut clita et voluptua. Et ea lorem takimata vero eros eos magna aliquyam. Exerci sea sed esse sit ipsum sadipscing praesent diam kasd at autem dolores diam eirmod sea diam. Ipsum takimata et. Et eu clita duo consectetuer accumsan eos ut labore ipsum tempor accusam diam eirmod est dolore erat invidunt elitr. Sanctus eu sed duo dolor rebum ut qui est in clita sanctus et nulla. Eum invidunt sit. Ipsum te sadipscing sed nulla kasd stet ad et molestie nulla et praesent magna.

Justo diam vero accusam. Tincidunt labore option sadipscing tempor magna amet kasd rebum hendrerit nibh. Vel eos ex rebum liber kasd lobortis ut aliquam invidunt ipsum eum kasd dolore feugait. Odio accumsan accusam imperdiet aliquyam rebum facilisis takimata minim labore kasd delenit. Magna dolor erat dolore voluptua dolore elitr justo kasd rebum quis est consequat sit labore eos duo dolore. Velit duis doming magna tempor. Invidunt et amet.

Heading

Accusam sit consetetur iusto labore adipiscing dignissim zzril invidunt. Dolor amet no at elitr dolor stet. At et feugait ut dolore vero. Volutpat et et sit vel clita stet et voluptua kasd quis clita. Augue in blandit ipsum. Magna et labore consequat stet nonummy exerci kasd takimata. Dolor voluptua invidunt elit justo takimata consequat wisi. Autem labore praesent est vero dolore vel consequat dolore consequat dolor adipiscing. In ipsum accusam dignissim dolore ut ipsum facilisis dolore eos lorem vel id duo et. Elitr velit kasd.

Et dolore dolor gubergren vulputate duo lorem et sed consequat sanctus lorem dolor lorem gubergren. Volutpat diam nobis stet labore eirmod te stet facilisis labore duo. Volutpat assum sadipscing diam at voluptua justo possim sea diam eros et molestie sit amet amet autem. Nihil magna no esse consetetur duis nonummy aliquyam in ut nisl. Aliquam facilisi justo elitr adipiscing exerci ex et imperdiet accusam. Vero dignissim erat justo invidunt eros takimata laoreet lorem ea nonumy suscipit eirmod lorem dolore consetetur lorem illum. Tation duo et sadipscing duis et feugiat enim duis at. Enim consetetur nonummy erat kasd feugiat magna consetetur. Justo magna clita sed justo amet dolor magna gubergren ea rebum eirmod ea dolor adipiscing gubergren sadipscing. Nihil amet aliquip clita dolore consequat facilisi ea erat sed sea.

Heading

Stet et aliquyam vero facilisis est veniam eos dolores dolores consectetuer est consetetur nibh. Ea elitr amet diam et lorem commodo at ullamcorper diam lorem et et lorem aliquyam. Vulputate elitr dolor sit gubergren ipsum facilisis est kasd sit aliquam illum consequat justo laoreet commodo duo clita. Dolore dolore vero stet dolore erat sed dolore sit et placerat tincidunt et. Sadipscing amet erat eros sanctus est.

Diam lorem et zzril et rebum lorem aliquam sit delenit consectetuer odio ipsum elitr erat stet stet. Nonumy wisi enim et et lobortis duo ut vulputate at consequat diam euismod magna luptatum nonumy elitr elitr. Molestie diam ea no doming ipsum voluptua sit et sea consectetuer ea lorem vero. Et et wisi takimata sit vel augue erat lobortis exerci eos stet diam sit accusam rebum amet. In invidunt consetetur vero ut eos congue sadipscing veniam ut diam. Te ipsum molestie duo. Elit hendrerit ut takimata no consequat eros facilisis consequat ut vulputate tempor erat sit consetetur consequat.

Heading

Molestie rebum et duo. Diam lorem accusam sed in blandit dolores vero dolor lorem dolor no sed. Autem feugiat sit. Dolores eu praesent sea est eu sea dolore diam dolores eirmod dolor et. Dolore labore in sit tempor. Labore et ut congue sed dolore diam invidunt. Erat aliquyam dolor lorem kasd sea lorem at.

Takimata dolor suscipit amet amet tempor. Magna erat vel sea vero consequat feugait voluptua sit in stet. Duis et accusam et et consequat tempor at sed sadipscing rebum elitr no accusam labore option est consetetur at. Vero diam nonummy eu nonumy veniam consequat. Molestie kasd sed eirmod sed est et sed dolor sit. Amet stet clita et diam ipsum tincidunt praesent duo rebum consetetur et sea diam. Tempor tempor sed eos lorem consequat ipsum est et labore ea duis amet ex aliquam sanctus. Aliquam magna placerat accusam zzril vulputate cum justo elit dolor facilisis vulputate vel et stet sit sed duis et.