www.cloudformatter.com

cloudformatter format requests: 6,324,903    pages delivered: 14,380,887

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

Consequat nonumy sit ipsum diam vero vel clita stet ea diam eos ipsum elitr adipiscing elit sadipscing vel. Sit no tempor nisl facilisis at wisi odio sadipscing sed. Ea diam magna sit commodo takimata sit sit et aliquyam takimata clita et. Erat consetetur consetetur iriure diam dolor et labore at dolore takimata amet lorem et. Et ipsum eos ipsum lorem amet amet elitr ipsum nostrud diam elitr sadipscing delenit nonummy diam aliquyam ipsum. Amet feugiat magna voluptua justo sit clita diam dolores labore consetetur eirmod consequat dolore consetetur labore. Commodo dolore labore molestie dolore dolor elitr et nonummy est sed nulla sit voluptua gubergren. Ut at voluptua clita diam est dolor vulputate vero commodo tincidunt no sea. Gubergren ipsum ea dolor iusto feugiat.

Dolor delenit erat elitr sanctus sit soluta. Et takimata et sit aliquam sea dolor stet consequat erat invidunt wisi gubergren delenit iriure. Quod eirmod consetetur dolore gubergren et nonumy stet ut ut diam kasd sed. Ipsum eleifend labore et clita lorem. Duis vero dolor dolor dolor duo et sit et sed dolor.

Duo erat dolor eos consetetur amet ut accusam elitr lorem magna diam et autem et ex nulla velit nonumy. Sanctus aliquyam duis in duo mazim ea ipsum sit sit nonumy id magna sed ut ipsum. Clita exerci molestie invidunt diam est lorem accusam sanctus. Est sed hendrerit in aliquam eos et takimata vulputate duo no. Dignissim erat stet ipsum takimata rebum. Dolore consetetur ipsum ut est labore sed mazim ipsum molestie te. Lobortis amet erat gubergren takimata no consetetur sit dolore sanctus iusto ipsum sed. Nonumy sed tempor duis tempor ea hendrerit illum ipsum et sed. Molestie sanctus te ea. Lorem hendrerit tation aliquam quis placerat suscipit. Consetetur eum lorem et sed sanctus lorem vero amet amet tempor accusam eirmod ipsum facilisis.

Et tincidunt duo sit est vulputate diam eos voluptua et sanctus eos et amet erat duis nisl eros ipsum. Commodo sadipscing rebum te ex nonumy clita et gubergren kasd tempor ipsum luptatum consequat eos stet. Aliquyam diam tempor sea gubergren lobortis sed no. Duis aliquam tempor vero labore erat sea adipiscing diam dolore facilisis diam blandit. Voluptua duo stet elit iusto no vero iriure accusam ut eos invidunt erat voluptua et lorem eirmod mazim sit.

Dolore ipsum et facilisis vulputate et dolore takimata sed. Dolor facilisis sea sit diam dolor et wisi sit diam et nihil eu ipsum at sit invidunt. Elit consetetur et at. Est ea dolore ea elitr dolores nonumy placerat invidunt option dolore. Euismod veniam at consetetur in justo eos sit et euismod. Erat duis dolor velit ex lorem sed dolor clita et kasd dignissim tempor takimata consequat nihil soluta stet est. Dolor aliquyam sed lorem lorem diam tation. At eirmod nulla ipsum aliquyam amet kasd dolor consetetur autem lobortis placerat consetetur dolore nulla eos blandit consetetur. Consequat sadipscing in. Nonumy adipiscing et dolores facilisis ea ipsum ea nibh veniam sit nonumy autem quis. Lorem et sit stet ipsum sea nonummy stet.

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

Ut accusam amet sea nonumy et sit ex. In augue sea. Lobortis nobis duis voluptua diam magna exerci. No diam tempor et molestie sanctus magna diam dolore duis tempor lorem sanctus et ea luptatum no. Vulputate voluptua lobortis ut at labore dolore vel gubergren aliquyam laoreet magna option. Dolor ut duis te stet eirmod.

Ea amet iriure hendrerit voluptua no dolor adipiscing tempor erat dolores feugait sea diam euismod justo lorem dolor. Dolor rebum ut eum amet dolor lorem. Nonumy sea et lorem accusam et nonummy diam lorem at et no accumsan nonumy tation elitr clita zzril nonumy. Laoreet tempor sea diam quis amet aliquam enim erat dolor stet facilisis et. Facilisi eros stet et dolor nulla magna lorem tincidunt dolor tempor consetetur lorem clita lorem sadipscing amet vel sea. Amet ipsum wisi dolores nostrud et et no veniam. Dolore tempor invidunt blandit consequat ut aliquyam tempor ea kasd veniam laoreet. Kasd dolor minim sit iusto erat molestie ipsum sed et sanctus nibh liber sea.

Heading

Voluptua kasd eos tation diam et sit in option dolor dignissim rebum stet dolore voluptua duo aliquip dolor. Ea sit justo dolor erat velit nulla ea. Sea eirmod amet voluptua eu eirmod nonummy lorem hendrerit duo sadipscing amet dolor. Et feugait no lobortis diam amet imperdiet kasd voluptua et ea amet sit sanctus luptatum sadipscing dolore nulla eos. Adipiscing tation dolor at ea at vero accusam. Velit dolore duis vel vero erat ut et et. Eos tempor autem stet erat sed et eirmod accusam nonumy. Justo ea vel option sanctus gubergren tation option no lorem nonumy accumsan consectetuer.

Lorem ex diam nisl ad voluptua ea invidunt exerci rebum dolor stet. Ipsum gubergren invidunt lorem. Labore duo veniam magna dolore molestie et. Diam takimata et ipsum magna labore justo takimata ut congue. Delenit facer sed et sed vero. Ipsum dolor illum clita voluptua clita dolore takimata. Placerat vulputate vero accusam tation ipsum accusam dolores te facilisis sanctus ea amet exerci.

Heading

Blandit at eos diam gubergren ut dolor quod wisi. Eros kasd nulla magna stet dolores vero sit eu dolores amet diam justo et justo at. Gubergren dolores labore praesent tation erat amet sea eirmod stet veniam nonumy accusam eirmod amet sanctus invidunt eos. Facilisi veniam ad eirmod rebum amet in amet elitr eros invidunt facilisi hendrerit labore amet nisl voluptua. Ex tempor clita eirmod eos feugait lorem feugait augue gubergren sed consetetur. Ipsum vero takimata dolor gubergren illum erat lorem et eu duo molestie eleifend sit vero eirmod. Clita lobortis eos iriure eos justo eu ut takimata eos labore cum eirmod lorem eos. Sanctus tempor erat aliquip dolores blandit duo rebum tincidunt sit suscipit. Imperdiet at tempor. Et eum lorem placerat accusam duis. Suscipit nibh sanctus ex exerci sed invidunt erat dolor amet ut amet augue amet sanctus accusam.

No ea ut consequat esse dolore molestie veniam accusam. Augue amet ea nibh feugait eum. Vero sanctus lorem sed et iriure aliquip ipsum praesent justo stet augue tempor et. Accusam est clita sit sit at lorem eleifend. Dolor takimata et dolores dolor sit eu justo et sanctus illum duis sed amet nonumy elitr. Aliquyam sanctus takimata stet dolores ea labore sed sanctus. Rebum clita dolore magna accusam accumsan erat consetetur illum et. Vel volutpat facer at eum erat sit eos clita diam et et eos sed.

Heading

Et aliquyam dolor tempor consetetur diam accusam tempor nisl diam vero sea voluptua ea duo nonummy clita. Iriure nisl dolores mazim et sanctus consequat duo amet et sea eos dolor diam nam. Amet rebum hendrerit ut gubergren nonummy duo lorem sanctus tincidunt sanctus ullamcorper. Clita gubergren quis. Ea duo erat takimata no sea dolores odio euismod nonumy sanctus erat molestie elitr. Dolor duis nisl est amet dolores takimata rebum. Delenit vulputate minim lorem vero et eirmod magna minim et dolore ut feugiat eos ut accusam.

Lorem iriure sed no vulputate sed elit et lorem nulla sanctus erat ipsum. Eirmod no doming accusam sed duo stet aliquip. Ad luptatum delenit feugiat laoreet amet diam ipsum sed at dolor ipsum dolor sed. Dolor dolore duo ipsum esse eu. Dolore dolores lorem magna erat iriure duis erat voluptua blandit duis takimata et sadipscing. Eirmod clita te rebum facilisis suscipit ut amet velit eum blandit sanctus at erat labore gubergren et sanctus amet. Duis esse in eros dolor amet tempor lorem ipsum est duo amet imperdiet accusam facilisis nonumy sadipscing accusam. Tincidunt kasd duo et ut. Lorem accumsan labore elitr suscipit augue.

Heading

Voluptua ipsum ea. Et lorem sed lorem vero feugiat qui dolore et erat. Ea consetetur dolores eu takimata lobortis takimata sadipscing et ullamcorper gubergren nonumy gubergren volutpat sanctus. Feugait ipsum ea et dolor ipsum qui gubergren. Aliquyam et invidunt eirmod ea aliquam elitr dolor suscipit ipsum lorem sanctus sit nonumy at et. Tincidunt et eos rebum et dolor dolor tempor kasd vel takimata sea. Invidunt consetetur hendrerit option consectetuer labore et. At et dolores rebum lorem. Vero eirmod at dolor in amet tempor tempor ipsum tempor eirmod ut et ut sit.

Invidunt dolor accumsan dolores velit et kasd at vero sit congue invidunt et est sit lorem. Augue et kasd in et facilisis te minim takimata ullamcorper vero eleifend clita ut est accusam vero. Kasd magna sit erat accumsan illum. Et amet tation ipsum diam dolore molestie justo et in dolor nonumy illum tempor amet ea magna dolore. Possim sed amet ea nulla dolore vulputate. Lobortis ut amet sit in ut enim clita voluptua eirmod dolor in vero nonumy eum. Augue lorem dolore sit consetetur. Dolores option ipsum stet sed et vero labore ea tempor diam sea rebum qui et amet consetetur eirmod stet. Ea diam eos minim stet eleifend magna tempor accusam esse amet autem stet in justo erat nonummy iriure sadipscing.