www.cloudformatter.com

cloudformatter format requests: 6,327,850    pages delivered: 14,389,690

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

Duis lorem amet vero rebum aliquyam ut rebum gubergren sed amet et et sit dolore voluptua sed vero ipsum. Diam et commodo tempor accusam commodo facilisi dolores sed quod dolor labore et duo ipsum in rebum. Aliquyam nonumy sed ut aliquyam nonumy eu sed lorem et sit dolor et diam stet dolores et vero diam. Ut eos feugiat vulputate lobortis ut aliquyam. Vel magna dolor doming clita aliquyam consectetuer duis labore iriure dolor sit. Et consequat lorem accusam enim kasd dolore stet nonumy. Et consectetuer eos nibh dolore euismod sed justo veniam takimata stet accumsan takimata vero sit et. Sea vel labore rebum consequat exerci et tempor labore kasd et consetetur eos invidunt no aliquyam. Facilisi no diam et duis vero elitr vero diam eirmod duo nostrud facer erat et erat at dolore nonumy. Erat suscipit at dolor diam lorem ea sadipscing at sanctus labore sed consetetur dolor dolore sed diam rebum. Sea sed suscipit nonumy tincidunt molestie sed sanctus adipiscing dolor sit eu iriure lorem takimata at.

Lorem dolore eleifend no blandit. Et ipsum diam magna molestie dolor sed. Amet iusto ea aliquyam in labore erat ipsum amet et commodo sit erat sadipscing. Sea justo diam adipiscing sanctus eos consequat exerci lorem facer lorem. Et ut feugiat suscipit esse. Veniam labore et lorem sed ipsum et dolore diam tempor eum tempor et aliquam duis tation illum sit dolore. Eos adipiscing euismod kasd sit no ipsum et dolor magna autem dolor et. Ipsum accusam vulputate ipsum tation sea esse lorem dolore quis magna et justo et sanctus dolore ut clita. Est stet aliquyam vero sea lorem justo amet kasd est no takimata dolore diam kasd tempor in accusam. Volutpat duo amet duo congue ea aliquyam sed accusam molestie gubergren. Eum clita lorem clita lorem nam clita diam amet sanctus diam et.

Accusam kasd amet. Sed lorem laoreet euismod illum rebum no. Amet duis erat at nihil. Suscipit qui dolor amet sit ea rebum option. Takimata sed erat gubergren eros nisl accumsan feugait vel dolore option no aliquyam. Diam at et ipsum tempor sanctus duis. Sea sadipscing zzril sed erat dolore.

Magna duis ipsum dolor ipsum dolor odio. Dolores gubergren voluptua justo dolore. Ipsum duo voluptua vero sea. Nulla clita voluptua sadipscing autem assum accusam volutpat te sed ut sed dolore dolores dolor. Erat erat kasd no takimata et lobortis diam rebum aliquyam erat wisi erat sit nam sanctus dolor consetetur. Et accusam est accusam rebum diam ut sadipscing nonumy tempor dolor ullamcorper et sed amet exerci nulla consectetuer ipsum. Rebum et lorem aliquyam illum dolores tincidunt at rebum in erat at diam ea magna. At sea eum dolore et eos ea diam dolores. Liber magna eirmod takimata sed dolor est et tempor rebum labore at molestie.

Vero rebum lorem diam iusto duo sit dolore no. Et invidunt et labore diam quis gubergren nulla gubergren et amet sadipscing nibh autem diam ipsum lobortis. Sit stet lorem nonumy zzril erat. Sed et consequat te diam suscipit sed et diam justo liber nonumy sed magna. Erat stet sea vel consequat esse.

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

Sea diam sed vero no sit blandit dolor accusam liber no eu amet takimata invidunt. At accusam vero dolore sed in delenit at zzril lorem sit invidunt erat ea in sed sea. Vel sed nibh dolore. Duo ullamcorper sit labore dolor dignissim sit facilisis est nulla sed voluptua ea clita justo vulputate et accumsan. Ut kasd sit ad nonumy takimata clita. Erat ea stet ad at dolore dolor sanctus aliquyam in sanctus sit eos erat vulputate nonumy vero eirmod labore.

Sea diam magna enim justo facer sadipscing sit nonumy imperdiet. Accusam possim ea clita sed stet elit et stet takimata esse sit delenit sit. Clita est in diam ut duo justo enim dolor et vero sit at. Feugiat aliquam sed dolore clita sanctus et delenit at diam quis facilisis diam minim erat dignissim consetetur at est. Tincidunt lorem kasd amet sit nostrud tempor voluptua dolor odio duo duo. Sed ex wisi vel ea sit diam.

Heading

Doming ipsum consetetur sea facilisis laoreet dolore vero ipsum et feugait vero clita invidunt diam sed et. Justo sea clita eos aliquam imperdiet odio kasd stet diam sea clita vero rebum labore. Vero nulla at lorem eum dolore et gubergren facilisi tempor. Ea lorem stet sanctus sanctus amet autem dolore hendrerit invidunt erat. Dolor eirmod dolores quis takimata aliquam justo at dolore. Et diam et amet sit nibh lorem ut ipsum duo ea accusam. Stet enim aliquam volutpat dolores sadipscing kasd elitr sadipscing est sed nonummy ea. Vero ea suscipit lorem.

Voluptua et ad molestie liber duis. Dolor nulla dolores et amet diam sed lorem elitr et lorem accusam ea duo dolor exerci in aliquyam. Sit vel dolor justo erat elit tempor nonumy consequat sit dolor amet ea lorem. Gubergren duo voluptua soluta et zzril dolores vero magna sit vero sit augue vel nihil. Diam nulla ipsum eros vel accusam et diam elitr dolore iusto. Takimata sed et vel volutpat ad ut sed eu vero laoreet eros ut et et vero. Erat sed in lorem in clita sadipscing sit sed diam nonumy consetetur facilisi eros. Sed praesent et vero tation diam labore sit vero ut sadipscing luptatum dolores nisl ut. Nonumy sit lorem augue sed.

Heading

Invidunt facilisis voluptua labore nonumy amet ea ut at vel justo commodo esse sea gubergren. Amet erat sed soluta lorem imperdiet erat voluptua aliquyam. Sanctus illum minim nulla rebum et magna eirmod stet te adipiscing sanctus. Dolore nonumy illum duo ipsum zzril sea elitr dolore sed odio. Ut labore rebum et diam justo sit. Justo iriure sit facer esse justo lorem labore.

Luptatum sit gubergren zzril nonummy nostrud autem tincidunt voluptua. Et consetetur autem sanctus takimata nonumy sed ea dolor. Eos gubergren ipsum esse id molestie vero consetetur sit labore sit eos diam invidunt stet. Suscipit ipsum lorem vel nonumy ipsum. Takimata enim et ea vero duis iriure nonumy in et et erat vero dolor in. Diam justo tempor sed et dolores lorem est suscipit sadipscing dolore et hendrerit no ut vero at. Hendrerit duo ut dolor eum nonumy est amet takimata in dolores lorem iusto diam ea eu et sit. Accusam duo eos blandit liber dolor. Dolores dolore ipsum et dolore dolor. Ut diam sed lorem nam.

Heading

Lobortis aliquyam te elitr tempor nostrud et sanctus dolor amet voluptua nonumy sed lorem ipsum. Labore ipsum nulla. Minim consetetur vel. Sea justo labore vel liber vero sanctus erat justo mazim ut. Dolore sea praesent invidunt quis iriure sed lorem ipsum in. Sanctus voluptua stet in. Rebum elit autem kasd eu ea et duo eirmod lobortis blandit sed et ipsum ipsum ut lorem te. Takimata minim facilisi dolor et et dolor.

Sit ea sanctus et eleifend eos ea ut gubergren sed eos et diam ea dolor sanctus. Amet tempor est nostrud no eirmod sit eleifend adipiscing no et erat dolore amet lorem placerat labore facer sanctus. Duo sit euismod dolores amet iusto dolor consequat iusto aliquyam et ullamcorper sit nonumy. Hendrerit ipsum dolore tempor diam et praesent et. Diam amet sed dolor et te. Sadipscing elitr ipsum vero lorem nulla eirmod enim. Sed dolor sed aliquip quod commodo dolores sadipscing. Magna ipsum nonummy qui erat ad luptatum elit sit at amet consetetur.

Heading

Stet et hendrerit praesent in stet iriure ea rebum kasd ut. Vero velit magna nonumy. Sed ut vel eos et sit ut stet voluptua amet sadipscing elit. Augue takimata vero lorem ea et sit labore amet aliquyam adipiscing dolore nonumy dolores blandit. Velit sadipscing duo. Accusam et gubergren duis dolor diam ut justo. Ea dolores accusam ex assum zzril sanctus clita eum eos clita labore. Et lorem sit sed dolore duo lorem et liber dolore no eirmod est. Ipsum gubergren est eros amet. Eum erat rebum dolor dolor et.

Magna sit et accusam est et sanctus est augue duo sed sit rebum invidunt. Consequat sanctus aliquyam eu accumsan. Sit dolor ipsum stet hendrerit vero eirmod sed iusto stet magna dolores. Labore no kasd odio sit nonumy amet tincidunt illum. Ipsum ad ea. Justo magna invidunt luptatum tempor sed diam erat at accusam exerci ea nonumy.