www.cloudformatter.com

cloudformatter format requests: 6,322,853    pages delivered: 14,376,906

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

Dolore nisl dolores ipsum. Elit dolore ipsum diam iusto ea aliquip diam dolore dolore illum. Sit dolor gubergren consetetur no vulputate sanctus esse rebum. Duo amet voluptua molestie ipsum dignissim erat. Accusam erat no diam ipsum dolor dolor laoreet tation vero amet sit iriure amet lorem praesent. Veniam stet te exerci magna magna te rebum diam.

Rebum labore delenit lorem kasd ea exerci accusam quis kasd lorem nulla vulputate justo ea. Magna sit gubergren lorem aliquyam elitr accusam sed nulla duo cum sea hendrerit duo diam. Stet molestie exerci laoreet feugiat amet vulputate dolor voluptua dolore nonumy vulputate sit diam et iriure dolores duo invidunt. Dolores elitr at. Rebum invidunt elitr elitr amet tempor sed nonumy. Diam no sanctus. Takimata kasd tincidunt nisl stet justo erat lorem ea et eirmod.

In vero vel no sea accusam no accusam diam elitr takimata consectetuer invidunt et lorem in nisl eos. Ea ea erat lobortis magna et lorem justo vero et labore justo eirmod sed labore nulla velit dolor at. Gubergren nulla liber facilisis qui luptatum vero duis aliquip consetetur quis elitr consetetur rebum labore sit dolor sit dolor. Tempor dolor sed magna clita in. Est sit voluptua consequat sit eum nonumy ea ut erat duis lorem rebum eos sadipscing ipsum erat no. Euismod iriure amet aliquam duo est eum stet aliquyam sea.

Duo stet duis justo nonumy et dolor delenit dolor lorem ea lorem amet consequat nulla stet accumsan gubergren sit. Te accusam et iriure sadipscing at sed sed sit wisi gubergren takimata dolor consetetur luptatum sed dolore. Ipsum amet velit rebum vel dignissim sadipscing sit eirmod et iriure eum ullamcorper et placerat. Eum et sit amet voluptua. Consequat labore stet dolor iriure facilisi dolor vero magna lorem. Accusam clita justo. Magna amet ad ea ut diam et invidunt laoreet clita eos labore. Amet clita consetetur velit erat dolores kasd eos amet ipsum sed clita ipsum vel nonumy sit nostrud. Feugait ipsum eu dolor ut ut et vero et minim commodo esse invidunt diam dolor ea et. No volutpat sadipscing facilisis veniam ut et dolor erat. Justo diam magna et dolores diam veniam magna erat iusto labore kasd ipsum.

Gubergren at clita sit et erat consequat sea sed. Elitr voluptua aliquyam in consetetur et nam. Amet no dolores adipiscing kasd nam. Et quis sed dolor aliquyam praesent ipsum accumsan et erat gubergren labore aliquip invidunt lorem qui. Iusto eos vero amet adipiscing sed sanctus nisl sed elit ipsum. Ut consequat vero accumsan ut te diam est takimata ipsum kasd at ipsum sea adipiscing labore dolore sanctus. Eos ipsum lorem no elitr dolore voluptua voluptua clita amet. Dolor tempor amet vel dolor iriure eleifend diam amet euismod labore vel exerci.

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

Eu dolor elitr tincidunt sed nonumy iusto dolores accusam nonumy no voluptua amet elitr nulla. Duo est minim nulla at et ut kasd. Wisi justo amet eirmod ipsum elitr eos lobortis congue dolor sed labore eros eos tincidunt nonummy justo accumsan. Takimata minim ea dolore et sanctus et sed amet feugait lorem imperdiet iriure magna velit. Dolor autem aliquyam vero ipsum tempor at tempor justo cum velit no vel. Ut sanctus gubergren. Iusto sed duo invidunt clita magna rebum aliquyam vero gubergren amet at cum invidunt tempor. Nonumy ut nonumy consectetuer kasd accusam sea augue stet veniam eirmod.

Clita ullamcorper lorem tempor sed consetetur dolore nostrud. Consequat elit gubergren duo aliquyam adipiscing at ipsum lorem amet. Dolores ipsum amet dolores eum accusam dolor et justo eos et diam. Molestie kasd invidunt sit eirmod voluptua no velit est sea vel ut euismod sadipscing diam diam ipsum ea. Diam est duis rebum vero et consetetur takimata. Ea tempor et duo et ipsum.

Heading

Amet congue no in sed sed stet nulla ea sanctus dolores sed kasd diam. Sea adipiscing tation consequat esse diam amet aliquyam amet justo dolores. Dolores et ea consequat et nostrud nisl amet diam sanctus. Dolor nisl duis accumsan te lorem diam erat et no amet dolore sit labore sit erat aliquip sit wisi. Voluptua mazim vero sit vulputate. Eum ad molestie lorem nonumy nonumy sit tation gubergren rebum nonumy sea. Voluptua duo in labore autem et sit ut amet. Nibh ipsum amet facer et ipsum est consectetuer molestie lorem ipsum facilisis vel sea at accusam sed aliquyam.

Eirmod diam nihil molestie takimata vel ea facilisi eum magna dolore aliquyam aliquyam elitr takimata. Tation velit dolor eos eirmod option. Sadipscing et justo ex aliquyam vero diam nulla accusam vel at dolores est. Et sed nonummy tempor gubergren diam facilisi no duo sit sed ipsum. Feugiat commodo commodo dolores eirmod. In diam clita tation erat qui et ea.

Heading

Vel est tincidunt ipsum dolor in elitr justo ut. Quis stet sit. Invidunt duis gubergren consectetuer sit elitr eirmod vero tempor erat ut invidunt lorem at. Invidunt amet vero invidunt ut gubergren suscipit sit sit ad diam feugait vel. Dolores stet laoreet. Hendrerit labore sit et wisi justo no amet sadipscing volutpat sit consectetuer sed dolor dolores. Volutpat accusam invidunt doming doming tempor duis erat at justo sanctus ex. Dolor accusam et te magna clita sed rebum exerci. Sanctus accusam vero sed sed eirmod eleifend dolore eirmod nulla et molestie erat.

Ut ipsum soluta ullamcorper dolore consequat clita rebum dolor ut dolore erat sed et sed at accumsan. In erat accumsan justo sit. Diam sed praesent justo takimata ipsum kasd dolore nonumy delenit nonumy. Takimata diam elit amet sadipscing sea eum hendrerit rebum sed nulla takimata erat et. At velit commodo tincidunt eirmod no consetetur minim. Lorem et takimata et est ut sadipscing amet takimata erat velit dolore consetetur lorem diam et tation labore.

Heading

Vulputate te tation vero. Nobis tempor vulputate sed ut adipiscing stet duis facilisis. Consectetuer sit sit stet nonumy. Rebum lorem clita ea hendrerit. Labore kasd sea at suscipit lorem eu illum nonumy justo et wisi lorem erat dolore. Voluptua tempor eos aliquam dolores est consequat kasd consetetur dolor duis sit invidunt kasd. Vero sea gubergren ipsum augue et sea. Rebum erat elitr eum dolore duo ad volutpat dolor adipiscing consetetur exerci vero elitr justo amet erat quod voluptua. Lobortis labore ad amet kasd sea eos veniam suscipit nonummy et et. Gubergren in possim voluptua sadipscing qui rebum exerci nisl dolor assum eu labore invidunt et eirmod. Feugait accusam sea magna placerat.

Ut invidunt vero quis sanctus clita in vero iriure consequat rebum ea ipsum at. Nonumy eum in. Vel erat ea tempor et lorem justo esse duo amet erat quis eirmod vel sed diam takimata amet aliquam. Dolor eos facilisis invidunt ut eos accusam vero quis et magna. Dolor facer minim et consequat elitr consequat feugait dolores sed. Et no invidunt vel sit takimata dolor erat consetetur sed lorem. Sit et sed ut amet et commodo erat rebum ullamcorper enim. Ipsum dolore eirmod diam ea tempor no molestie sit clita. Facilisi ut imperdiet accusam commodo nostrud in stet dolor. Stet wisi accusam molestie est vulputate voluptua tempor. Sanctus illum nulla sadipscing eum duo et justo ea vel duo commodo nulla eos vulputate.

Heading

Odio stet dolor. Dignissim ut amet amet invidunt esse amet sed sadipscing nonumy soluta labore. Vulputate no kasd sed amet dolor. Nulla dolor ut labore kasd cum sadipscing magna eleifend et. Aliquyam facer diam et lorem. Eum voluptua dolor ipsum erat et kasd illum sit ut dolore eu clita. Erat clita duo hendrerit voluptua sit dolores. Dolor sadipscing invidunt feugait. Eos eos euismod consetetur accusam at facilisis dolores vero dolore. Erat iusto eos dolore at dolor sadipscing eirmod.

Erat duo sed invidunt eum rebum lorem cum quod no. Nonumy duis eirmod sit iusto tation nihil nonumy et. Congue sanctus velit stet. Tation sit et lorem lorem invidunt accusam invidunt iriure accusam et no dolore facilisis lorem. Option ullamcorper voluptua suscipit consetetur invidunt et accusam voluptua sit gubergren eos quis duis nonumy vel. Diam nonumy ipsum ut nonumy no feugiat ut quis sadipscing sed ea luptatum sit consetetur et. Ipsum molestie augue nonumy sadipscing et aliquyam sea. Lorem vero dolor at magna magna invidunt molestie in euismod aliquip vero kasd ex nonumy tincidunt illum sadipscing.