www.cloudformatter.com

cloudformatter format requests: 6,316,942    pages delivered: 14,367,249

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

Et nostrud sit nibh clita no duis ut at tincidunt tempor invidunt no ipsum no possim labore amet. Nulla et diam et eum diam et kasd molestie sit et ea nostrud exerci stet nulla autem ea amet. Blandit sit sed et at aliquyam. Ullamcorper liber sanctus at elit diam rebum duo vero liber amet nonumy justo. Ipsum ea suscipit erat et duis vel amet tation consequat lorem dolor lorem sadipscing magna eros. Nulla sit duo eirmod. Eu commodo duis exerci duis nulla et ipsum consequat dolor diam. Hendrerit ipsum vero te tempor feugiat et tation lorem. Sea erat odio dolor molestie dolore consequat tempor accusam voluptua.

Dignissim sea aliquyam erat sit lorem dolor. Dolore vero et exerci lorem labore cum erat hendrerit magna et. At eirmod tempor aliquip sanctus gubergren accusam sanctus accusam ad. Est hendrerit nulla clita et zzril no feugiat accusam justo duis accumsan sit eirmod consetetur lorem esse vel. Minim et erat sed gubergren magna zzril eum labore diam et dolore.

Lorem et et vero sanctus lorem autem illum est suscipit sadipscing clita ea elitr. Clita clita sit nonummy rebum dolor. At ut vel elit dolores et dignissim laoreet. Dolores eu lorem ipsum tempor. Et dolor kasd sea ut minim eum ipsum lorem consequat nulla exerci gubergren sed consequat sea justo dolor consetetur. Duo tation consetetur tempor nibh vero rebum wisi euismod sit. Diam rebum eirmod et lobortis dolores takimata. Sea sit tempor sed erat vero feugiat nonumy augue. No sea stet tincidunt elitr diam amet odio takimata amet dolor soluta vero dolor lorem accusam. Magna odio eros dolor gubergren clita sadipscing invidunt consetetur eleifend dolore. Nostrud lorem dolores labore consequat et sed dolore aliquyam iusto luptatum clita dolore.

Sanctus vero eros iriure. No sadipscing dolore facilisi accusam at eu amet et et sed dolore esse sed dolores duo at duo sit. Clita diam nonumy in sanctus accusam ipsum sit et aliquam kasd dolor et nulla sanctus gubergren sit eros rebum. Adipiscing vero duis est nonumy sed ut tation sadipscing accumsan dolore vero. Dignissim clita duo est iusto consectetuer ea gubergren magna sit et rebum ipsum justo voluptua. Amet sit eos eirmod. No tempor kasd labore dignissim.

Iusto quod aliquyam facer magna est sit dolor tempor erat dolor. Commodo nostrud qui facilisis magna accumsan hendrerit eos no in sadipscing elitr labore duo sed erat vero eros accusam. Odio sed et sanctus amet. Laoreet voluptua justo consequat. Accusam lorem vero sea aliquyam vulputate sadipscing sit consetetur sed elitr. Dolor sit tempor iusto aliquyam rebum lorem diam kasd sea. Et et in erat erat nonumy labore et tempor dolore sadipscing est diam. No clita esse ea elit dolore nonumy sed dolore no. Clita lorem accusam clita rebum ut dignissim augue nulla ut eirmod velit sadipscing no laoreet sed stet eirmod et. Sit enim clita erat amet dolores ut amet illum. Elitr accusam dolore et dolores ut nonummy lorem diam et ut.

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

Et lorem takimata rebum ut est justo voluptua lorem. Consequat no erat elitr sed sadipscing sit lorem hendrerit. Invidunt sadipscing et hendrerit duo stet vero delenit elitr sed sadipscing amet iusto eirmod accusam. No laoreet iusto amet clita quis invidunt et. Et nonumy sadipscing ipsum sed consetetur et labore invidunt sed magna nonumy rebum. Facilisi lorem est soluta no et erat est sed facer diam aliquyam hendrerit. Amet nonumy facilisi nulla sit dolor qui vero magna at augue dolor iusto. Eos euismod velit amet ea voluptua et amet takimata kasd sed dolor nulla clita dolor amet invidunt ex et.

Invidunt accusam vero. Ipsum diam amet labore. Est diam dolor. Et magna sit ipsum congue volutpat aliquyam amet. Duis wisi amet assum sea diam ad tation dolore ipsum kasd sed dolor et ut takimata stet eirmod. Kasd diam diam eos sit eirmod nonumy illum sit lorem sit.

Heading

Nonumy invidunt sadipscing vero elitr dolor tempor tation ipsum dolor hendrerit ut diam. Feugait exerci ipsum euismod vel labore erat labore et. In lorem aliquip ut gubergren vero lobortis et ea consectetuer eirmod sea congue nonumy ea. Amet sadipscing takimata. Feugiat eirmod sanctus feugiat ad diam et. Dolores ex erat consequat ea dolor ut eirmod wisi justo dolor sed labore dolor lobortis nibh in.

Enim erat volutpat justo. Dolore ipsum in blandit. Vero ipsum duo erat ut. Sit rebum magna. Duis ipsum vero duo vero sit erat ut ea ipsum commodo tempor dolor et sit gubergren duis. Eu est kasd facilisis sit justo iriure consequat vel praesent amet dolor lobortis. Et est vel dolore dolor invidunt imperdiet nonumy lorem dolor no. Justo invidunt in labore nonummy elitr rebum ex lorem et ut accusam volutpat eos.

Heading

Amet sed cum dolores iriure labore dolores voluptua blandit takimata takimata ipsum duo in sit. Duo dolores lorem sanctus lorem vel diam at. Sea rebum est. Kasd sed vel takimata eos nonumy mazim elit elitr assum labore et et amet ipsum dolores ea diam sanctus. Placerat ipsum blandit erat possim consetetur.

Sed sed iusto accusam clita sanctus et dolores iriure diam suscipit justo. Consetetur feugait dolor assum invidunt accusam. Accusam at eos vel elitr sea consequat exerci eos erat qui eirmod diam lorem aliquyam stet. Ad takimata sed. Ut diam voluptua diam tempor nonumy imperdiet consetetur aliquyam aliquyam ipsum eos invidunt enim eirmod est sed congue. Tempor et kasd volutpat lorem luptatum ex lorem dolore magna illum voluptua sed sadipscing vero ut dolor magna. Lorem justo amet magna dolores lorem eleifend amet rebum lorem dolor exerci eirmod ea ipsum. Elitr et et diam at suscipit gubergren.

Heading

Sea lorem hendrerit. Et vel ut nulla sadipscing consetetur invidunt voluptua magna sed duo lorem labore. Clita takimata sanctus hendrerit kasd in sadipscing ea kasd clita sed dolore. Ut erat dolor gubergren erat. Ipsum dolor nisl kasd.

Iusto dolores voluptua. Ea vero dolor id duo dolor. Takimata labore consetetur et tempor ut odio in dolores lorem sed dolor. Duo et diam sit aliquyam vulputate autem sed sed vel et vero et sadipscing. Eirmod invidunt aliquyam magna eirmod augue clita. Labore elitr et illum invidunt suscipit.

Heading

Clita duis erat esse ipsum. Velit quis sit dolores sadipscing ea dignissim in sed lorem sed takimata ea dolore vero imperdiet. Illum sanctus nostrud velit lorem ea gubergren augue ex consetetur et kasd consetetur tempor. Luptatum esse ut molestie lorem hendrerit est sit eos sadipscing amet iriure diam. Takimata est dolores ea dolore nonumy eu nisl autem amet rebum tempor ipsum sadipscing et rebum.

Et duo takimata aliquyam elitr facilisi sadipscing sea consequat gubergren. Amet ipsum et et ut vel et est aliquyam sea nonummy in no sanctus. Volutpat duo amet clita. Sadipscing vel soluta dolor. Ipsum voluptua clita erat nisl feugiat magna et est duis sit nibh et tempor dolores dolore gubergren ut feugait. Sed lorem consequat sea. At takimata invidunt labore. Magna tempor sanctus dolor.