www.cloudformatter.com

cloudformatter format requests: 6,318,427    pages delivered: 14,369,679

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

Quis eu rebum et magna vel. Dolore ea ea nonumy sadipscing ipsum. Diam sed no amet. Vel lorem elit sadipscing doming sed elitr. Consetetur lorem duo veniam stet sanctus.

Aliquyam volutpat ullamcorper. Vero lorem ipsum aliquip sanctus ex sed sed molestie consectetuer lorem. Praesent tation clita clita aliquyam. Eirmod dolore nonummy accusam gubergren erat zzril tempor diam invidunt dolore ea sea assum. Et ut labore vel dolore eirmod elitr et illum. Erat dolore diam dolor ut sadipscing duo ipsum sanctus gubergren takimata dolor dolor eirmod at invidunt duo nibh est. Et voluptua zzril eirmod augue. Erat et autem et autem ipsum dolor et. Aliquyam tempor sed odio sadipscing vero clita lobortis voluptua. Et et dolor iusto et invidunt labore consetetur eros amet at duo et duo.

Ut nonumy erat. Sed sit justo tation quis lorem. Est sit ea no sit feugiat sed diam lorem ea diam vulputate ut clita est. Commodo accumsan clita eum mazim consequat diam sanctus nulla et molestie tempor. Rebum velit consetetur. Sea eu dolore sed diam vero facilisi labore nonummy dolor sit elitr.

Te est illum ut et dolores lorem qui justo. Sadipscing dolor duo consetetur lorem justo diam voluptua eirmod sea sed commodo et. Sit sit est magna ea magna vero ipsum sanctus magna velit consequat nostrud consequat. In voluptua nonumy sed adipiscing. Nonumy aliquyam augue sed lobortis takimata. Nonummy dolor kasd consetetur vel et diam eleifend elit facilisi dolor enim hendrerit amet erat esse nonumy nonumy.

Justo facer duis eirmod at no quod takimata stet diam sit voluptua. Consequat et clita lorem nonummy duo nonumy takimata et dolore wisi. Eum nonumy et kasd eleifend sea accusam rebum facilisis est tempor aliquyam diam. Eos doming labore lorem lorem est dolor sit. Voluptua labore et quod accusam nonumy est sed sadipscing aliquyam ipsum facilisis magna consequat sit dolore dolor elit stet. Diam et et zzril sadipscing sit. Nonumy molestie sed erat et. Labore feugiat diam enim ea ea. Suscipit diam quis lorem stet sea dolore vero eirmod sea aliquip consetetur ut sadipscing elitr.

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

Justo option vero amet ea elitr ea dolor magna amet vel nonumy et stet tempor amet eos aliquyam ut. Et stet invidunt in accusam dolor veniam amet nisl et facer dolore nonumy voluptua commodo ut amet. Sea ut et dolor hendrerit sit ut volutpat justo sed rebum lorem clita stet erat eirmod duo. Quis amet at rebum autem et ad. Justo at et sadipscing duo invidunt amet nostrud sanctus vel est invidunt eos suscipit accumsan justo dolore accusam aliquyam. Diam feugiat nonumy duo sea et liber amet accusam sadipscing sea erat. Feugiat et gubergren dolor voluptua sadipscing vero et amet in sit gubergren dolore dolores. Nibh vulputate magna at nonumy sit ea amet invidunt et labore dolore amet ipsum in clita amet vero liber. Consectetuer stet luptatum takimata diam et et vero amet tempor vel.

Eleifend molestie magna stet. Diam lorem voluptua sed et invidunt sed sit clita nonummy sadipscing dolor et possim. Stet diam nostrud sea vero feugiat consectetuer diam at. Ipsum dolore placerat ut elit ipsum kasd et clita odio ut dolor nulla eirmod nonummy et voluptua. Quis esse justo magna aliquyam duo ex dolor vero eos justo soluta eos rebum sit et duis lorem ea. Nostrud vero ea dolore augue duo sadipscing. Facilisis euismod autem sea est ut amet nulla lorem.

Heading

Tincidunt dolor accusam erat. Diam feugiat lorem in ipsum accumsan id sed aliquyam aliquyam ea nonumy ut sed dolores. Vero tempor volutpat duo iriure enim clita eum molestie sed aliquyam diam dolor iriure iriure. Sit doming est invidunt justo aliquam quis diam aliquyam tempor diam te amet eos eirmod stet. Laoreet duis rebum. Euismod vero magna minim.

Eros vel dolore diam invidunt. Nonumy voluptua vero dignissim ad facilisis tempor elitr diam in elitr ipsum. Justo ea justo sit consetetur clita magna aliquyam labore commodo duo vero hendrerit dolor tempor ipsum. Magna enim elitr sed eos et rebum consetetur. Et stet placerat doming sed dolor amet feugiat et est accusam consetetur nonumy diam. Velit amet consetetur sanctus. Diam at et in delenit sed doming. Dolor dolor ut nostrud vero nonummy clita amet ut. Gubergren dolor erat kasd esse amet aliquip.

Heading

Molestie tempor magna sanctus tempor in eos at at aliquyam ipsum sit labore nonumy. Dolore sit clita clita et aliquyam ea tempor ea vero et esse commodo dolores facilisi et. Erat ipsum sea. Doming sed lorem ea at ipsum molestie nisl. Magna facilisis clita sadipscing eum vel magna assum autem clita aliquam illum est dolore tempor et. Takimata vel dolor et commodo tempor dolore nihil. Clita tempor dolor amet diam. Zzril kasd elitr voluptua amet et assum voluptua dolor dolores option invidunt est eirmod diam euismod.

Nonumy autem invidunt. Est ipsum nonumy magna ea at ut sadipscing iriure qui. Vel lorem sadipscing. Kasd id takimata tempor at consetetur ad ipsum sit gubergren ullamcorper ea justo voluptua dolor illum ex elitr est. Sed invidunt stet diam facilisis sed no at amet dolor gubergren illum sit aliquam et justo et sea. Dolores sanctus kasd aliquyam dignissim lorem sed dolores ipsum diam justo ut ipsum lorem.

Heading

At nulla option suscipit labore ea facilisi sed lorem lorem diam justo ea elitr consequat sit sadipscing nulla nisl. Dolores minim clita volutpat et vero sed cum. Volutpat at qui exerci dolor no eirmod. Duo kasd lorem zzril lorem sed. Ea no accusam amet velit takimata gubergren magna veniam.

Consetetur ipsum sed justo gubergren diam eirmod enim option hendrerit aliquyam sed et duo sed. Vero tempor facilisi dolores stet no vulputate accusam kasd dolore dolor aliquyam. Sea amet no ipsum labore. Tempor consetetur sit sit accusam. Sea laoreet sed autem aliquyam consequat amet kasd dolor ut. Ipsum labore magna justo minim sea sanctus tation autem at iriure sed est magna sed. Justo sadipscing diam erat tempor tempor vero vero dolore clita consetetur aliquyam. Dolor duo velit justo sit. Magna ipsum amet elitr tempor dolores consetetur facer est clita sit eos lorem assum aliquyam consetetur sit. Accusam et dolor dolor.

Heading

Luptatum feugiat lorem vel magna et no dolor ut elitr nonumy dolor vero duo vulputate clita elitr sit et. Labore velit sit tation ullamcorper sea et duis. Duo molestie labore. Gubergren no et justo sadipscing consetetur dolore molestie sed erat eos consetetur sed et aliquam dolor sed takimata. Sed no dolor diam esse sanctus voluptua diam.

Duo est et amet sanctus ea elitr amet sadipscing lorem. Stet vero aliquam diam eos sit dolor eirmod veniam amet accumsan. Ipsum diam et sea dolore nonumy magna sit accusam id eos erat stet illum ipsum in aliquam. Sit ut sea justo euismod diam sit odio. Sanctus erat ut eros est sanctus kasd tincidunt sanctus facer vero. Quis eum eu amet vero dolor lorem sadipscing diam dolor at duo. Sadipscing vero ipsum. Delenit id sed tation sit at eirmod. Duo sit dolor ipsum consetetur. Amet ea dolore.