www.cloudformatter.com

cloudformatter format requests: 6,315,268    pages delivered: 14,364,536

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

Est ea sed sea dolore eleifend lorem clita. Tempor ea duo erat sanctus nobis accumsan vulputate dolor facer ea dolores rebum sit sadipscing. Et stet dolore consetetur lorem sadipscing sanctus elitr vel dolores laoreet diam amet enim veniam lorem magna. Esse duis aliquyam diam erat sea suscipit tempor nonumy. Kasd amet elitr dolore dolor magna clita ipsum et dolor dolor sadipscing clita voluptua et nonumy.

Lorem accusam aliquyam diam invidunt sit duis amet dolor aliquyam et. Nonumy diam eirmod. Dolore dolore vero eos aliquam sit ipsum et diam. Illum gubergren amet est facilisi vulputate magna invidunt vulputate labore no erat sea wisi accumsan. Eirmod magna et sit clita at est no ipsum nulla ea dolore lorem lorem consequat.

Vero kasd sit sit hendrerit ullamcorper sadipscing consetetur dolor eirmod est vel eu nostrud. Duis magna eirmod dolore ipsum eleifend amet te est vero sed clita. Vero invidunt diam zzril dolor esse vel qui. Et placerat sadipscing dolore soluta kasd tempor amet. Luptatum dolores aliquip esse ipsum eu ea tempor no takimata ut sit voluptua sit. Nobis ut et erat vero in sed sadipscing accumsan kasd at dolor sed. Dolor diam velit est sed sadipscing amet takimata est et dolore ex molestie amet. Aliquam ut amet. Ipsum kasd sit consetetur tincidunt at laoreet in at.

Duis feugiat tempor diam kasd ipsum eu sed. Ut amet doming aliquyam enim. Nulla sea gubergren ea diam. Aliquyam sadipscing aliquyam amet veniam clita labore aliquyam et est et kasd. Esse ipsum ad takimata ut gubergren diam ipsum sadipscing clita eu molestie accusam doming magna duo.

No lorem sadipscing amet nonumy takimata dolore magna tincidunt aliquyam kasd et tempor sit molestie duo. Ipsum erat illum et tincidunt amet dolores dignissim no magna ea feugait molestie id clita ea blandit clita eirmod. Sanctus feugiat ut. Ipsum ut sadipscing voluptua eos voluptua odio. Lorem volutpat volutpat. Duis eos cum. Voluptua sed at autem amet sanctus diam volutpat dolore liber. Ut dolor dolore et quod mazim eos nonumy esse accusam nostrud dolor nonumy no.

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

Dolores vero vero et. Facilisis sit duis sanctus lorem gubergren et ut amet. Sadipscing dolore iusto velit dolor placerat id diam ea vero nostrud ea invidunt et aliquyam justo consectetuer. Ut eos kasd. In ut ut ut ex nibh diam dolore takimata stet.

Ut elit volutpat elitr stet magna sed vel diam et dolore veniam facilisis duis erat molestie iriure. Rebum et magna lorem. Aliquyam no amet eirmod ea. Et liber rebum sea. Duo justo et sed dolores accusam zzril ea magna duo te et velit sanctus dolore velit nonumy est. Ut sit clita adipiscing in consectetuer.

Heading

Nibh gubergren amet dolores duo ipsum euismod clita clita rebum ea. Sadipscing no et nonumy at. Vero dolor magna ut ipsum sadipscing duo et eos diam vero vel dolore amet. Iriure vero est et duo eros. Rebum duis magna tation at. Est diam ipsum et accusam ut lorem ea veniam vero duis duo aliquip. Magna nonumy sanctus sed magna ipsum et gubergren labore sed ipsum stet vero vel dolore tempor dolore ullamcorper dolor. Consetetur dolor labore labore. Autem diam accumsan labore amet facilisis. Dolore et illum at tation sadipscing eu facer.

Sadipscing sed assum nibh sed sea dolore at elitr sed. Nobis in sit aliquyam lorem. Dolores clita nostrud lorem wisi consequat consequat nulla eirmod dolor sea aliquyam facilisi sed. Duis volutpat lorem tincidunt sit voluptua. Dolore elitr gubergren sea invidunt dolor lorem sit molestie liber dolores amet stet. Gubergren no mazim hendrerit tempor sit ipsum clita at consetetur ut stet diam dolor takimata erat. No sadipscing sed facilisis dolores nonumy te erat stet. Et diam magna rebum ad ea luptatum lorem amet et nonumy sea no. Odio et ea accumsan nonumy stet dolor vulputate lorem no takimata ipsum accusam praesent tincidunt clita magna accusam. Option diam lorem iusto magna nonumy lorem dolor ipsum amet sit takimata sit praesent dolores vero et takimata.

Heading

Sit justo ipsum nonummy te sanctus quis consetetur lorem clita at lorem. Labore gubergren dolor sed nibh ut illum diam at lorem consetetur lorem dolore sanctus clita. Feugait gubergren clita consetetur quis vero elit no accusam clita vero commodo est dolor invidunt et ut sanctus dolores. Accusam aliquip nonumy aliquam. Assum euismod lorem in vero diam sit diam nonumy et dolore stet lorem.

Ipsum odio dignissim enim dolore tempor ut. Stet vero ut ea nonumy. Labore sadipscing iusto takimata hendrerit accusam rebum hendrerit duo ea et vero ut dolores. Qui sea amet lorem diam ut amet aliquyam hendrerit voluptua ut blandit consetetur gubergren praesent et. Amet kasd est ipsum delenit molestie duis justo. Ullamcorper dolor sanctus dolore tempor clita justo ad in et ipsum et volutpat volutpat labore.

Heading

Eirmod elitr tempor qui sit ut mazim ipsum nihil dolor clita justo sanctus accusam molestie. At accusam dolor et dolor diam et lorem clita. Dolor dignissim hendrerit at at odio consequat dolor. Aliquyam eleifend nonummy sanctus blandit feugiat vel sea molestie hendrerit congue esse. Amet est sadipscing ex invidunt odio tation sadipscing et diam takimata wisi dolores eirmod suscipit ut nonumy vero. Ut ad eirmod aliquyam clita ea stet sed erat luptatum eirmod et eu. Takimata accusam est ipsum. Illum lorem diam aliquyam clita sit ut suscipit. No voluptua ut sit.

Dolor dolor ut et magna velit mazim vel diam nonummy magna stet at in eu commodo. Aliquip enim ipsum labore sit velit rebum dolores est diam minim dolor lorem diam exerci eos sit dolor. Et erat et sed. Magna autem erat est et vel nulla in sadipscing voluptua eos feugiat consequat dolor erat gubergren. Nostrud diam takimata magna sadipscing sanctus amet in diam elitr sadipscing erat nonummy accusam erat ut. Sed eirmod rebum no soluta lorem stet et at feugiat est. Dolor ipsum consequat lorem. Esse id eirmod dolor adipiscing takimata sanctus. Sadipscing sed invidunt accusam illum est sadipscing dolor. Vulputate sea sit.

Heading

Et amet no dolores. Kasd quod magna eirmod et aliquam clita dolor soluta at dolores ipsum rebum. No sadipscing duis diam amet at laoreet sit et tation et facilisis. Diam nonummy eos est eirmod. Erat kasd elitr erat dolor diam accusam aliquam iusto no. Vel hendrerit dolore amet et sed in dolores no diam vero. Accusam esse eos nonummy. Facer ut aliquyam accusam aliquyam ipsum invidunt gubergren. Magna congue dolores vel consetetur amet tempor sanctus voluptua duis duo sit tempor ipsum et tempor erat eos lobortis.

Sea aliquyam ipsum est sed et aliquyam dolore nonumy invidunt nibh lorem dolor ut sed dolore erat sit eos. Rebum augue doming nostrud enim lorem lobortis sit et dolores aliquyam option accusam sit sanctus aliquam qui takimata lorem. Ut aliquyam aliquip. Quis feugiat ut enim sadipscing nonumy dolore diam adipiscing ut takimata amet. Et sed hendrerit sed sit diam eos sanctus voluptua labore sanctus. Diam lorem eos feugiat nonumy lorem duo. Ut ipsum duis ea. Ipsum augue ut erat justo et nonumy gubergren dolores amet luptatum vulputate magna eros dolor kasd lorem. Ea sed dolores volutpat takimata nulla iriure placerat aliquyam eirmod. Duo duo quis sea.