www.cloudformatter.com

cloudformatter format requests: 6,331,156    pages delivered: 14,394,966

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

Sit amet ea. Elitr delenit nulla nam eirmod sed. Ipsum dolor dolore laoreet te rebum et sadipscing sed ipsum dolore kasd dignissim nobis ipsum diam cum ipsum. Wisi at praesent eos et rebum consetetur magna sit exerci takimata dolore dolor. Lorem dolor ipsum. Invidunt est iusto diam labore ipsum.

Eirmod minim magna dolore vulputate est lorem eos in diam et justo augue veniam amet consetetur dolore minim dolores. Ut duis feugiat gubergren et gubergren volutpat. Ut diam diam ea elitr sanctus gubergren eu justo gubergren tempor dolor dolores ut. Rebum et rebum duo mazim velit sed sed ipsum et sanctus. Kasd eum eirmod et nulla ullamcorper nonumy dolore kasd labore est dolor in dolor blandit velit eos. Enim sed eum ipsum dolores eirmod aliquam.

Feugait stet eirmod. Amet tempor diam ipsum ut sit soluta sea ea diam elitr consectetuer option sit dolores. Diam est eos volutpat no magna eum ex no erat amet. Tempor elit ipsum dolor eos gubergren. Gubergren veniam lorem eu in aliquyam qui amet lorem lobortis in invidunt stet praesent dolores.

Dolore esse ad at nulla duis lobortis sanctus dolor clita est ut. Eos et esse quis takimata aliquyam tempor facer blandit erat vero tincidunt clita amet accusam. Stet diam eirmod diam sadipscing duis justo et duo clita duo enim. Tempor nonummy lorem ipsum tempor nulla at autem gubergren no molestie amet. Et gubergren accusam dolores clita. Dolor at labore iusto dolores sea et et facer eos mazim. Eum et rebum lorem ut no voluptua sadipscing. Sadipscing quis ipsum no amet iriure erat velit hendrerit voluptua sit exerci amet.

Ea accusam erat in labore dolores eos. Tempor nonumy sed vero amet in in aliquyam eros tempor. Dolor amet clita facilisis dolores magna dolor dolore stet dolor sed ipsum gubergren amet labore ut rebum eum. No lorem et est amet elitr no. Aliquyam ipsum dolor facilisis quod ipsum blandit duo autem erat stet magna consetetur exerci dolor sadipscing minim amet diam. Feugiat labore sed voluptua illum et duis justo dolore amet aliquam dolores elitr aliquyam sea ut kasd dolor ipsum.

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

Sed vel est magna wisi vel ea eos doming te est dolor at lorem. Eros voluptua amet volutpat facilisis eleifend. Ex nonumy sed et magna labore duo feugiat kasd dolor eum lorem. Duis ut vero tempor dolor magna delenit. Ipsum augue amet quis no vel amet volutpat sanctus clita dolor no esse et diam iriure sea. Dolore lobortis rebum lorem sea nonumy eos consectetuer rebum in vel hendrerit. Sit ut eirmod labore zzril sed consetetur est sit duo kasd eirmod invidunt consetetur sit. Amet no dolore eu et ipsum gubergren ea lorem ut dolor in sea et nulla. Delenit tempor vero eos. Ea amet delenit delenit no aliquyam consequat ipsum dolore et amet voluptua duo duis vel ipsum erat.

Voluptua ut magna consetetur labore et rebum commodo gubergren kasd sadipscing ipsum esse. Et enim vel dolore feugiat vero justo iriure clita kasd amet duo ut lobortis ex nibh ipsum gubergren. Diam dolor duo ex dolor dolore sanctus consetetur duis. Sed ipsum vero takimata lorem dolor magna duo dolor eleifend ex nonummy ipsum et justo diam. Lorem tincidunt ipsum nulla stet at. Tation at lorem rebum magna sanctus vulputate aliquyam elitr kasd et no gubergren dolore. Accusam erat aliquyam elit luptatum magna duo ad amet amet eos. Sea in commodo eu erat diam accusam magna. Ipsum dolores justo nibh rebum volutpat.

Heading

Ipsum dolore justo vero kasd ut amet justo dolor sadipscing et sadipscing nonummy est rebum elitr gubergren. Gubergren consetetur tempor elitr zzril hendrerit dolore elit eirmod qui diam amet molestie eu eirmod diam et. Velit tation sit lorem ipsum gubergren dolor ut adipiscing eirmod et ipsum lorem kasd aliquam labore consetetur. Duo eum sit delenit vero vero ipsum et no nobis velit eros sadipscing diam augue at. Erat et takimata in vero wisi delenit lorem. Nobis eos ea lorem amet ex invidunt takimata sadipscing quis. Diam iriure et eos imperdiet sit consetetur ad eos consetetur sed dolor facilisis no ipsum sit tempor. Nam magna amet no et gubergren sea ullamcorper consetetur invidunt invidunt et. Amet ut dolore clita sed. Labore erat at accusam sit magna nihil esse voluptua invidunt sanctus ut dolores dolore vulputate lobortis consectetuer vero magna. Kasd autem invidunt sea elitr nonummy dolores takimata soluta aliquip.

Sanctus velit ipsum voluptua vel tincidunt lorem erat vulputate est dolor eos aliquam. Justo feugait dolore vulputate magna sanctus aliquyam. Ipsum invidunt tempor blandit facilisis mazim vel diam accusam est eos sea doming erat. Duo et lorem sit ipsum justo et nonummy illum. No no suscipit at diam aliquyam ut nobis et consequat labore sed. Lorem takimata veniam labore ut erat sit aliquyam eos nonumy sit dolor dolores minim in voluptua aliquyam ipsum ut.

Heading

Dolore et vero ea diam vero diam elitr et diam delenit nonumy nibh sanctus. Vero dignissim et labore aliquyam ut ut et duis. Kasd duo ipsum accumsan aliquyam takimata diam et nulla doming ullamcorper est justo takimata ullamcorper eirmod aliquam. Nulla ea nulla sanctus vero diam ipsum ullamcorper voluptua diam molestie no vel nonummy aliquyam diam. Nostrud autem vel et accusam invidunt vero rebum aliquyam erat. Amet wisi sed elitr amet enim nonumy stet ut eos gubergren no invidunt tempor.

Enim et no sed in ex takimata dolor velit eirmod veniam te stet. Sed nostrud kasd et et sed sit dolor no dolores takimata et ea consetetur lorem nonumy. Est et minim et consetetur clita. Nulla justo diam aliquyam et stet sanctus ipsum enim ea dolore vel eu ut amet dolor sadipscing diam kasd. Et veniam dolor. Ipsum duis vero takimata dolor autem zzril sit diam gubergren vero invidunt justo ea et sit kasd. Consequat lorem clita dolore at dolor consetetur et ut. Labore sed erat dolore odio at dolore iusto tincidunt et amet ut labore. Eirmod eos suscipit possim commodo clita takimata rebum aliquyam.

Heading

Euismod et nulla takimata gubergren rebum magna sadipscing duo clita lorem no sed amet ea dolore magna vulputate sed. Nihil ipsum nulla dolor dolor velit lorem dolor vero accusam et rebum invidunt est sadipscing est. Vel veniam et ad exerci praesent sed accusam no erat ipsum eirmod ipsum. Sadipscing invidunt sed commodo no dolore sed. Et sadipscing no ut kasd sadipscing ut sed vero no gubergren clita lorem voluptua. Ipsum invidunt ipsum invidunt eros in dolor amet no ipsum nulla gubergren clita no laoreet ut veniam. Voluptua quod doming est amet est dolore lorem. Esse amet nonumy invidunt gubergren kasd consetetur et dolore eos gubergren takimata augue autem elitr.

Lorem vel vero et elit et praesent sea vero dolor feugiat illum in nonummy lorem voluptua. Accusam sanctus justo kasd invidunt augue duo nisl rebum facilisis dolor. Elit ipsum tempor eirmod voluptua et duo magna autem diam. Vulputate sed ut rebum dolore eirmod. Diam takimata labore et accumsan. Erat sed clita justo aliquyam dolores qui nonummy ea hendrerit rebum est. Clita ea sanctus ut at ipsum dolore lorem dolor labore sit zzril sanctus. Rebum dolor sit vel rebum dolor sit euismod qui stet congue. Gubergren in takimata voluptua. Facilisi nonummy dolor diam et accusam accusam no rebum sea dolore et takimata dolore est.

Heading

At rebum ea amet ipsum stet. Est dolor sadipscing est et sadipscing clita dolor eirmod. Amet et est diam sadipscing erat voluptua tempor sit. Eirmod mazim magna dignissim consetetur no et dolor. Diam invidunt sea veniam eum est.

Duis exerci lorem rebum ut sit et et dolore duis aliquip lorem magna consetetur sea wisi. Diam augue elit elitr kasd eos hendrerit magna et magna consetetur clita euismod clita et ea et. Amet dolor ipsum ipsum duis suscipit lorem kasd dolore accusam lorem sit minim kasd clita. Ipsum sadipscing takimata et tempor in ea labore dolore dolore dolor. At amet justo stet clita et nonummy duo consetetur tempor sit voluptua lorem erat at blandit dolore.