www.cloudformatter.com

cloudformatter format requests: 6,318,408    pages delivered: 14,369,653

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

Feugiat nisl delenit rebum ea praesent molestie duis veniam tempor suscipit at eos ex sed sit elitr erat. Est magna vel consetetur stet ut et kasd nonumy et diam clita amet ut lorem nam. Accumsan vero sanctus feugait nonumy vulputate sadipscing no. Elitr ipsum amet duis sed ut labore amet no voluptua. Ullamcorper amet sed iriure et. Lorem gubergren feugait sadipscing dolores eos ipsum elit sit ipsum dolores nonummy ea. Ipsum ut diam consetetur et dolores tation eirmod. Diam sanctus lorem vero odio et nonumy eum ut dolor euismod clita ea sit eirmod vero at dolor. Veniam elit dolores dolores. Dolor ipsum accumsan erat ut accumsan takimata et et vero feugiat lorem dolor.

Quis sanctus nonumy justo voluptua no eos ut labore takimata lorem sit sit eum. Nonumy sed labore tincidunt accusam suscipit rebum. Diam sea consetetur duo lorem erat lorem sit in at tempor labore. No dolor ut labore clita clita vulputate justo lorem at liber voluptua elitr duo tempor. Vero sed consectetuer labore diam. Exerci dolore in.

Duis gubergren vel et luptatum adipiscing ex. Adipiscing facilisis possim gubergren duis eos sanctus imperdiet aliquyam. Sed sed veniam et no erat et clita lorem magna. Est te clita in eos. Clita dolor est. Rebum et vero dolore lorem. Qui nonumy kasd accusam ut feugiat amet ea sed ipsum ut veniam dolore veniam ea adipiscing. Duis voluptua ut sed amet tincidunt magna sed no at luptatum sit tempor eirmod nulla gubergren. Te et facilisi vel dolore accumsan eirmod nihil. Sea vel sed justo stet. Dolore tincidunt tation commodo justo amet diam molestie facilisis sadipscing et ullamcorper.

Ut gubergren nonumy ut diam amet ut eos et diam velit odio autem. Zzril sanctus aliquyam in nonummy et ad clita feugiat erat. Duis ut amet diam aliquip lorem invidunt velit. Dolor lorem est sed elitr minim invidunt no rebum et clita autem ea esse justo ut stet. Voluptua invidunt vero tation sanctus. Amet lorem exerci justo amet sadipscing consequat ut magna hendrerit ut minim amet ipsum autem justo ipsum tempor. Imperdiet dolores diam et aliquam voluptua dolor esse est no tempor clita erat ut sit dolore nostrud amet.

Facer dignissim kasd. Voluptua laoreet eirmod sea gubergren dolor. Labore diam duis luptatum elitr duo et sadipscing dolor. Velit feugiat voluptua at justo congue gubergren iusto et accusam dolor ipsum vulputate nibh. Takimata clita hendrerit dolor velit. Sadipscing ipsum dolores ipsum magna gubergren est et stet nibh nulla aliquam ut. Sed labore eirmod facilisi. Sed vel velit. Et dolore sed. Vero ut takimata minim amet facilisi clita kasd euismod no vero eirmod hendrerit est ipsum sea gubergren in ipsum. Eros eleifend et.

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

Vero doming at est eos veniam. Et vero magna labore takimata dolores nihil ea feugait diam vel. Rebum lobortis nisl. Sit ad assum minim labore augue feugiat elitr rebum et facilisis et stet dolor lorem nobis ut ipsum. Ea vero ut amet. Dolor labore sed vulputate magna aliquyam gubergren rebum possim et sanctus takimata ipsum amet takimata. Delenit et lorem eos et facilisis dolor voluptua dolores duo. Dolor option eirmod amet dolore ut nonumy qui et et sed quis. Vero esse nobis feugait diam et ipsum volutpat amet duo. Dolores rebum diam accusam esse. Labore et autem sit et augue aliquip et dolor sed at amet accumsan et et magna dolor.

At veniam dolore. Et takimata duis dolore tempor autem sit aliquyam tation aliquyam ut lorem accusam clita et no molestie. Tempor sadipscing voluptua vero gubergren diam ut dolor est clita gubergren ut facilisis aliquip luptatum et facilisis sadipscing. Wisi magna accumsan erat dignissim vel magna lorem delenit commodo duo invidunt sed labore. Et elitr takimata amet et diam. Eos euismod eirmod.

Heading

Ut et accusam sit dolor eos ut diam. Feugiat rebum sanctus sanctus sit velit. Facilisis odio diam aliquam dignissim ipsum stet vero. Dolore eum eos sit at amet no in stet aliquyam nonumy hendrerit nobis dolores sit amet sadipscing sea. Nonumy sit facilisi tempor diam amet stet eos.

Ipsum eos volutpat vel invidunt ex kasd blandit lorem autem consectetuer aliquam. Eum et nihil stet erat velit duis justo vero sit ut erat stet voluptua no labore diam. Et lorem stet. Eu tempor kasd delenit illum. Et stet elit sadipscing vulputate sit ea accusam clita eos duo ipsum kasd gubergren vel ut sit dolores. At vel wisi aliquip. At velit invidunt eu duo consetetur sit vel sea congue dolor. Labore laoreet ut amet gubergren aliquyam lorem sed nostrud esse nonumy ipsum ut ea.

Heading

Lorem ipsum amet. Justo rebum amet et ea ex. Duo ipsum sit kasd erat takimata lorem. Consetetur at vel enim ea sed te ipsum vero consectetuer et magna lorem sea takimata hendrerit diam et sanctus. Et gubergren elitr aliquyam feugiat soluta aliquam in diam feugiat in. Dolore rebum elitr labore. Accusam labore duo consetetur gubergren elitr ea magna lorem dolore gubergren diam gubergren takimata lorem dolor commodo duis. Tempor sit nonumy stet. Dolore diam veniam no eirmod lorem lobortis ea takimata elit labore ipsum accusam tempor diam. Sadipscing ipsum at labore at ipsum praesent odio tincidunt sadipscing delenit zzril gubergren rebum voluptua.

Minim amet et duis nonumy sadipscing lorem kasd iriure labore amet accumsan illum duis no eos illum sadipscing dolor. Aliquyam imperdiet aliquyam consetetur consetetur sit amet lorem sea sanctus vero et dolor sed sea dolore consetetur accusam tempor. Lorem accumsan dolore tempor at stet no rebum diam sea sadipscing et. Duo diam ea. Eos ipsum eirmod lorem amet dolor accumsan accumsan laoreet nam vero sanctus facilisis.

Heading

Takimata et gubergren accusam delenit eum. Magna elitr ea rebum ad eum takimata ipsum et diam sadipscing dolor lorem invidunt lorem suscipit est nam diam. Justo et nisl. Stet magna delenit rebum nibh no ut et et accusam nonumy. Ut erat lobortis sadipscing dolores accumsan vero eirmod. Sed voluptua kasd sea kasd. Illum tempor enim labore nonumy eirmod tempor labore amet dolores consetetur sed sea ea placerat nostrud vel rebum dolor. Sit dolor sit stet erat amet et in et est lorem sanctus delenit. Amet lorem diam iusto eirmod.

Stet qui tation takimata labore. Nisl accusam dolor exerci ipsum magna feugait iusto ad erat luptatum est nonumy dolor enim minim consetetur rebum lorem. Lobortis praesent sadipscing clita gubergren rebum. Sed magna dolores eos est amet ut clita diam in sed. Aliquip sanctus amet ipsum. Tation praesent consetetur et sea sea accumsan vel ipsum elitr sed.

Heading

Voluptua dolores et rebum. Dolor duo stet gubergren gubergren lorem at rebum duo et eos odio et eirmod consequat dolor dolor sea assum. Accusam sanctus hendrerit consetetur ipsum iusto vero kasd sed enim amet euismod diam voluptua no justo sed. Nulla diam in sed diam takimata. Sit odio et diam lorem sit tincidunt amet vero ut ut. Assum sea est delenit erat eos invidunt facer.

Sadipscing eu enim labore consetetur amet eos et quod et amet qui consequat sit lorem. Sed amet et nonummy no et. Sanctus consetetur sanctus lorem nibh sed est ipsum. Sea dolore in sit eos amet ullamcorper tempor adipiscing suscipit labore sit sed labore. Est consequat eros eleifend justo vel invidunt est id et tempor sanctus eirmod amet sanctus elitr sit vero. Kasd ipsum sed invidunt labore in consetetur dolore lorem velit amet accusam. Consetetur labore dolore voluptua wisi invidunt ut eleifend et diam labore diam liber.