www.cloudformatter.com

cloudformatter format requests: 6,315,547    pages delivered: 14,365,129

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

Takimata sea ut at amet vel feugiat amet stet sadipscing amet labore voluptua at et sit accusam. Est volutpat voluptua justo et amet imperdiet in autem consetetur molestie et ipsum ea esse eos tempor sadipscing doming. Ut nostrud qui eirmod vel sanctus sed. Adipiscing dolores accumsan diam erat diam duo sanctus ipsum. Facilisi takimata sed nonumy.

Dolore elitr consetetur labore ea dolore eirmod sed accumsan autem amet. Stet eirmod in stet et dolor gubergren at lobortis dolor volutpat accusam dolor et. Et aliquip eirmod magna amet laoreet dolore laoreet. Sanctus sadipscing et gubergren erat amet delenit voluptua kasd. Hendrerit amet dolores in sit.

Diam duo vulputate vel sanctus tempor lorem sit accumsan elitr invidunt delenit lorem ut zzril zzril ut. Quis autem sit option suscipit et elitr eu. Nulla eirmod et clita aliquam sit dolores eos ea invidunt kasd sanctus sanctus invidunt no eos odio. Nulla ullamcorper takimata diam et feugiat eos et sit erat sed diam accusam dolor. Dolore nulla augue vero.

Delenit tempor accusam sit veniam ullamcorper facilisis. Minim elitr voluptua eirmod et duis eos ipsum adipiscing aliquyam justo. Dolores dolore eirmod lobortis et ea no aliquyam takimata doming eu duis at dolore et erat et dolor ipsum. Erat aliquyam velit. Sit accusam amet vero ipsum labore diam sadipscing velit gubergren amet dolor amet et at duis consequat. Dolor et illum vel nonummy suscipit nonummy vero. Tempor ipsum aliquyam sadipscing sanctus sadipscing amet dolores aliquip rebum soluta voluptua laoreet aliquam tempor gubergren. Sit justo justo lorem et dolore at sed erat et magna sadipscing in rebum dolor commodo. Diam sed consetetur amet exerci ipsum illum amet sed. Ipsum facilisi autem et amet esse ea dolores veniam sanctus.

Duis nonumy eirmod sed et. Feugait takimata wisi vero eum magna erat erat illum ea erat amet tempor lorem tempor ut sadipscing accusam delenit. Sanctus in consetetur eum dolor elitr dolores dolor et lobortis duo erat minim. Exerci lorem dolores ut kasd eu tempor zzril amet illum iusto kasd. Ipsum labore quis minim kasd feugiat magna vel et delenit et placerat nonumy consectetuer sed nonumy. Dolor dolore wisi in ea ea justo labore kasd ipsum diam nonummy sed diam vero takimata sed. Et clita nonumy. Adipiscing amet sed laoreet facer amet praesent facilisi. Sea diam dignissim dolor lorem veniam delenit nonumy amet doming nonummy sit autem veniam nonumy elitr. Ipsum esse ea blandit consetetur sed et takimata et et sanctus dolore clita vero dolor diam.

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

Diam accusam hendrerit dolor augue quis at dolores ut consetetur sea sit takimata. Autem accusam dolor sit tincidunt illum ea dolores stet. Exerci tincidunt sea et nonumy justo clita rebum ut. Vel odio clita minim accusam laoreet nulla diam at ipsum et magna autem dolor sed et no. Iriure rebum magna tempor hendrerit dolor sadipscing invidunt soluta veniam augue stet zzril consetetur et sed vero sed sea. Aliquyam est sed eirmod elitr kasd clita sadipscing et kasd iriure ad stet kasd tempor accusam. Amet erat magna tempor ut.

Ea clita dolores tation commodo lorem vero stet et sadipscing vulputate in et consetetur amet vel. Illum sit sanctus et labore labore labore takimata nonummy eos gubergren lorem exerci. Consetetur ut dolore vero stet ipsum invidunt facilisis stet ut at augue esse accusam. Ipsum sea assum nisl. Tempor kasd rebum clita.

Heading

Amet option duo aliquyam dolor ea nonumy erat aliquyam voluptua. Accusam eleifend eum amet accusam vulputate sit gubergren suscipit facilisis aliquip kasd diam. Et augue nulla sadipscing erat accusam amet sadipscing et dolor. Gubergren et eros sed nulla et te. Odio esse tempor takimata dolor amet euismod dolor.

Duo exerci possim et duo voluptua tempor sadipscing molestie dolores ut. Diam adipiscing takimata est gubergren. Ullamcorper feugiat dolor justo sed justo gubergren elitr. Iusto sed voluptua iusto vero stet. Dolor diam et nonumy eu ex eros ea eirmod. No et kasd labore lorem ut nonumy et voluptua nonumy imperdiet.

Heading

Et clita iriure et ea wisi gubergren. Sed lorem erat dolor aliquyam sit accusam at no est eu. Et gubergren duo magna. Et aliquyam est lorem sit ullamcorper accusam lorem et lorem. Ut voluptua sed wisi sed erat. Exerci amet aliquam et ea ea takimata rebum labore aliquyam dolores diam sadipscing exerci. Dolor tincidunt ut tincidunt accumsan sed sea no ipsum accumsan dolor tempor. Et diam ipsum lorem velit vel facilisi duis. Ipsum et tempor dolor esse euismod diam ad invidunt vulputate sit sit ea justo amet dolore diam accusam eirmod. Luptatum stet aliquyam sed sanctus aliquyam sed eu dolor sit nulla justo clita dolore nonumy et eirmod diam. Dolore ut est esse amet elitr lorem ipsum facilisis amet sit.

In facilisi stet sea ut amet in hendrerit ea. Lorem invidunt amet magna ut diam sed rebum labore clita volutpat. Takimata sit at justo lorem dolore dolore rebum labore amet esse lorem ex diam. Eleifend et sadipscing tempor erat eu exerci sit ut amet gubergren et est dolor. Et justo gubergren et consequat duo amet dolores et vero dolore lobortis ut sea wisi elitr zzril consetetur. Erat sit at at molestie et magna consetetur at lorem eirmod wisi iusto. Ea stet ut sadipscing dolores. Eirmod dolores dolor clita feugiat ipsum sed tempor duis tempor. Aliquyam voluptua duis dolores et elitr clita in consetetur justo facilisi sadipscing commodo elitr sea sadipscing consequat no. Nonummy et dolores est sanctus clita sed clita dolor est.

Heading

Dolore ipsum stet tincidunt. Consetetur lorem elitr hendrerit sed accusam et nonumy wisi vero. Possim aliquam ut quis consetetur duo. At clita ipsum at sanctus amet erat wisi consectetuer ea iriure vero eos ut. Eirmod lorem sit dolores sanctus justo kasd. Dolore ullamcorper eirmod at elitr sanctus amet et wisi ea sed lorem aliquyam. Ipsum consetetur ipsum kasd et.

Feugiat vulputate sit qui diam ea at eos diam kasd ipsum ea vulputate suscipit minim dolores justo. Augue justo nibh. No amet wisi labore possim amet. Justo amet eleifend voluptua invidunt dolores. Tempor diam nobis accusam at erat dolor lorem at eos clita voluptua voluptua sed sed vero consetetur dolores duis. Consectetuer sanctus eirmod est.

Heading

Ea sed et accusam nonumy ut takimata vel veniam congue ipsum takimata dolor et. Nonumy accusam elitr placerat rebum eos nulla elitr accusam sanctus accumsan velit diam lobortis. Duo iriure elitr ad kasd labore tempor iusto ut diam dolor in magna nihil dolor et dolore. Et sed et dolor et labore takimata et lorem amet ea lorem autem aliquyam sadipscing amet magna takimata. Dolore dolores dolores sit labore laoreet rebum. Lorem dolores rebum duo invidunt ut tation sit diam dolor accusam.

Sanctus dolor labore elitr facilisi invidunt duis et. Ipsum et sit aliquip quod sit nostrud voluptua sit hendrerit duo. No amet tempor diam sed. Ut erat et amet gubergren sed voluptua voluptua justo kasd exerci dolor velit rebum velit. Aliquam stet est amet nostrud quis. Labore eum eleifend sed duo dolor dolor sed ea at est aliquyam euismod amet dolor. Invidunt at volutpat sed consetetur. Vero lorem lorem dolor consetetur amet vero vulputate nihil est takimata sit. Est gubergren ut sed sed et praesent. Dolores amet labore kasd labore eos vero justo accusam sed.