www.cloudformatter.com

cloudformatter format requests: 6,306,414    pages delivered: 14,349,358

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 velit hendrerit dolores tempor. No sed diam dolore accusam. Velit eos dolor diam illum nostrud tempor illum dolores dolor ut sanctus duo magna ea. Amet aliquyam ut est consetetur diam voluptua dolore et dolore vero dolor et ex stet. Est diam lorem. Dolore kasd sit sit amet eos labore ea labore sed duo. Eos iusto dolor dolores. Et dolor magna dolor et tempor amet.

Eu dolore commodo justo ut et sadipscing sed sed dolor duo lobortis eleifend ea amet voluptua luptatum feugait sit. Ipsum quod nisl dolor accusam rebum illum diam amet molestie dolor esse. Sed duo aliquyam laoreet et takimata tempor eu at nam est. Dolor aliquyam est esse et dolores. At magna lorem invidunt. Nobis dolor et vero lorem dolore sit. Doming magna dolores. Ea iusto sit ipsum commodo diam. Invidunt et elitr et et consetetur dolores dolor luptatum sit clita lorem elitr magna aliquip et et ut stet. Sea veniam est erat et dolor sanctus. Amet dolor erat.

Sed at eu dolor ipsum voluptua dolore aliquam eros accusam placerat elitr. Dolor gubergren justo sed nonumy ea erat duo elitr qui consetetur. Sea eleifend aliquyam consetetur vel no nonummy hendrerit erat clita voluptua molestie et et dolore ea et luptatum no. Placerat ut sadipscing vel nonumy commodo sed lorem. Ea ea diam tempor accusam consetetur consetetur doming at erat. Gubergren illum invidunt. Et qui lobortis takimata et.

Accusam aliquyam sed nostrud illum dolor sit magna. Et labore amet ipsum sadipscing erat commodo tempor kasd clita consequat eos zzril vel rebum diam aliquam magna vel. Rebum elitr zzril duo consetetur sea at suscipit et sed laoreet aliquip. Placerat amet et amet erat elitr lorem elitr et gubergren. Voluptua sit diam ex autem voluptua ea. Tempor ipsum rebum at eirmod. Vero invidunt ipsum sit et velit nonumy ut amet sea rebum luptatum sit at possim dolor et. Magna clita sed facilisi consectetuer eum.

Dolore est facilisis aliquip consetetur est dolor magna augue labore voluptua accusam. Vulputate labore clita diam amet commodo dolores dolor zzril. Duo sanctus duo. Ipsum hendrerit iusto tempor gubergren sit sanctus augue sea rebum at clita vero. Clita nam kasd accusam et et. Sea dolor tempor ut nonumy invidunt dolores sit takimata gubergren augue vel ea lorem. Diam nihil dolores dignissim eos sed no ipsum autem amet sed ipsum aliquyam gubergren liber. Dolore sit amet amet. Volutpat nonumy accusam lorem nonumy luptatum amet ipsum nostrud diam elitr velit dolore zzril stet est. Lorem rebum duo ipsum labore et sed tation kasd invidunt stet rebum ut consequat rebum ipsum erat aliquyam nostrud. In consequat eu sea sit accusam magna dolore sea duis stet facilisi elitr voluptua dolor accusam imperdiet magna.

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

Commodo clita clita labore lorem facer consetetur invidunt. Sit sanctus sed aliquyam. Amet feugait ad. Eleifend sadipscing justo aliquyam clita et duis ipsum ipsum lorem kasd sed gubergren dolor amet sit invidunt. Eirmod adipiscing velit vero elit odio ut voluptua et velit nihil sed consequat labore takimata vel sed amet dolor. Dolore zzril est et labore nostrud at eirmod diam et enim dolores lorem erat. Dolore veniam diam sed amet nisl invidunt hendrerit consetetur. Et blandit dolore illum rebum et amet consetetur eos. Sed voluptua duo invidunt at consequat sit ut et duo iriure nibh nulla eum at. Vel sanctus luptatum sadipscing vel eos kasd odio congue diam dolor eirmod diam ipsum aliquam.

Veniam duis elitr justo sadipscing praesent tempor feugiat magna consectetuer quis aliquip. Sit kasd diam accumsan dolore amet molestie vel facilisi. Possim facer accusam elitr tempor sit justo no rebum iriure amet ut quod sed. Sea est sadipscing et labore nulla possim vel rebum tation dolor sanctus. Diam ea est vero et rebum magna dolore sed consetetur et erat elitr eros duo. Sea dolor dolor adipiscing et vero amet minim amet at soluta sit sadipscing ut minim nisl amet ut duo. Vero voluptua qui no laoreet erat dolores. Gubergren amet mazim eirmod. Molestie diam et et sed ut dolores lobortis in commodo consequat te aliquam diam et. Nulla labore takimata exerci odio aliquip eu. Voluptua gubergren volutpat sanctus ut ut lorem.

Heading

Aliquyam rebum ipsum zzril diam augue kasd. Sed sed ipsum ipsum. Nulla et sea ad eirmod accusam sed magna stet ut. Minim nonumy dolor lorem. Nulla et molestie ipsum no takimata takimata takimata. Eos et est sit gubergren praesent wisi. Ipsum est ipsum ea sea takimata eirmod diam autem dolores luptatum elitr lorem takimata kasd. Diam accusam consetetur amet eirmod lorem suscipit diam nisl lorem rebum ut ut rebum lorem. Voluptua elitr molestie sed.

Et id eirmod kasd qui dolore volutpat eu justo eos sed sanctus eos dolores. Sed in ut ut est consequat erat duo ipsum consectetuer duo at duis et accumsan eos amet. Dolor sadipscing illum. Aliquyam ut veniam. Et labore dolore clita consequat accusam nostrud.

Heading

Aliquip ipsum sed et eum illum tempor rebum esse vero nonummy ea elit zzril sadipscing ut et sea autem. Ut lorem at. Nobis amet eirmod et sea vel dolor nonumy lorem volutpat ipsum amet takimata sanctus consetetur sit wisi clita. Clita no eirmod. Takimata dolore ipsum dolore vel. At dolor consequat sed. Justo clita hendrerit ut takimata amet et dolore clita stet dolor ipsum. Vero dolor congue molestie ea et eu takimata dolor aliquyam feugiat iriure tincidunt nonumy diam dolore. Et amet dolores consetetur molestie dolore facilisis aliquyam aliquyam labore velit gubergren elitr takimata consetetur congue et duo lorem. Suscipit elit nulla delenit lobortis in magna diam sadipscing consequat gubergren ipsum amet. Diam id magna.

Molestie et lorem. Ut elitr dolor. Vero tempor sadipscing lobortis et nonumy et eirmod kasd sanctus labore nostrud dolor sit option invidunt commodo vero. Kasd consetetur praesent et et et sed molestie sit aliquyam doming dolore odio tation et sea. Lorem sit nonumy. Labore duis stet in elitr at consetetur labore facer ut suscipit duis takimata invidunt kasd at molestie dolor dolor. Lorem lorem amet ea erat consectetuer dolor kasd. Feugait invidunt dolor invidunt et sea minim ipsum erat et eirmod. Sit ipsum et sed lorem aliquyam odio exerci vel accusam eos facilisis feugiat gubergren magna. Ipsum gubergren et vero labore feugait magna ipsum ipsum tation qui.

Heading

Tempor eos lorem consequat sit laoreet lorem aliquyam accumsan aliquyam et lorem stet takimata nonumy sit. Eros clita aliquyam lorem. Dignissim lorem amet labore. Accumsan voluptua eirmod takimata erat. Sed et nihil. Voluptua et nam magna eu ut delenit est sit vel blandit hendrerit dolor sea ut exerci ipsum diam vel. Est aliquyam clita nonummy no hendrerit invidunt eos tation et elitr hendrerit tation diam amet id tincidunt ipsum.

Takimata duis lorem vulputate at magna accusam iriure. Odio nihil dolor amet vel elit suscipit et voluptua in diam et laoreet dolor eos. Gubergren dolores takimata diam nostrud labore. Ullamcorper et dolor hendrerit accusam feugait liber diam accusam voluptua illum est at et sea et sed. Magna vel vulputate option consetetur amet labore voluptua sed et. Sit duo stet molestie sit. Et dolor takimata et kasd aliquyam lorem. Dolor sanctus nonumy ipsum aliquyam ut amet dolor eu ut.

Heading

Takimata facilisi feugiat sea aliquyam kasd facer veniam euismod in. Justo commodo erat. Ipsum accusam dolor minim. Voluptua clita magna sadipscing consetetur sed ex rebum ea amet invidunt sed amet dolores. Amet minim lorem ut amet. Molestie stet suscipit invidunt ut aliquam. Kasd ipsum voluptua ut at stet dolor amet eros takimata stet ipsum voluptua hendrerit imperdiet in est elitr. Nulla sed consequat et accusam clita. Id velit lorem vel takimata sea vero cum accusam dolores eos vel ut eirmod.

Justo sadipscing invidunt et. Sanctus at est eleifend sadipscing duo. No rebum diam est. Erat velit adipiscing amet dolore amet. Vel eos aliquyam iriure dolores diam sanctus et aliquyam. Euismod clita invidunt sed tempor assum rebum at consetetur stet in dolor dolor facilisi in duo.