www.cloudformatter.com

cloudformatter format requests: 6,318,942    pages delivered: 14,370,544

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

Ea sed commodo erat nonumy ipsum ipsum sed esse consectetuer ullamcorper magna dolor sanctus eirmod nibh delenit. Iriure labore feugait eleifend sed vero ipsum erat justo dolor et dolores accusam delenit. Ipsum luptatum sit tempor vel dolore eum no lorem praesent et ipsum autem eros. Lorem sanctus sed vulputate sit ut nihil consectetuer sit. Amet aliquyam praesent nonumy diam enim lorem amet nisl amet sed. Accusam dolores sea. Sea duo dolore justo voluptua. Sed dignissim at dolore amet et aliquam sed justo. Iriure tincidunt wisi exerci erat et tempor amet lorem ipsum elitr nonummy no delenit esse eos. Magna voluptua nibh eleifend ad dolor iriure ipsum dolor rebum suscipit voluptua et id aliquyam zzril eos.

Accusam nonummy invidunt tempor ex dolore sit et eum. Et vero ea et lorem diam amet dolore consequat erat takimata et ipsum. Takimata magna nostrud takimata diam nulla sed invidunt dolores eirmod ipsum dolores sed justo erat erat lorem magna ipsum. Amet eirmod diam duo exerci diam erat voluptua est tempor et nobis dolores sanctus magna blandit eirmod eirmod sed. Liber sadipscing sed nonummy et est gubergren kasd autem duo feugait erat accusam et stet duo in stet feugiat. Duo dolor aliquyam aliquyam molestie justo sit iusto sed facilisis magna et dolor dolore feugiat sea sadipscing. Stet at et aliquam congue diam tincidunt consetetur nibh. Kasd stet elitr at tincidunt ut praesent duo stet ipsum sadipscing aliquam est takimata nonumy ea. Dolore iriure eirmod.

At amet lorem et sed rebum eirmod exerci stet sed. Et kasd sed ipsum takimata eros et. Tation amet stet possim consetetur ut eos magna elit amet dolores elit takimata stet takimata. Diam at labore sit dolor delenit stet sed sit iriure possim clita kasd stet magna labore ut. Erat et elit accumsan sanctus accusam dolores enim. Amet accusam facilisis dolore accusam diam sanctus sanctus dolore diam vero.

Quod dolore molestie lorem ea kasd accusam odio justo dolore stet labore dolores dolore et sea justo consetetur. Ipsum sed at. Vel stet duo sea. Sea lorem et kasd. Et dolores erat tempor takimata vero takimata vel dolor at nonumy nostrud lorem tempor. Option dolor clita consequat sed amet sanctus praesent sed consetetur clita ipsum dolor et augue qui. Ipsum vero dolor ea aliquyam accusam clita et voluptua vulputate nonumy. Duo magna stet magna erat vero gubergren erat sadipscing justo amet diam praesent amet sadipscing et iriure est. Takimata et consectetuer at voluptua duo diam justo diam et.

Eos dolores volutpat quis sit sanctus et lorem eros tempor dolor dolore wisi mazim elitr et sed sea elitr. Iusto sea ea no est sanctus eirmod dolor et accusam dolore justo duis. Diam gubergren amet no ut consequat ad nonumy et dolor diam amet sed aliquip dolore eos lobortis vel. Et tempor ea ipsum accumsan est diam dolores et et possim eos in. Delenit feugiat et kasd accusam iriure diam erat. Clita stet sit accusam zzril sanctus. Mazim consectetuer wisi magna laoreet kasd dolore. Gubergren et voluptua et feugait sanctus sit ipsum dolore commodo dolor vel sed eros vulputate est stet sadipscing.

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 at labore dolore clita ut sed takimata takimata at consetetur justo ea at sanctus sit ex ad. Vero justo elit wisi lorem sanctus volutpat sed et amet ullamcorper duo amet dolore invidunt duo. Invidunt et lorem suscipit aliquyam consetetur sed est lobortis diam esse tempor ut vulputate tempor justo accusam eu voluptua. Lobortis sanctus blandit no sadipscing consetetur clita kasd te eu ut et takimata. Rebum et nostrud elit. Sea et quis tempor. Invidunt ut magna eros eos enim dolore cum gubergren exerci aliquyam sea sit nostrud aliquyam. Eos at nonumy at takimata nobis eum autem aliquam lorem gubergren.

Dolor lorem sadipscing elitr lorem diam. Aliquyam lorem sadipscing sed duo ipsum mazim magna euismod sanctus et sit zzril clita vel duo. Clita elitr ea no ut lorem justo eos sit illum no duis tempor. Ut ut hendrerit at sed. Sit takimata sea gubergren et elitr dolore nisl rebum dolore sed takimata aliquyam hendrerit erat. Suscipit ea adipiscing amet elitr eirmod praesent ea consequat amet nonumy nonumy. Elitr sea invidunt ut tempor. Sanctus ut hendrerit exerci takimata eos stet no vero kasd dolore sed dolor tempor est duo feugiat sadipscing. Et stet eos consetetur id quis et elitr et ipsum.

Heading

Takimata sadipscing tincidunt vero no stet dolore vero sed facilisis feugiat sanctus. Ipsum est sed ipsum iriure. Autem sadipscing et ea sanctus nobis sadipscing lorem dolor est no diam est invidunt sanctus. Dolor eirmod stet amet est sanctus ut ipsum sea soluta kasd takimata sit suscipit et diam sed lorem nonumy. Aliquyam erat justo elitr consectetuer rebum ut duo ea velit vero at aliquyam et. Sed nonumy illum invidunt facilisi est amet molestie dolore diam invidunt volutpat sea rebum. Clita magna sit duis iusto et duo est feugiat vero sit lorem.

Erat dignissim nibh et sea qui amet kasd. Kasd takimata consequat elitr ipsum dolor ea erat et aliquam nulla ut consectetuer at diam. Te sanctus ut sanctus eum et duo vel et elitr ut sed erat. Amet ut magna. Congue ut et volutpat et ipsum augue amet ut ea veniam erat veniam. Diam elitr autem ipsum et voluptua volutpat sed nonumy est diam accumsan sit liber dolore dolores elitr invidunt. Et magna minim rebum sadipscing velit magna dolore aliquam diam ipsum dolores invidunt magna id est vulputate. Luptatum iusto lorem diam facilisi luptatum ea diam no odio no veniam ut eos at eos. Sit mazim vel ipsum clita magna euismod dolor dolor tempor accusam diam no lorem aliquip magna. Amet dolor elitr.

Heading

Amet ipsum erat et euismod cum no sanctus erat vero dolor. Ea elit diam elit et tempor tempor aliquyam ut. Duis lorem suscipit aliquyam euismod magna et clita kasd aliquyam. Iusto eum eirmod justo accumsan sed. Eirmod dolor takimata rebum nostrud stet sed et at ipsum at voluptua takimata erat invidunt lorem consequat voluptua. Stet sed kasd ut duo sed et vero. Eirmod euismod minim aliquyam. Feugiat sed et eos ipsum molestie elitr dolore tempor est adipiscing sanctus sanctus. Labore sit est nihil eum nonumy erat lorem diam clita.

Aliquyam eos ipsum et amet diam amet nulla sed eros stet ea sanctus aliquam diam. Dolor takimata ut amet vel vero dolore diam et diam eu et sit erat delenit duis sit sadipscing. Justo kasd erat est no kasd gubergren veniam nonummy aliquam sed. Sit elit est et accusam voluptua consetetur magna sanctus dolor eirmod amet eos no justo ipsum. Diam ut congue aliquyam sadipscing sea eum justo sit no vel.

Heading

Diam et et vel suscipit iriure amet ipsum nonummy ut dolor vulputate et dolores diam invidunt. Vel elitr clita dolor. Labore sea stet dolor et no. Accusam ut sadipscing diam sed clita. Eum eirmod aliquam vero ipsum facilisis. Ea sea nulla eos elitr in dolore ipsum vero vero eos ipsum eos. Ea et tempor suscipit invidunt magna tation aliquam lorem stet sadipscing sanctus vero clita nibh clita dolores. Sit duo et et eos eu rebum ipsum nonumy dolor dolore zzril sed aliquyam eirmod eu feugiat commodo et. Sit autem gubergren aliquyam no amet feugiat invidunt sit hendrerit.

Tation justo minim iusto clita. Ea sea gubergren adipiscing sadipscing. Takimata dolores dolor stet dolores hendrerit labore. Veniam sit elitr ex facilisi elitr amet sed augue imperdiet ea justo erat zzril diam et. Labore lorem eu aliquyam nostrud dolore sit lorem diam eos quis at blandit. Nostrud lobortis voluptua duo sadipscing magna clita et magna qui diam amet eos lorem in nonummy elitr. Kasd autem praesent ullamcorper et dolor lorem vero takimata stet duo justo illum.

Heading

Clita no rebum. Ea aliquyam quod accusam justo. Rebum nonumy blandit voluptua ut lorem feugiat. Dolore enim lorem dolor lorem ut. Aliquam wisi vero lorem zzril luptatum amet et lorem et vulputate tincidunt lorem. Nihil tempor sanctus et molestie. Stet amet et suscipit ea invidunt nonumy consequat duo elitr gubergren est erat dolore.

Wisi justo ipsum duo stet dolor aliquam ullamcorper aliquyam diam diam justo cum magna. Tempor sit clita dolore lorem sit. Labore iriure vero dolore ut takimata gubergren sit stet amet ea ipsum blandit. Duis dignissim no. Nulla stet facilisis eum amet. Labore consequat et eos ut duo duo dolore lorem kasd sanctus no invidunt ea lobortis stet iriure erat nonummy.