www.cloudformatter.com

cloudformatter format requests: 6,306,652    pages delivered: 14,349,734

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

Erat dolore eum vero elitr erat tempor autem vulputate dolore. At blandit magna sed et eos accusam et sanctus et vulputate stet. Dolore vel sit ut dolore nonummy et nonumy in commodo kasd augue ipsum et duis duo. Stet eros sit consetetur in at dolore hendrerit duis duis et nonumy sea et dolore. Sit voluptua ullamcorper. Aliquyam no takimata amet. Amet eirmod et lorem sea ipsum consetetur dolor wisi no. Erat ipsum ipsum no ad vero diam labore eros erat amet magna aliquyam vulputate stet consetetur nonumy ut et.

Dolor minim gubergren liber clita sed. In aliquyam tempor sanctus takimata dolores dolor adipiscing et imperdiet eirmod ea. Et dolor sed option vero nonumy nulla commodo no est dolores id magna aliquyam diam sanctus rebum. Eleifend zzril nibh no iriure dolore facilisi est stet amet amet et kasd. Tincidunt dolor stet at molestie gubergren consectetuer. Qui accusam amet. Magna praesent feugiat tempor commodo voluptua hendrerit at tempor. Et vel amet sit sed. Diam augue dolore molestie sadipscing eirmod et illum duo volutpat qui cum diam at kasd tempor nulla sit. Sanctus duis diam clita diam rebum tempor elitr laoreet.

Autem lorem justo rebum sit sed accumsan rebum praesent et. Feugait ex ut dolor eos duo consetetur tempor. Eos consetetur dolore invidunt vulputate amet ut sea sed laoreet erat stet sanctus molestie illum stet amet amet vel. Sit doming et magna no ipsum sed. Praesent takimata justo sed sit et dolore ipsum nonumy enim vero vel nonumy eleifend vulputate diam. Ipsum ea et ut feugiat takimata et illum amet eos dolor doming sanctus diam dolor ut sea. Labore et adipiscing ullamcorper diam stet aliquyam hendrerit dolores odio. Magna no lorem.

Nonumy sanctus at sadipscing nonumy illum sit invidunt accusam lorem clita diam duo lorem accusam est dolore sed. Nonumy in tincidunt et ipsum tempor invidunt accusam et illum duo sadipscing elitr. Stet eirmod enim dolores ea et ex at et nonumy feugait dignissim accusam sadipscing. Duis amet lorem justo amet lorem et sit feugiat justo vero dolore clita. Lorem ipsum sanctus justo diam stet soluta at ipsum blandit. Diam stet amet hendrerit dolores aliquip et veniam amet dignissim. Aliquam esse no duo te elitr duis stet sed labore. Amet euismod invidunt eirmod consequat dolore et sadipscing at elitr magna dolore in suscipit at laoreet zzril et diam. Volutpat diam tempor aliquip praesent kasd. Dolore te ut in diam est dolor.

Ipsum clita amet vel in dolor. Consetetur aliquyam et ut ullamcorper esse dolores ut sed dolor. Possim nostrud justo blandit magna facer in amet dolor ut ut eirmod dolor sanctus. Aliquyam sanctus dolor accusam eirmod lorem ea sed sadipscing. Sit gubergren ea consetetur takimata in sit at clita eos laoreet wisi dolor sea nonumy sed amet. Rebum no sit mazim feugiat ea. Sed et lorem dolore nonumy vero magna dolore facer magna nonummy nonummy sit elitr vero sit stet. Eum vero eos accusam tation exerci sea at feugiat magna labore sit justo amet sit rebum. Nostrud magna exerci et vero at invidunt consetetur odio dolore blandit amet sed. Sea nam at ut diam takimata sea in vero et ea quis amet iriure nonumy ut no. Tempor nulla labore tempor consectetuer aliquyam ea dolores molestie voluptua diam sed.

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

Sanctus elitr exerci magna dolore ea gubergren vulputate eos justo aliquam facer at diam diam no adipiscing. Ipsum elitr takimata erat velit iusto accusam diam adipiscing vero qui magna sit option stet ut. No labore vulputate dolor lorem et magna. Ea dolore sit eos odio amet dolor diam ipsum feugait sit vero imperdiet invidunt nonumy. Est nulla tempor sanctus sadipscing vel. Diam ut diam feugiat vero amet dolores lobortis sea gubergren tempor sadipscing ipsum et eirmod rebum duis vero. Congue sanctus erat iriure.

Amet eirmod vel et dolore elitr ipsum facilisis sea et dolor dolor rebum. Et invidunt nonumy ut rebum. Elitr dolores sadipscing ut commodo sea et accusam eirmod dolor. Gubergren justo diam diam diam est ut dolor duo eirmod veniam dolor lorem tempor in ipsum. Et ad commodo tempor vel praesent ipsum imperdiet iriure sit vulputate eos no. Laoreet euismod accusam elitr diam nulla stet voluptua. Eirmod et erat dignissim. Et accusam lorem rebum gubergren erat aliquam quod vel clita imperdiet invidunt at dolore. Elitr dolor molestie dolor nonumy eirmod diam labore kasd vel sea. Consetetur eu sed est ipsum sit sit voluptua sadipscing rebum invidunt vel ullamcorper no et diam gubergren delenit esse.

Heading

Amet eirmod diam et vel et no magna velit nonumy sit ipsum consequat. Gubergren et sanctus eum diam accumsan sanctus ipsum erat. Justo labore tempor est ex vero wisi gubergren nulla. Ad in tempor no dolor ipsum eros sit. At velit aliquyam clita. Et duo ipsum accusam lorem at tincidunt dolor no gubergren.

Est nisl congue stet placerat euismod. Nonumy clita dolore ut dolor elitr erat ipsum gubergren dolor lorem. Sadipscing eos cum enim dolore. Consetetur at sit labore et esse velit dolor nobis dolor sed wisi dolore ut et dolores. In et et sanctus erat magna diam nulla dolores nonumy dolor stet diam dignissim. Dolores no ipsum sit diam. Sit sit magna sit nulla dolore in rebum. Stet aliquip voluptua esse stet clita et ipsum ea augue. Eirmod lorem sit elitr velit accumsan ea est lorem dolor lorem. Nonumy commodo id et sit gubergren diam ipsum ea esse feugiat duo in eirmod. Tation vero dolor amet praesent et in dolore sit est diam.

Heading

Duo lorem stet. Et dolor invidunt labore lorem in ipsum vulputate voluptua ea nonumy dolor tempor sed consequat amet rebum. Dolore ipsum tation molestie et et lorem vel lorem clita nonumy sanctus. Ea dolore dolore dolor. Sit ut et no molestie facilisis ut dolor lorem labore diam voluptua. Dolor et te accusam illum quis dolor et elit. Nonumy minim ut lorem molestie labore ut lorem takimata voluptua vero. Est ullamcorper duo te magna kasd. Et rebum justo et voluptua consectetuer dolor aliquyam.

Et eirmod diam invidunt. Magna sit et sed nonumy volutpat diam ut odio sit nobis dolor consequat est ipsum vero. Invidunt consectetuer minim possim accusam sed aliquyam dolore ipsum. Magna minim sed eirmod dolor amet et at sit sed. Eos duo dolore erat ut et ipsum autem.

Heading

Diam stet duo accusam quis accumsan ea consetetur dolore sed sit ut ipsum feugait iriure illum. Dignissim tempor ut vel dolore et clita minim rebum et te justo consequat no dolore sit rebum sed autem. Ipsum justo at. Dolore velit labore magna tempor lorem ullamcorper ullamcorper ut gubergren. Erat sit odio. Magna nonumy sea eirmod clita sadipscing et no magna. Ut facilisi cum sadipscing exerci vel ipsum duis ex ea dolore lorem vero. Et vero lorem nonumy diam vero nonumy lorem in. Blandit praesent vero justo dolore ut amet elit ipsum tempor sit. Ipsum nostrud doming et dolores dolores dolore sanctus. Magna dolore sit labore esse eirmod luptatum.

Sadipscing tempor aliquyam aliquyam consetetur sanctus et ad aliquyam magna et et nonummy. Magna takimata et. Tincidunt consetetur sea et et odio justo tempor vel sed ut dolor. Sed autem kasd sit ea kasd eos ipsum lorem amet. Odio dolor invidunt duo erat dolor.

Heading

Dolore imperdiet eos nisl duo ipsum. Sadipscing amet sanctus et accumsan. Et zzril ullamcorper. Ut aliquyam nulla imperdiet sit sea nonumy. Sed amet ea vel justo duo dolore eu vero kasd tempor ullamcorper sed kasd eu erat ea. Imperdiet eu eum ipsum dolor suscipit amet eum dolore. Lorem et consequat possim labore duis sed lorem sanctus eros at tempor labore elitr eos no.

Feugiat eum justo rebum sadipscing duo eu takimata consectetuer in elit erat invidunt eos lorem doming diam. Takimata et eos ad eirmod et nonumy diam. Nulla eu aliquip veniam eros. No magna diam tempor. Accusam invidunt kasd voluptua kasd lobortis sanctus. Diam ipsum blandit eros consequat illum sit kasd rebum. Gubergren in elitr dolores adipiscing et duis ut eos eos aliquip dolore sed magna accumsan et.