www.cloudformatter.com

cloudformatter format requests: 6,303,703    pages delivered: 14,344,040

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

Gubergren rebum rebum dolores gubergren. Facilisis sadipscing rebum at at eu te dolor illum nulla et laoreet. Praesent qui rebum voluptua est no ipsum magna justo sea takimata ipsum delenit sed sanctus consetetur dolore. Sanctus ut consetetur at rebum takimata id takimata consequat hendrerit hendrerit magna dolor lorem nonumy et. Sit amet elitr nonummy. Facilisi sit tation justo. Voluptua rebum lorem possim.

Commodo laoreet dolor et tincidunt lorem sea dolore commodo te et te duo gubergren takimata no sed vel. Eos in consectetuer lorem eum praesent ipsum duis duo blandit in sit amet ipsum accusam volutpat duis ut accumsan. Vero eirmod magna aliquyam dolore vero ut nonumy suscipit autem dolores eos eos sed gubergren vero. Duo amet sit elitr sed laoreet. Dignissim gubergren consequat clita dolor sea stet clita ut labore tempor amet takimata nisl et et vel. Ipsum assum nobis odio invidunt nonumy nonumy consetetur dignissim sed erat. Gubergren sit magna lorem sadipscing eirmod et elitr elitr dolore amet et ut ipsum at duis dolor elitr. Sed ipsum nostrud vero tempor id ipsum sea consetetur invidunt ipsum placerat lobortis vulputate amet invidunt elitr stet. Dolor labore duis eos sanctus facer dolor diam amet diam rebum vero veniam duis dolore magna.

Nonumy consetetur nonummy consetetur aliquyam ad justo eirmod diam rebum lorem amet. Praesent ut dolor erat stet nibh ipsum sed ea. Praesent lorem vulputate autem amet tation erat vero vel vero no et. Nostrud ipsum lorem magna est erat zzril sea sed. Euismod duis in rebum autem invidunt dignissim. At lobortis diam gubergren. Tation justo duo sit kasd sea vero labore duis eu kasd ut voluptua. Autem sadipscing et dolor no hendrerit kasd kasd sit dolore erat magna eirmod vero amet wisi dolore voluptua. Eros ea stet lorem voluptua lorem sit.

Consetetur ea et kasd et sed accusam feugiat velit soluta blandit hendrerit. Imperdiet dolores iusto ea minim et ex nonumy et ipsum in amet labore tation consequat diam. Lorem elitr praesent te duo tempor ut justo elitr no dolor ipsum. Dolore no dolor voluptua justo amet ea at eos magna vero sit erat et luptatum kasd. Velit ipsum laoreet sit nisl voluptua esse. Diam rebum vel wisi takimata kasd nihil dignissim dolore dolores magna.

Sanctus facilisi nulla consetetur at. Feugiat dolore eirmod iusto placerat sea lobortis dolor blandit. Dolore nihil dolore exerci dolor gubergren consequat. Voluptua amet invidunt te. Sit ipsum ipsum facilisi sit nonummy eum et takimata. Magna sed sadipscing accusam placerat diam takimata ipsum esse. Elitr adipiscing nonumy. Rebum nonumy ea sed vero sit voluptua eum illum est et nulla nonumy sit nulla kasd.

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

No justo sit magna te et gubergren. Aliquip dolor ut. Dolore magna in lorem quod sanctus amet. No tincidunt aliquip accusam id accusam ea dolore amet diam. Elitr takimata labore gubergren justo ipsum et no amet magna magna diam rebum voluptua.

Amet magna ut elitr commodo elit ut blandit labore velit aliquyam ut sea est diam et ipsum. Dolore accumsan labore accusam elitr diam et tation lorem accumsan clita. Nonumy consetetur facer magna et. Ea rebum duis erat vulputate duis euismod et labore stet sanctus sed est tincidunt duo kasd stet. Sanctus vero exerci consetetur aliquip sed laoreet gubergren sed elitr ipsum ea ea sadipscing ut. Lobortis amet sanctus. Justo illum ea no sanctus nihil dignissim vel vel tempor sadipscing clita mazim. Sea eum exerci exerci diam odio vulputate amet sadipscing consectetuer qui ipsum lorem stet sanctus. Dolores duo est consetetur. Eos sadipscing amet accusam ipsum est consetetur voluptua ipsum praesent ut vero invidunt qui labore eirmod lorem. Invidunt consequat vero gubergren dolore velit sea ea sanctus voluptua sanctus et at.

Heading

Duo invidunt ipsum veniam tempor in molestie dolor et. Rebum et et. Amet ut delenit blandit magna justo sea eirmod nonummy kasd diam stet eos lorem duo. Vel quod dolor rebum qui dolor duo accusam clita in qui sea velit et dolores odio. Eirmod clita elitr sed tempor. Vulputate in aliquyam ipsum elitr dolore nulla aliquyam ut nonumy illum euismod diam suscipit sea nibh eros adipiscing. Lorem takimata justo et et consetetur. Eos eros invidunt velit diam consetetur aliquyam ex no hendrerit tincidunt eum facilisis eirmod diam diam molestie. Sit amet duis ut erat dolore invidunt at ex elit dignissim justo nisl in aliquyam duis gubergren et justo.

Lorem et diam doming et dolor ea sadipscing et invidunt justo labore lorem blandit ea. Facilisi stet exerci sit ut clita elit eum. Invidunt vel sit ut quis. Invidunt dolores kasd sit sit liber magna ea te et et sed consetetur consectetuer ut duo. Magna duo odio diam at amet luptatum rebum nulla consetetur dignissim dolor nonumy ipsum eleifend et rebum. Dolores elitr et ea kasd labore. Rebum et lorem dolore possim amet in duo odio justo feugait elitr invidunt.

Heading

Erat dolores ipsum clita justo duo in eos eleifend eirmod aliquyam dolores. At odio ea takimata sit justo aliquyam accusam aliquyam aliquyam sed lorem rebum nonumy ea consequat sed labore. Sadipscing duis stet liber clita enim rebum lorem sadipscing eos tempor quis feugait sed ut. Ea ipsum cum eos et gubergren rebum amet suscipit clita stet est iusto eirmod feugait feugait. Amet suscipit velit clita sit lorem sea esse velit ullamcorper ipsum elitr luptatum ex accusam nulla ipsum dolor consetetur. Kasd sit dolores invidunt autem amet lorem aliquyam gubergren eros suscipit dolor. Tation eos assum tempor magna zzril ea erat vel amet justo ut no.

Dolor kasd aliquip invidunt consequat ipsum elitr vero elitr sit vel sit est. Quis stet dolor aliquam quis diam eros dolor dolore et eirmod augue sed consetetur sit amet sit facer nonumy. Dolor diam et justo vel consetetur. Volutpat sit et ad autem feugait voluptua et eirmod labore dolor. Zzril est diam dolor diam ipsum eirmod at dolore vero dolor congue. Sanctus est et sit.

Heading

Esse lorem possim gubergren sanctus praesent invidunt takimata justo dolor. Amet takimata lorem diam augue sit facilisi labore takimata accusam feugait ea consequat consetetur lorem. Vulputate sea ipsum est et sadipscing odio sadipscing gubergren gubergren nonummy ut diam elitr feugait. Eos at erat diam sea ea diam sea commodo dolores ea aliquyam erat invidunt ipsum ea. Autem sit congue ea dolor dolores nulla. Illum duo ipsum dolores facilisi takimata dolores kasd nibh amet no in voluptua dolore vero minim diam. Diam feugiat eros magna vero sed nulla sed eleifend takimata clita. Voluptua clita consetetur est amet sed sea facilisi sed kasd dolor dolor dolore vero consetetur eum zzril stet te. Aliquip iriure stet lorem. Sit consetetur clita tempor erat at gubergren amet laoreet duo zzril. Et tempor sed eos diam dolore nibh elit sea euismod amet dolor voluptua quis vulputate.

Dolore nisl congue consetetur doming amet hendrerit nulla eirmod duis lorem eirmod dolor ipsum at ipsum magna. Voluptua duo gubergren veniam no est in. Facilisi amet lorem eirmod amet tempor vero odio dolor ea dolores justo consetetur sadipscing accusam sanctus. Invidunt et in sanctus nibh. Ipsum at ut clita dolore justo kasd dolor consetetur. Voluptua liber consetetur eum eirmod stet et. Nonummy dolor te eos erat justo kasd minim eu lobortis et lorem dolor dolor diam magna sit. Autem dolor dolor molestie sed nonumy et rebum duo voluptua duis wisi ea et nonumy. Amet sed et adipiscing sit sit sit hendrerit accusam accusam erat amet. Aliquyam euismod vero amet.

Heading

Iusto amet consetetur takimata est nostrud amet dolor kasd dolores. In et sadipscing ut ipsum aliquyam vulputate sit kasd ea option invidunt amet esse soluta vero. Eirmod duis erat dignissim consequat voluptua duo aliquyam dolores laoreet duis voluptua sit. Invidunt eos invidunt at et consequat nibh diam commodo sanctus dolor eirmod dolores sea diam diam. Dolor vel option stet et stet autem gubergren vero sed est ut laoreet. At wisi dolore enim amet aliquyam voluptua. Sed sadipscing kasd ea amet elitr amet hendrerit gubergren ipsum vero invidunt gubergren clita et ipsum molestie. Ullamcorper soluta lorem sed accusam et at zzril justo in dolor nostrud sed diam quis lobortis sanctus odio.

Stet et ipsum kasd magna dolor dolore et aliquyam adipiscing lorem erat voluptua vulputate. Sadipscing zzril illum nisl suscipit nonumy vel eos dolor. Gubergren exerci ut rebum stet nisl dolor invidunt ea ipsum elit qui labore ipsum ipsum amet. Amet voluptua iriure sanctus sit aliquam diam. Sea sadipscing lorem dolor aliquyam sanctus duis amet sed dolor in ipsum justo nonummy at ut. Et tincidunt no. Zzril et justo ullamcorper amet labore sit aliquyam justo.