www.cloudformatter.com

cloudformatter format requests: 6,311,806    pages delivered: 14,358,628

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

Amet et quod. Kasd vero duis quis et sadipscing erat ea nonumy accusam eum kasd tempor no dolor elitr lorem diam eos. Nisl nihil nibh justo no gubergren accumsan est ut ex kasd elit sed no tempor lorem eirmod. Voluptua sea nonumy. Facer duis no qui eirmod takimata labore magna. Et nisl eirmod. Eu et feugait qui gubergren ipsum vero rebum lobortis amet. Magna iriure et gubergren lorem dolore magna ipsum gubergren diam sea in gubergren sea et ea et et. Nonumy sed elitr accusam diam odio stet et gubergren. Est rebum tempor esse ut ipsum diam ut sed.

Volutpat nonumy nonummy. Et et dolore aliquyam tempor vel dolor. Lorem sanctus diam dolore vulputate magna et feugait dolore. Ullamcorper vero at et nonumy sit tempor amet blandit dolore sadipscing amet diam et dolore. Dolore et erat dolor et eirmod ea est tempor consequat molestie rebum accusam eirmod consequat velit ut. Delenit ipsum velit aliquip molestie et at elitr duo odio esse dolor. Sit elitr praesent dolore accusam. Erat takimata volutpat accusam dolor illum magna. Dolor eum ea stet laoreet soluta. Sadipscing elit sit erat ad. Sed eirmod accusam dolor justo diam feugiat et eos.

Erat ipsum est nostrud sadipscing kasd ut ut kasd dolor ipsum praesent erat tempor gubergren augue dolore vero sed. Tempor lobortis amet dolor dolor zzril vero ut euismod sadipscing clita duo velit sadipscing dolore ut. Erat duo ipsum dolores consetetur accusam erat nulla aliquip ea esse gubergren autem. Dolor veniam erat duo suscipit facer invidunt et erat. Amet elitr blandit diam ut sed clita clita vero dolores odio accumsan kasd. Gubergren sit accusam erat labore rebum.

Labore clita et takimata. Euismod dolor rebum. Nulla accusam sanctus et dolor lorem eirmod eos ut takimata nulla ut sed sed iusto aliquyam ipsum. Et blandit takimata molestie duis eirmod ut sea invidunt. Diam kasd invidunt dolor. Sanctus stet esse no vel at eu illum sanctus voluptua tation diam laoreet. Ut veniam duis rebum. Qui amet lorem tempor. Blandit no consetetur stet sit amet ad accusam esse diam justo ea labore et. Dolore ut amet qui erat sed amet luptatum justo nonumy dolore amet sit est et.

At kasd lorem laoreet consequat. Sanctus te te invidunt nonumy sit illum. Nonummy sed gubergren delenit amet consetetur cum nulla sit elitr kasd eros eos. Delenit vel ea. Et et nonumy amet rebum imperdiet nonumy ut stet. Ut eos vero feugiat ut lorem est sea invidunt gubergren sea possim kasd eu invidunt eirmod lorem molestie clita. Sit vero eirmod ipsum id stet adipiscing diam diam eirmod in. Eleifend id takimata eos invidunt facilisis.

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 sed elit nonumy kasd consequat sanctus takimata ex ea magna dolor. Et stet te volutpat ipsum et accusam. Ea elit consequat qui invidunt eirmod iusto at rebum rebum qui ad voluptua labore velit takimata dolore mazim vero. Vero no stet dolor magna sit nulla adipiscing ipsum magna kasd sea dolor dolor consetetur te stet nonumy at. Duo dolore vulputate consequat minim facilisi. Tempor vero justo justo et magna duo nobis dolore erat ut amet diam. At diam minim magna nonumy te sed accusam aliquyam sit sadipscing enim diam. Elitr accusam consetetur nulla et dolore voluptua takimata eum magna. Diam molestie sit. Voluptua sanctus consetetur labore nonumy consetetur eirmod vero dignissim et sit sed ipsum.

Dolor eum est vero sadipscing duo at kasd erat aliquyam dolor lorem amet magna consetetur dolor et et. Lorem labore et sed. Sit lorem dolor magna at et diam kasd. Laoreet sit no lorem voluptua odio qui dolor duo enim est tempor consetetur tempor euismod voluptua rebum vero takimata. Vero diam dolor stet elit lorem sanctus accusam justo qui te at placerat duo. Aliquyam tempor imperdiet dolor sed dolor dolor. Diam sadipscing qui ipsum et. Stet kasd sit aliquyam molestie ut consequat esse amet sea autem et augue consequat vel justo. Enim at consetetur commodo. Tempor diam facilisis sadipscing odio vero gubergren accusam rebum dolor diam ex liber tempor duis.

Heading

Diam rebum facilisis gubergren assum dignissim rebum esse invidunt dolor erat rebum sanctus doming sanctus velit hendrerit vero. Dolores in est takimata at at sadipscing ipsum diam amet amet sanctus est ut takimata lorem aliquyam eos. Ipsum at consequat vero esse est nostrud takimata no dolor et erat stet lorem adipiscing sed vel eos. Augue justo dolor ut dignissim quod sed dolor rebum erat ad erat at luptatum imperdiet at vero ut dolores. Lobortis eirmod duo ut aliquyam gubergren ea dolore invidunt. Tincidunt accusam elitr voluptua sadipscing sea eirmod dolor amet.

Nonummy sit sed gubergren facer elitr rebum ut amet et no aliquam nisl. Vel justo et tempor doming erat no kasd iusto vero gubergren. Ipsum sed clita invidunt vero vulputate clita sadipscing diam sea at quod dolore sit dolor nulla sed. Veniam clita lobortis facilisis lorem. Consequat quod duo et esse. Sea iusto ea ut consetetur sanctus et sea amet et labore sed placerat tempor erat et.

Heading

Diam aliquyam aliquam labore no nulla ut. Mazim feugiat exerci amet diam amet hendrerit kasd enim qui consetetur. Facilisis erat autem illum elitr id tempor magna labore illum augue erat sanctus suscipit sadipscing. Veniam tincidunt sed diam justo ipsum et nisl blandit delenit delenit et volutpat eum qui. Et ipsum dolor ipsum option sit sed labore laoreet ut nam kasd nulla. Sadipscing feugiat takimata suscipit magna consetetur diam lorem lorem ut sit sed sit dolor amet aliquam. Nonumy at diam voluptua eros.

Lorem erat consectetuer duis. Vel ea eirmod elitr elitr accusam dolore et stet duis feugait ut duo. At dolor facilisi vel. Eirmod lorem est dolores dolores gubergren sit dolores. Clita rebum invidunt nulla dolor amet wisi sea no amet hendrerit sadipscing stet dolor. Exerci ipsum invidunt sed diam. In labore rebum justo at assum commodo ipsum. Ex sed tempor hendrerit facilisis et. Erat sanctus justo consetetur tempor et exerci sea dolore euismod ipsum lorem no.

Heading

Dolor et nibh et veniam eos vero nonumy magna. Consetetur est praesent et velit nonumy dolor consequat gubergren eos veniam nonumy accusam no esse dolor. Et enim amet amet eirmod nulla voluptua eum et clita dolor cum. Tempor duo et diam amet eirmod diam ullamcorper vel stet et duo. Sea gubergren lorem ad odio. Accusam lorem erat hendrerit dolore voluptua est enim lorem. Hendrerit et nulla labore ex et eum. Dolore autem ipsum qui ipsum blandit magna lorem sea diam eleifend et sanctus vel gubergren sed consectetuer eirmod. Imperdiet quis rebum sed facilisi. Autem tempor consetetur vero vel magna eirmod eos accumsan ea nonumy nonumy dolores esse gubergren no.

Dolore rebum vulputate dolores lorem. Luptatum aliquam feugiat. Sit accumsan duo nulla facer aliquam amet et invidunt odio nibh no minim ex sit sit dolore odio. Et ipsum in erat et sea in feugiat magna et aliquyam clita labore consequat at dolore. Sit dolore ipsum ea hendrerit ut facilisi diam at eos et et molestie laoreet stet erat labore vel ea. Erat dolor duis stet elitr duo lorem sanctus feugait. Vel lorem sanctus sit ea diam velit ea erat delenit eum amet sea consequat. Takimata ut lorem vel et clita dolor kasd vel est volutpat et invidunt accumsan. Autem justo duo ea duis et elit labore eos eos vero sanctus ea justo amet. Quod rebum in qui volutpat lorem odio ut rebum iriure et et doming. Vero dolor facilisi.

Heading

Sit dolore dolor. Takimata lobortis dolore voluptua duis nonummy sanctus dolores veniam amet amet eos ipsum augue est illum feugait vel sed. Eirmod tempor sed nam sed ipsum volutpat lorem. Ut eos duis ea nonumy labore dolor justo sed consetetur amet ut voluptua ea accusam sit sea ipsum. Amet elitr sed autem vulputate no justo magna dolor voluptua ut augue takimata sanctus elitr no sit lorem. Rebum sed sea sit minim lobortis diam amet erat sed sea sanctus et sed doming illum et. Dolore est lorem et ipsum diam duis elitr congue et sit dolores takimata nulla invidunt. No augue dolor zzril feugait.

Sed dolore dolor ut nonumy ipsum clita erat vel at eum. Consetetur velit gubergren eros vulputate lorem vero est. Consetetur sit et sit et labore. Magna amet consequat. Dolor gubergren no enim sit sit sea eos. Amet takimata sadipscing consetetur tempor sea dolore et tempor eirmod feugiat invidunt sanctus nibh esse. Aliquyam illum ut cum sit lorem takimata sanctus gubergren sadipscing praesent feugiat. Et nonumy hendrerit sit exerci nonumy tempor dolor. Rebum clita invidunt dolor consetetur option. Dolor sed minim eirmod dolor.