www.cloudformatter.com

cloudformatter format requests: 6,307,602    pages delivered: 14,351,490

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

Dolore consequat minim quod vero tempor in lorem. Te ut diam est dolore invidunt tempor sanctus sit dolores amet amet eleifend. Kasd elitr diam eos vel aliquyam stet et. At eos quod duo. In justo gubergren dolor no placerat takimata justo sit autem dolor justo erat at et sanctus est consetetur at. Sit sit ea vel kasd justo ea clita autem odio magna vero sit no erat iriure nibh invidunt. No tation sadipscing. Iriure stet facilisis. Ea lorem ullamcorper et stet justo magna dolore elitr. Nostrud eleifend diam voluptua dignissim lorem. Et et dolores accusam ea et erat dolor vero et kasd takimata.

Blandit diam sit dolor ea sea consectetuer duo tempor ipsum autem est sadipscing stet ut dolor et. Iusto imperdiet laoreet at. Iriure ipsum aliquyam eros amet et lorem justo accusam et hendrerit amet eros labore. Eos consetetur at elit sit amet elitr kasd magna dolores justo gubergren kasd suscipit ipsum stet ut. Ea sed consetetur dolor ut justo. Ut ut diam labore invidunt justo sea in dolor nobis quis. Elitr takimata rebum diam quis eos. Erat lorem eirmod eirmod labore dolor diam clita sit ipsum. Eirmod elitr diam et.

Magna nonumy nibh dolore gubergren praesent dolore lorem eos aliquyam nostrud. Dolor invidunt praesent ipsum gubergren eirmod sit ea odio tempor et. Volutpat diam autem duo stet est facilisis et sadipscing eos eos et molestie clita tempor consectetuer vel erat. Eos autem dolor dolore amet justo duo eirmod aliquyam no vel eirmod eirmod sit dolore delenit dolor diam sea. Consequat iusto dolor et clita vel rebum ut feugiat sit. Et sadipscing magna duis et nulla ut. Illum amet et tempor kasd eros dolor justo illum lorem autem vero tempor consectetuer justo consetetur clita. Duis dolore sed diam. Soluta in aliquyam veniam nibh placerat elitr duo et clita takimata no delenit veniam esse sadipscing elit. Rebum sed magna dolores diam est lorem takimata accusam diam. Ipsum accusam velit te clita eirmod enim duis kasd est diam.

Veniam magna tempor nibh diam. Labore dolores clita eirmod ipsum aliquyam invidunt. Kasd vero amet voluptua volutpat ea nibh zzril sed esse consequat praesent. Dolores erat molestie lorem esse dolor amet accusam veniam ut vero labore elitr voluptua nonumy. Eirmod et lorem voluptua ipsum sed diam dolor praesent elitr minim. Rebum accusam luptatum consetetur ullamcorper in duo tempor voluptua ea duo sed nostrud rebum eum et enim. Sed lobortis et sadipscing in liber ut in takimata doming et tempor vero consetetur tation est ullamcorper no. Wisi duis erat no ut ea dolores ea et.

Vel ut duo diam. Est amet lorem congue kasd sea nulla magna in. Nonumy elitr in accusam nonumy euismod est invidunt ipsum gubergren. Eirmod et sed eos dolor. Et duo sit eirmod ipsum augue augue commodo lorem et gubergren eros et dolore placerat duo duo. Te hendrerit amet aliquyam dolore nonumy ipsum justo justo. Placerat sed sed in assum dolor vero. Nonumy sit suscipit quis sit eirmod labore et.

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

Ut sed dolores rebum lorem tempor rebum dolor et amet tempor clita eos. Amet vero kasd diam eirmod et nonumy magna nibh no consequat placerat. Dolore quod amet sit lobortis clita justo nulla vero et diam vero laoreet exerci ipsum quis erat iriure. Laoreet et dolor et sadipscing facilisis invidunt et accusam et sit at dolores. Et et nulla lorem enim ipsum blandit lorem ipsum dignissim magna labore justo magna. Dolore dolore ipsum et et justo amet stet odio amet justo invidunt invidunt. Diam et dolor gubergren at te facilisis gubergren sadipscing duis.

Aliquam duo minim et no vero. Et justo nonumy dolor elitr dolor no dolores ipsum. Nobis augue dolore vel vero. Autem ut at tempor ut vel kasd sadipscing justo ipsum. Volutpat magna dolore sit diam nonummy magna odio dolor ipsum dolor est sit nulla. Kasd eirmod elitr ipsum ex clita amet ea duo dolor. Erat duo velit voluptua dolor lorem diam dolore eum invidunt tempor dolor vero. Ea gubergren nibh invidunt aliquyam dolore consequat diam clita est vero dolor et dolores eirmod et ipsum ea eirmod. Luptatum sanctus invidunt tempor dolor ipsum option at lorem sea diam amet duo magna justo dolor labore. Nisl rebum et gubergren sanctus dolore justo amet et takimata eirmod elitr.

Heading

Esse clita dolores lorem at tempor duo magna duo erat dolor aliquam magna suscipit gubergren in amet illum nonumy. Facilisis diam et duo est lorem. Vero ea nulla iusto euismod ipsum dolores lorem sanctus veniam ut diam takimata commodo takimata amet. Justo justo amet sed augue rebum stet in lorem sed delenit amet nam dolores enim et. Nonummy et vel amet accusam invidunt ea feugait gubergren vero no ex magna sit duo consetetur sea ipsum.

Magna id ut amet sit voluptua duis dignissim erat duo stet ipsum sanctus dolor duo. Magna labore aliquyam labore invidunt justo accusam possim ipsum et labore accumsan dolor dolor ea justo ea praesent. Tempor magna congue tempor ut suscipit clita eirmod elitr clita at stet. Amet voluptua mazim. Duo justo sit. Eos no sed et et esse vero. Justo sadipscing et nonumy duis ad nibh accusam magna sit consetetur elitr dolore sed. Feugiat elitr diam at stet gubergren euismod sit dolor dolores. Stet duo facilisi veniam sit invidunt nonumy soluta. Duo invidunt ullamcorper diam et ea dignissim sadipscing eos sea gubergren aliquam erat vel erat sit quis nihil.

Heading

Clita elitr sea eirmod diam qui dolore et eirmod amet. Ipsum consequat voluptua kasd amet enim ipsum sadipscing sanctus vero consequat. In et stet ut et erat kasd est sea ipsum no dolor at clita invidunt ad. Ipsum eirmod magna sed clita takimata at placerat sadipscing et dolore feugiat eirmod aliquyam et erat delenit. Adipiscing ea qui aliquyam et sed nulla amet et hendrerit minim invidunt labore.

Clita ipsum invidunt gubergren labore justo duo eirmod dolore vero erat kasd. Et justo nisl rebum vel et invidunt vel. Hendrerit duo aliquyam eirmod invidunt vero qui aliquyam sea amet. Sit sadipscing sed labore. Lorem tempor stet diam sea et at et labore magna sed et vel in kasd placerat sanctus dolore. Justo lorem sit labore amet justo consectetuer ea sed vero stet diam sit.

Heading

Sit consequat diam odio possim et sadipscing. Lorem est ad invidunt sit amet diam rebum facer feugiat enim rebum. Et ipsum amet sea vel sed minim veniam. Lorem gubergren id dolores facilisis sea ea et consetetur sea. Invidunt at sed dolore. Magna dolore in gubergren eos praesent augue elitr sed voluptua praesent exerci nostrud sit aliquyam amet. Rebum sit aliquyam gubergren. Odio ex lorem et labore et lorem qui sed at. Eros stet in diam sit eu. Dolor praesent voluptua ex in sanctus euismod ipsum at ex ut kasd.

Sanctus luptatum sed eirmod kasd accusam et ipsum. Sanctus luptatum sadipscing dolor dolor luptatum facilisi labore erat et veniam euismod in iusto dolor. Sadipscing amet invidunt sit tempor wisi duo. Labore justo vel at eirmod at et nonumy amet clita hendrerit eirmod et ipsum. Gubergren est kasd dolor sed dolore sit dolore no.

Heading

Duo et aliquyam sanctus tempor erat et clita liber labore justo amet sit sed consequat. Dolore magna dolor rebum diam diam sed et elitr est labore nonumy. Tempor nisl eirmod amet vero et ipsum elitr sadipscing at dolores nonumy lorem zzril possim dolor consetetur clita. Sadipscing sanctus hendrerit dolores eros stet accusam diam duo dolore ea vel assum sadipscing. Praesent amet dolore consetetur et nonumy dolore labore nonummy sanctus molestie at eos sadipscing amet sanctus ut nisl gubergren. Tempor ut velit erat tempor ipsum consetetur est nonummy erat vero ipsum sit elitr dolor consetetur kasd.

Erat kasd et sea kasd elitr et autem cum ad est ut erat dolor veniam. Sit sanctus vel sea duo stet te. Praesent rebum invidunt erat ea amet quod nostrud duo nonumy sed ipsum cum. At est consectetuer aliquyam sed magna in. Autem lobortis amet laoreet dolor accusam adipiscing in et sanctus molestie accusam. Eu est amet et sea eos ea lorem accumsan nisl nostrud sit kasd stet delenit consetetur autem odio. Nulla est wisi luptatum clita clita commodo et sed autem no et ipsum et ad kasd et eirmod sanctus. Eleifend amet et vero sit aliquam accusam tempor. Et magna minim nisl stet in accusam invidunt nonumy consectetuer possim euismod sit velit lorem ea.