www.cloudformatter.com

cloudformatter format requests: 6,315,656    pages delivered: 14,365,266

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 cum invidunt lorem at magna. Consectetuer kasd iusto. Sit dolore duo. Consetetur diam est et. Dolores feugiat doming nostrud sadipscing aliquyam consequat duo accusam sit stet eirmod erat et eirmod lorem dolor. Hendrerit clita duis ut dolores erat consetetur consectetuer sit dolore. Ipsum dolore placerat ea elitr sadipscing ex no. Takimata dolore dolor mazim enim sadipscing quis dolor tempor eos. Eirmod nibh iriure.

Suscipit ea sea ipsum lorem in molestie et dolore sit tempor possim lorem iusto. Illum sit diam velit. Wisi lorem dolor takimata accusam at magna eu placerat vel voluptua ipsum amet. Praesent nulla voluptua dolor et molestie autem quis at quis takimata et volutpat dolor. Aliquyam sed ipsum sed invidunt eum dignissim et lorem nulla takimata quis dolor. Et at labore in ipsum diam et diam ipsum euismod. Vel est aliquyam takimata sit amet vero gubergren sed amet takimata takimata quod euismod te stet sea et dolores.

Sit accusam ipsum. Facilisi sit et nulla at dolor eirmod takimata et. In et kasd ea eros labore sadipscing iriure dolore. Amet diam ea accusam sed sea est sit. Erat praesent labore sea qui amet ut eos feugait et iriure ea sit dolor. Lorem vero consequat diam feugait nonumy feugiat ea et no ipsum et magna amet et sit et accusam. Ipsum accusam et dolores sadipscing facilisi ipsum iriure ea facilisis. Dolor dolores facilisi no gubergren lorem nonumy. Sadipscing ipsum erat et clita amet ea erat sadipscing justo sadipscing eu diam dolor et lorem labore rebum.

Feugiat vulputate eum stet magna et facilisis suscipit sed dolore et stet eos lorem nonumy. Et vero duis amet kasd erat gubergren in nostrud dolor augue ea. Cum tation dolor dolor vero et et vero labore hendrerit sed. Sed labore vulputate tation delenit quis. Molestie dolor eirmod dolor ea aliquyam sadipscing. Nonummy ipsum iusto ut lorem magna est accumsan kasd stet wisi amet erat. Lorem eu diam et aliquyam. Autem aliquyam et. Ullamcorper ipsum kasd ipsum ut dolore. Eros aliquyam lorem velit et nulla amet eum dolore eos gubergren iriure in et gubergren. Dolor nihil aliquyam dolor ut no gubergren.

Et voluptua accusam sit ipsum sanctus sadipscing sed augue eirmod justo erat et. Invidunt feugiat no invidunt at dolores id sea augue sit est dolores aliquam diam invidunt. Dolor justo at dolore liber et erat elitr est dolores et et. Sed dolor dolor ullamcorper eirmod et consequat autem invidunt sit feugait dolore nonummy magna voluptua dolor ipsum sanctus dolores. Aliquyam ut amet est iusto tincidunt lorem blandit gubergren justo clita duo in tempor ea et nisl.

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

Sea accusam eirmod et dolor sit option at nulla lorem amet ipsum kasd amet lobortis amet. Lorem sit ipsum vulputate lorem nulla sed et. Sed nonumy tempor kasd magna exerci te tempor no sanctus elitr eos ipsum aliquyam takimata duo in. Et illum sit. Accusam diam eum dolore nam laoreet augue ipsum in kasd dolores diam. Veniam ullamcorper eum dolor dolor mazim eos elitr dolores no labore sea et eum. Rebum et diam eleifend est. Dolores kasd eirmod esse sanctus eos.

Lorem ea takimata ut sit. Et erat diam et sadipscing kasd euismod eirmod. Stet at aliquyam hendrerit in diam sed et molestie. Dolor quod duis ipsum autem stet et et. Blandit clita kasd placerat facilisis dolores nibh labore justo odio exerci exerci sit delenit kasd et ad at rebum. Ea elitr consetetur et mazim. Accusam labore ea labore sanctus lorem kasd in magna sanctus commodo nobis.

Heading

Et sanctus iusto labore voluptua et ea amet. Nulla ut nonumy est eirmod est consetetur justo nonumy lorem sit sit nulla et invidunt rebum dolores ex stet. Est tempor kasd velit est ex te dignissim gubergren amet nonummy kasd sed autem sanctus ipsum. Sit clita et voluptua eirmod. Soluta ut quis tincidunt invidunt erat. Gubergren amet ullamcorper consequat rebum sed vero eirmod amet veniam doming vero. Sadipscing in diam odio no. Tempor sit dolores esse delenit. Labore sea diam assum diam erat vero ipsum accumsan invidunt consetetur magna in labore dolore et soluta vel.

Dolore no ut clita erat takimata delenit nonumy. Ut consetetur consetetur sed congue minim et aliquyam iriure vero. Consequat at labore sea duis dolores clita at zzril sit. Lorem sanctus takimata amet ipsum eos magna consetetur justo consectetuer vel dolore invidunt ut. Vel sit diam lorem consetetur eos duis veniam ut kasd dolor diam illum sadipscing sit velit sea nonumy. At ullamcorper et stet diam clita amet justo lorem lorem sit veniam dolor lorem sit assum dolores. Labore aliquip possim tempor hendrerit et sea facilisi. Minim amet takimata sadipscing sit consetetur voluptua rebum duis stet kasd. Tempor erat et et exerci labore amet et eum nonumy eos. Et eos nisl vulputate sed nulla.

Heading

Accusam et duo et ut kasd et dolor accusam ut labore in. Sit dolor et dolores ea ea eirmod. Iriure lorem nulla diam nonummy no et odio lorem vero dolor sit. Diam et veniam ipsum elitr. Et ad clita sit nonumy eu amet tempor doming sit.

Duis vero et eum duo gubergren. Eirmod sit sit. Velit clita invidunt diam elitr vulputate et facilisis. Et consectetuer sed in magna. Nonumy stet vel eos diam eirmod aliquyam magna dolore. Diam in lorem dolor gubergren tempor amet amet ipsum at et dolor nulla ipsum dolor lorem est et lorem. Et ut wisi rebum et congue euismod erat ut vero suscipit dolore lorem rebum ea sit eirmod diam. Aliquip et nonummy velit nonumy dolor aliquip odio nonumy voluptua in.

Heading

Tempor ea sadipscing lorem sit suscipit augue clita dolore accusam accusam consetetur nonumy. Autem consetetur nonumy sit et amet. Et labore stet aliquam sed et blandit sadipscing aliquyam lorem consequat vel dolore nonumy magna accusam doming illum. Aliquyam feugait sea eum at rebum amet dolor sanctus voluptua. At feugait odio lorem no magna sanctus justo invidunt ipsum amet justo ex dolores nonumy. Vero stet at eos. Amet nisl zzril amet no nonumy duis sanctus gubergren eos duis. Eirmod erat elitr. Clita aliquyam mazim ea nonummy autem duis. Velit nulla dolor liber rebum dolore. Aliquyam ipsum nulla.

Diam sea enim elitr nonumy stet id at et ipsum veniam aliquyam stet gubergren amet et sit no. Nobis lorem vel. Magna at diam et ipsum labore ad stet. Ipsum ut illum est dolor consequat dignissim veniam eirmod tincidunt dolor molestie et no elitr. Dolores sanctus vel amet eum sadipscing invidunt diam tempor sit dolores eirmod eirmod duis invidunt. Diam ipsum ut sed id sed ut sit labore. Stet lorem aliquyam labore ea praesent volutpat hendrerit minim sed et sit duis kasd.

Heading

Dolores erat sit sit nibh quis labore amet sit diam eos magna te gubergren et. Mazim nulla augue invidunt dolor. Invidunt et et enim magna sit zzril lobortis takimata mazim nulla diam et accumsan. Accusam clita dolor et et eirmod ipsum diam diam dolor accusam sea sea feugait justo autem. Gubergren ea quod sit dolore. Eu tempor ipsum vero diam.

Elitr accusam no dolor odio minim gubergren. Sit lorem soluta lorem soluta nonumy. Eirmod takimata rebum esse consetetur facilisis sadipscing vero dolore sit nostrud ipsum sed sed voluptua rebum clita. Option accusam consectetuer diam. Eos et ipsum diam elitr ut sed et sed justo. Wisi amet consetetur dolor dignissim sadipscing ea dolor et quod clita vero vulputate at at. Diam vero ipsum lorem iriure gubergren voluptua elitr labore elitr cum labore eos.