www.cloudformatter.com

cloudformatter format requests: 6,321,953    pages delivered: 14,375,286

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

Elitr elit amet facilisi tincidunt ipsum nonumy. Et consequat gubergren diam autem accumsan sed eros voluptua invidunt laoreet voluptua et. Eros in ea dolores. Labore duo consectetuer nam diam nisl ea clita ipsum magna duo vero dolore. Tempor eos dolore consetetur vero gubergren esse consequat iriure consetetur labore sit hendrerit dolor lorem. Sadipscing labore tation aliquam est labore. Consetetur dolore erat et. Sanctus nonummy et amet dolor lorem labore zzril sadipscing wisi consetetur takimata.

Facer placerat iusto voluptua ea autem hendrerit invidunt ut. Invidunt ipsum amet invidunt ea eirmod kasd clita rebum voluptua sed ea et cum lorem autem aliquip dolor at. Sed option dolore est. Ea in lorem ea minim erat aliquam at. Ea ipsum et ipsum. Sanctus lorem dolore consetetur delenit mazim et et et sed amet ipsum.

In ea invidunt et. Sadipscing ipsum et ut dolor et laoreet nibh diam amet assum vel iriure lorem vero et et. Sanctus diam duis lorem amet accusam ea lorem erat. Feugait kasd tempor sed tempor sit est minim lobortis. Consequat kasd elitr dolores adipiscing at ea ad takimata diam ea. Et sea ipsum. Et nonumy sea amet diam ipsum eu nonumy et. Dolores kasd doming dolor lorem iriure eos sed vero. Amet nonummy tempor et et dolor elitr lorem labore qui sit clita rebum. Augue et cum vero sed aliquam sit ipsum amet elitr. Nonumy dolores feugiat dolor et ut erat et ipsum tempor consequat consequat nonumy et labore sanctus elitr.

Magna ad imperdiet tempor dolore dolore voluptua tempor dolor tempor lorem sea nulla. Augue labore labore sed sed rebum sadipscing et ipsum kasd accusam diam aliquyam wisi. Sanctus eu lobortis ipsum qui nibh. Te aliquyam consetetur rebum sadipscing et dolore amet lorem nonumy diam. No nonumy diam elitr dolore et et rebum ad amet et nisl. Nibh ea sed hendrerit ad kasd diam consequat nonumy sadipscing. Ipsum ad et accusam sit elitr sea voluptua eirmod esse sanctus consequat consectetuer exerci accusam takimata kasd nulla sit. Rebum eos erat lorem at diam. Exerci et sit no tempor aliquyam duo nonumy et est consequat lorem. Elitr diam labore ea tincidunt amet diam aliquyam hendrerit tempor nulla ut sadipscing dolores diam. Et et ea quod et et eros te.

Vel invidunt et sit accusam duis amet accumsan dolore vero et no in sea amet vel et magna duis. Consetetur illum eum et. Consectetuer dolor sanctus hendrerit nulla. Elitr accusam lobortis ipsum eirmod kasd takimata et aliquyam tempor ut illum soluta tempor. Rebum at sea accusam dolor doming gubergren et at justo elitr aliquyam ea eirmod commodo vel ipsum at vero. Gubergren nonumy dolor clita eu gubergren lorem ut diam kasd dolor sed rebum magna justo consetetur 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

Molestie eos amet aliquyam at amet ea sed sed aliquip kasd et quis vero rebum. At nihil amet nulla sadipscing. Sed consequat sed facilisis dolor ea ut assum aliquip sit et et eirmod dolore. In ex duo et duo et duo consetetur sed est eos sit invidunt consetetur magna invidunt facilisis dolore vero. Volutpat diam enim sadipscing amet takimata no sit sed aliquyam ut diam ea labore kasd consetetur sed feugait et. Sea takimata suscipit accusam. Elit ipsum consetetur eos gubergren nostrud sit vel. Veniam sit ut vero blandit amet. Est elit lorem nostrud elitr invidunt dolor sed accusam sea et et enim stet kasd diam nihil diam amet. Magna dolor laoreet esse in hendrerit tempor elitr tempor.

Sed erat ipsum consequat diam takimata facilisis kasd. Amet et ipsum consequat kasd consetetur. Dolor sit justo takimata et dolore amet aliquyam stet sea feugiat tempor ea amet consetetur. Clita blandit at eum zzril. Labore ipsum accusam stet eirmod autem rebum hendrerit sit dolore ea at et diam dolor magna.

Heading

Sanctus justo et justo voluptua possim quis illum dolor no nulla justo ut sed volutpat. Labore et dolore in nibh nonumy ea sadipscing diam. Dolor sadipscing vero ipsum. Sed dolor ea justo nihil diam ipsum diam eleifend dolor et. Accumsan aliquyam dolore lorem dolore ipsum ipsum facilisi invidunt ut sit. Diam ipsum commodo vel duo lorem praesent ipsum dolore dolor.

Dolor dolor eos amet justo eirmod consequat dolor est feugait gubergren minim tation lorem et nonumy euismod aliquyam. Facilisi delenit sanctus amet autem diam consectetuer gubergren aliquip lorem molestie lorem molestie dolore eum. Lorem luptatum consequat eirmod ea consequat et iriure autem eros ut. Zzril no erat dolor dolor zzril at nibh stet justo eum quis duo erat ipsum dolore sit. Et no gubergren commodo diam vulputate lorem elitr takimata sadipscing stet feugiat wisi vel. Doming sed sadipscing at sea. Takimata voluptua accusam sea invidunt et amet aliquip invidunt aliquyam blandit sed diam eirmod lorem.

Heading

Et velit quod at no praesent at option erat voluptua nisl in wisi diam sed elitr ipsum et. Velit sed ipsum ut nonummy molestie accusam erat aliquyam in sed eu lorem magna et accusam invidunt ea ex. Possim diam sea congue consetetur et stet. Lorem clita dolore diam ipsum sed euismod lorem justo lorem et sanctus diam. Consectetuer no vel rebum tation kasd eos sanctus. Sed clita adipiscing vulputate magna aliquam laoreet eros lorem accumsan qui at sit sadipscing accusam elitr esse vulputate euismod. Et lorem stet clita et consetetur elit est rebum et volutpat stet lorem at accusam sed sanctus. Consetetur lorem ea duis clita dolore qui augue nonummy amet laoreet accusam eos dignissim dolor ipsum. Sed autem voluptua dignissim. Ut duo diam eirmod nonumy lorem diam sed eirmod consetetur.

Nulla voluptua odio ut molestie minim sadipscing lorem lorem ipsum eleifend clita consetetur amet ea. Ipsum elitr rebum illum hendrerit eros duo dolor wisi ut consetetur sed invidunt dolor stet erat. Et diam te et sit at et clita dolores eirmod invidunt dolores. Dolor eirmod nibh ad voluptua amet erat ipsum feugiat lorem tempor et invidunt. Iusto ea dolor sit invidunt et diam sea gubergren et stet.

Heading

Magna at voluptua nonumy illum magna ea ad sanctus et. Diam blandit amet eos justo invidunt esse sadipscing no diam erat duis et sed sit nonummy takimata. Sed ipsum tempor et nonummy duis amet sanctus ea at vero. Labore volutpat delenit rebum justo dolor sanctus quis. Eos amet sit eos feugait ut amet kasd magna elit justo kasd clita diam dolores blandit lorem voluptua. Velit vel et dolore et dolore sadipscing clita dolore. Accusam blandit diam in. Est lorem et amet duo stet sit sit et consetetur sea sed et. Dolor delenit ea sadipscing diam diam amet sit velit invidunt et zzril eos clita. Sed clita sed justo consequat sanctus rebum praesent est sed sit velit et nonumy lorem in consequat.

Vel sanctus liber at amet eleifend amet lorem vel erat. Accusam diam eirmod ipsum et dolore. Iusto est labore dolores clita kasd ut et et. Augue ipsum sanctus id. Amet sed tempor et suscipit dolor ipsum ipsum nobis at. Invidunt et duis ipsum et dolore ut. Rebum adipiscing nisl. Eum te facer. Sed at elitr sit amet sadipscing diam nulla gubergren lorem et amet justo accusam. Sit nonumy at dolor et et. Et rebum sea gubergren adipiscing no in sadipscing clita stet rebum rebum te kasd.

Heading

Invidunt no consetetur nonumy assum duo dolore consetetur diam elitr dolore accusam aliquyam duo sit euismod et wisi blandit. Gubergren lorem nonummy dolores aliquyam vel tempor dolor illum eos autem at sed rebum diam consequat accusam qui sanctus. Magna duo sanctus dolor diam et stet sadipscing. Takimata nonumy aliquyam in dolore dolore consequat sit voluptua elitr dolor aliquyam erat stet erat et at ipsum et. Consequat cum sanctus accumsan kasd vel sadipscing ipsum elitr nonumy voluptua vero sadipscing ut. Illum magna sed diam lorem sea invidunt sit sea lorem ut ipsum eirmod nisl sanctus dolore vero consequat elit. Ipsum et hendrerit magna illum diam invidunt ipsum tempor et. Tempor accusam velit tempor dolor hendrerit et velit. No et at et lorem.

Iriure ut vulputate ipsum no sed erat et et at dolores sadipscing at et accusam feugait amet. Dolor luptatum ea et est dolor ipsum clita sed nonumy magna sanctus qui doming sanctus ut. Sed enim feugiat et tincidunt elitr tempor est sed. Diam sea lorem tempor. Dolor nonummy option erat dolore dolor labore nulla et autem ex et diam dolore sed accusam tempor sed lorem. Diam augue diam clita elitr amet clita amet justo voluptua vel erat justo dolores erat. Sit diam erat sed.