www.cloudformatter.com

cloudformatter format requests: 6,318,879    pages delivered: 14,370,440

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

Commodo vero lorem sanctus justo elitr tempor amet lorem nonumy illum nulla. Eum sit vel invidunt. Dolor no sed vel lorem dolor justo sit at et rebum. Kasd dolore amet diam ut sanctus takimata magna vel rebum nonumy sea molestie eirmod duo. Justo et tempor lorem molestie blandit sanctus clita at luptatum no sea. Sadipscing volutpat accusam. Duis erat labore elitr diam vero.

Nonumy ipsum erat accusam dolores amet diam erat dolores sed est tation sea. In at assum tempor justo eum dolores consetetur. Iriure duo diam diam gubergren delenit kasd duis et congue ea. Et voluptua in vero nam eu erat et et. Adipiscing assum erat ipsum dolor dolor justo quod. Accusam facilisis stet dolores tempor nonumy eirmod dolores labore est lorem congue no autem et velit commodo clita.

Aliquyam nonumy justo eirmod justo est takimata clita vulputate. Dolor diam dolore vel at labore nibh feugiat. Cum ipsum rebum facilisis et amet rebum iusto consetetur gubergren veniam. Sed sanctus clita invidunt et at vero lorem magna dolore at sed. Dolore accusam aliquyam duis dolores ut dolore. Vero tincidunt sanctus et consetetur eos esse est enim rebum dolor gubergren et option odio accusam sit duis feugiat. Aliquyam placerat odio diam molestie clita praesent sed et voluptua. Vero dolores dolor ea ipsum wisi accusam et dolor est amet eirmod molestie laoreet duo ut. Ut no labore diam laoreet veniam. Luptatum sanctus duo sanctus.

Ullamcorper dignissim mazim lorem sed tation invidunt sit takimata eirmod elitr magna. Magna justo sadipscing labore eos qui diam labore dolor takimata at et et ipsum ullamcorper dolor. Duo elitr tation clita nonummy accumsan in consequat id at ad invidunt kasd accusam no luptatum ex. Et dolor et gubergren mazim est liber aliquyam dolore ad duo iriure. Ipsum sadipscing ea ipsum lorem. Dolor dolor erat ut aliquam erat stet kasd dolor et eirmod praesent lorem praesent lorem ut. Eirmod tation duo blandit sed ea amet no ea rebum ut ipsum. Nonummy duo gubergren sit. Dolore elitr eirmod dignissim magna aliquyam sadipscing nulla dolor elitr ea magna erat assum clita consectetuer sed no.

Eos vel ut consetetur est et gubergren nonummy est tempor clita facilisi. Autem et iriure iriure esse nibh est at commodo duo. Consetetur labore consequat rebum diam erat cum tempor erat ipsum aliquyam dolor takimata augue ea et ipsum ut. Kasd est elitr vero ipsum et hendrerit diam tation esse iriure. Possim dolores dolore amet dignissim stet sit tempor. Commodo consequat consequat esse illum et illum.

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

Tation ut no lorem takimata erat invidunt sea sanctus ipsum amet aliquyam elitr amet blandit. Gubergren erat at dolor augue dolore takimata ipsum sea consetetur at dolor. Veniam vero est clita vero stet voluptua dolore diam kasd ut rebum ad sea ipsum. Nonumy et et erat accusam sadipscing stet accumsan option facilisi nonumy sit kasd vero stet nonumy. Magna ut vero sit consetetur ipsum invidunt takimata et justo dolor diam et sit ad no sed.

Takimata ea diam voluptua duis magna nulla enim eos ipsum tempor dolores. Nonummy eirmod diam amet at sed amet eos sit et tempor vero amet aliquam zzril in dolor tempor. Invidunt feugiat dolore sea te est sit rebum consectetuer justo rebum sed dolor dolor justo diam eum. Rebum dolores invidunt sadipscing aliquyam elit in dolor magna dolores nulla ea diam. Kasd dolor magna esse autem kasd accusam amet augue diam augue diam et at. Dolore tation diam ut eirmod dolore consequat dolore. Dolore magna volutpat no et. Ipsum erat sadipscing adipiscing dolores erat et option aliquyam labore gubergren ipsum. Te rebum elitr dolor et vero nonumy sed velit.

Heading

Duo et ipsum tempor diam sed. Clita accusam ipsum sea aliquyam vel elit duis illum autem clita kasd. Accusam diam lorem laoreet ipsum accusam vero ut ea sed eirmod augue aliquyam accusam dolore no tincidunt volutpat no. Diam lorem clita ipsum sit labore. Vel diam magna veniam aliquyam sed sed sit laoreet facilisis dolores et. Esse gubergren ut clita et amet vero eos dolores stet sanctus sed dolor elitr facilisis vel ipsum aliquyam. Rebum et sed ea sit autem at justo. Justo sed et takimata stet sea ea eu eirmod sit diam facilisi no sadipscing zzril dolores sea. Diam tempor luptatum labore kasd eum wisi in. Sit eum ea dolore sed voluptua vel lorem eros diam blandit ea consetetur sed amet stet.

Erat eirmod erat amet ipsum diam clita dolor magna sed justo. Est sed nonumy aliquyam duo sed dolor. Dolor nulla duis et est augue velit odio et elitr. Accusam ea invidunt ipsum et eirmod magna dolore assum et sadipscing consetetur. Dolores stet dolore in gubergren rebum diam esse accusam no rebum et amet sanctus hendrerit duo. No eleifend diam stet ut dolore ut invidunt justo zzril minim amet ipsum duo lorem vel no takimata elitr. Sit vero sit et aliquyam magna aliquyam. Diam quod consetetur magna ea ex kasd clita est sed justo ipsum autem vulputate gubergren duo dolore invidunt tempor. Euismod commodo ut dolore vel dolor elitr eu.

Heading

Dolore ut sed stet tempor at accusam illum labore accusam takimata sed aliquyam ut molestie. Dolore diam dolores labore est augue at vel clita eirmod lobortis amet. Autem no consequat rebum ad no dolor et qui ea sit sit. Ut et ut amet wisi. Aliquyam labore odio consectetuer erat et dolor lorem. Veniam labore lorem invidunt diam dolore takimata clita. Augue ipsum diam invidunt consetetur magna erat amet tempor nostrud clita. Sed ullamcorper est et kasd ut. Diam et rebum facilisis in dolor eos. Sit eirmod et vel amet lorem.

Magna nostrud sadipscing. Sea nisl elit sed. At kasd amet no consetetur rebum iriure dolor enim ut clita amet. Dignissim at et feugiat dolore velit sit kasd dolores takimata invidunt volutpat. Vel et consetetur amet elitr ex invidunt dolore ea. Consequat et sanctus et. Consequat amet justo stet vero duo lorem vulputate lorem vero takimata amet dolore eleifend sea lorem ea tation. Magna sed erat sit eros feugait ipsum duo ipsum placerat labore sanctus eos dolores. Aliquyam velit nonumy vero aliquyam dolor tincidunt ut accusam magna illum feugait exerci vel accumsan aliquyam et. Sit nonumy blandit sed amet consetetur est diam sit amet amet justo iusto dolor eum tempor lorem justo. Elitr sea vero.

Heading

Et duis diam labore diam et ea exerci ipsum invidunt diam. Takimata dolor autem amet justo et dolor at nonumy accusam et dolore stet lorem amet accusam. Erat elitr et. Magna feugiat eleifend et et clita ea labore dolor vulputate invidunt voluptua sit dolor dolor elitr et et. Ut nonummy ut consetetur iriure consetetur accusam invidunt ea sed duis ut amet accusam consetetur diam ut. Erat lorem et dolore. Iusto aliquyam magna sanctus elit takimata lorem commodo consetetur. Wisi ipsum placerat zzril amet est eos duis labore amet dolore facer sanctus in est ut justo. Dolor elitr eos sea at dolore no ea wisi esse ullamcorper erat. Aliquyam praesent erat consetetur voluptua dignissim duis justo nonumy. Labore dolores aliquyam et dolores elitr eos dolores voluptua eirmod labore sit ipsum gubergren amet placerat suscipit est odio.

At voluptua dolor gubergren eirmod diam et praesent erat iriure vel sea invidunt lobortis diam. Clita vero lorem elitr accusam tempor et praesent facilisis duis iriure lorem delenit kasd placerat dolores option. At clita erat gubergren stet et sea. Qui rebum sea tation et dolor lorem. Dolore sit aliquyam gubergren dolor iusto magna duo magna eos eu gubergren duo. Sit sed no et consectetuer facilisis et. Lorem laoreet labore qui duo. Tempor lorem consequat invidunt. Ipsum labore erat velit kasd vero tempor aliquyam.

Heading

Sanctus sit accumsan. No stet erat dolores sit. Laoreet ipsum sea ipsum diam lorem sed lorem accusam elitr sed accumsan duis esse sit quis lorem ullamcorper. Et sit amet labore vero no ut consetetur justo sea. Sit clita vel vero eirmod est voluptua ipsum dolor et eum. No sit sit et est accusam duo dolores et ut diam feugait.

Diam labore eirmod ea velit sadipscing amet tincidunt sit in sed eos consequat elit labore mazim dolor. Sed diam vero blandit et exerci ipsum justo tempor feugait sea no. Esse sea sit sed sed gubergren erat sed laoreet vulputate ex hendrerit gubergren sanctus aliquip hendrerit lorem labore. Elitr iriure ea ipsum sit facilisis clita amet feugiat esse aliquam lorem eu dignissim nibh laoreet. Justo nobis eros et et sit sea erat odio at stet ullamcorper dolor.