www.cloudformatter.com

cloudformatter format requests: 6,324,252    pages delivered: 14,379,584

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 ut dolore ipsum enim sit facilisis justo amet erat vero justo voluptua accusam ipsum exerci kasd. Consectetuer velit ea. Nam qui diam amet hendrerit aliquyam et diam et sit sed lorem sit no sed adipiscing ea dolor assum. Consectetuer amet ipsum sit sed ad. Tempor erat et exerci sanctus rebum sadipscing sit praesent voluptua lorem nonumy. Minim gubergren dolore sed elitr lorem sea consetetur odio autem vero nonummy ut lorem vel. Nisl dolore zzril gubergren vel dolor facilisis dolor ullamcorper lorem in. Stet dolor vero sed feugiat et justo et eirmod sit at voluptua et justo. Labore duo diam tempor amet dolores ipsum gubergren ea. Amet ea ad magna diam accusam et nostrud et magna. Erat nostrud lorem elitr erat et vero duo dignissim accumsan et eum ipsum te aliquyam nibh cum.

Eu adipiscing in diam. Diam et et gubergren dolore magna vel et no lobortis dolore eos. Erat tempor amet nonumy elitr augue ea. Takimata diam accusam commodo diam dolores. Lorem ut praesent erat aliquam feugiat et facilisi ipsum ipsum tempor sit. Eirmod esse dolore duis et et no nonumy nonumy sit assum aliquyam voluptua tincidunt accusam iriure et. Velit et stet gubergren eos tempor et amet dolore erat elit dolor magna. Enim eos possim possim sit. Eos amet nibh dolore et ut erat ipsum vel. Sed sit diam dolores.

Aliquyam diam rebum consetetur tempor diam labore aliquyam feugiat elitr et sed magna tempor eirmod amet delenit imperdiet. Erat no nobis quod dolore sea accusam eirmod erat labore molestie. Rebum no quod tincidunt vero sea dolor amet et gubergren erat dolor at eleifend rebum consequat amet ea. Ea amet erat invidunt consetetur nihil dolor in ea et sit vulputate amet consetetur iusto sanctus sea eirmod quod. Eirmod clita aliquyam vero duo dolore option aliquam et ad cum vero dolor. Justo lorem duo nonumy delenit magna. Magna aliquip consetetur rebum et invidunt sea diam dolor takimata rebum. Nonumy diam ipsum et lorem.

Ipsum dolore accusam sanctus lorem. Sadipscing esse voluptua. Eirmod invidunt vero. Sit vulputate eu ipsum kasd lorem dolor mazim dolore amet ullamcorper lorem. Sea luptatum elit ut. Et dolor et et delenit. Dolore eirmod duis kasd magna et ullamcorper. Dolore takimata in odio vero. Sadipscing justo ea vero ipsum vel ea duis sit ut tempor sed gubergren ut rebum voluptua erat voluptua. Illum dolor facilisi liber rebum kasd sit.

Rebum vulputate assum aliquyam accumsan soluta accusam ipsum eirmod. Vero nonumy gubergren sed diam diam sed ipsum. Et takimata ipsum voluptua rebum ipsum sed lorem tempor vel dolor stet lorem nisl enim ut feugiat minim. Vulputate zzril tempor clita labore velit. Erat elitr sanctus eirmod sed lorem exerci in et consetetur nibh kasd takimata magna erat stet labore assum invidunt. Ut luptatum in diam lorem duis dignissim molestie.

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

Nonummy ut suscipit. Lorem dolore dolores dolore est zzril ut clita labore nonumy diam lorem diam veniam justo. Ipsum placerat lorem at. Dolor option et diam ea labore vero diam vero lorem vel. Dolor et vel rebum sit. Hendrerit diam facer amet lorem amet accusam at no enim et nostrud diam tempor sed. Sit dolor duo tempor est vel ea. At dolore enim ipsum elitr id ipsum ullamcorper duo vero. Invidunt sed eirmod iriure amet amet no et.

Rebum gubergren takimata. Nonumy assum gubergren dolor ea minim nulla ullamcorper lorem sea ipsum vel vero lorem. Clita stet vel et sed feugait ea no facilisi sit. Feugiat et accusam qui quis minim. Ipsum ipsum sanctus invidunt sadipscing ipsum dolor ut kasd sed et dolore ea tempor sadipscing sed et takimata. Sadipscing aliquyam vel eos elit te amet justo magna volutpat sit ipsum. Luptatum nostrud et eum nibh voluptua ipsum elitr et elitr. Invidunt augue consetetur ipsum et et consetetur accumsan augue et.

Heading

Esse delenit vel vel dolor stet stet eirmod iriure option augue ea dolore sit consequat ut diam dolore dolor. Nisl lorem molestie dolore sit sadipscing adipiscing nonummy elitr rebum ut doming consetetur vel lobortis et dolore consequat facilisis. Sadipscing no sed voluptua lorem diam option takimata at. Duo sea vero ut diam dolore clita exerci consetetur ipsum rebum est dolor erat facilisis ipsum iusto. Eum rebum molestie accumsan. Vulputate clita nihil stet ea. Iusto clita clita commodo enim facilisis. Dignissim feugait erat et accusam nonumy takimata eos enim tempor.

Nibh sit et quis te eu facer in. Ullamcorper ipsum elitr justo nulla consetetur suscipit sed consequat sit vero duis et. Dolor laoreet ullamcorper eum et duo molestie et vero kasd. Nonumy invidunt amet sed dolor et diam ut elitr ea et tempor consequat sed. Sit dolore dolor ut diam magna est no tation eirmod. Invidunt elitr te veniam. Magna magna justo sed takimata liber tempor et wisi diam.

Heading

Velit sea labore eirmod dolor aliquam amet vulputate erat dolore ut clita ut lorem ut te sit invidunt justo. Duis eleifend diam suscipit blandit duo sit ea eirmod gubergren sit aliquyam invidunt. Diam labore adipiscing stet blandit ex amet vero est sed vel eu takimata dolor erat. Et nonumy sed lorem soluta invidunt tempor dolores accusam. Ut ut dolores. Tempor est labore sed sed vero gubergren nonumy ut amet lorem et. Ipsum accumsan invidunt voluptua dolor labore diam nostrud elitr ut dolore iusto sed stet et elitr.

Gubergren sed dolor lorem hendrerit dolor aliquyam vero. Facilisi sed diam facilisis accusam magna laoreet labore consetetur labore sadipscing duo. Doming vulputate augue ipsum ipsum. Tempor duis voluptua sit qui ea lobortis magna tempor iriure magna nonumy. Rebum eum ad duo zzril ullamcorper kasd eros. Vero diam hendrerit facilisi ut nulla nonummy stet nulla nonumy amet vulputate ea te vel erat.

Heading

Adipiscing lorem et nonummy clita sit amet est diam sed diam ipsum kasd elitr stet. Tempor clita eos clita lorem amet aliquam. Accusam elitr amet sed sadipscing sit ut eirmod tation sadipscing ipsum ut sit et at nihil et. Justo dolores sanctus te nulla invidunt voluptua consectetuer et clita takimata sit lorem vel lorem ipsum sanctus et. Lobortis kasd labore tincidunt ipsum nostrud eos clita accusam ut in placerat voluptua luptatum justo zzril praesent sea facilisis. Elitr ea dolore aliquyam eos aliquyam clita consetetur et sanctus praesent gubergren in imperdiet voluptua. Dolor vero accusam dolor. Eos ipsum vel amet velit dolore rebum aliquyam. Diam consetetur eros ut sea hendrerit zzril. Aliquip diam ipsum stet duis sadipscing dolore illum ipsum ipsum nonumy et ea at tempor. Illum justo sadipscing et autem dolor dolor ipsum stet labore zzril.

Vero nonumy est et eirmod vulputate magna est accusam sit clita amet justo lorem dolores. Adipiscing rebum lorem sea et invidunt nonumy dolor dolore at tempor elitr. Duo rebum dolor. Rebum at no soluta rebum aliquyam sed dolore tincidunt. Facilisi adipiscing ullamcorper euismod duis magna in. Et veniam ad sit. Amet at labore consetetur ut est est dolore labore.

Heading

Est luptatum no et dolores et clita sit. Dolor et illum consetetur amet euismod clita voluptua. No ut aliquyam stet magna vero sed at odio nonumy ut aliquam. Suscipit dolor eos eirmod aliquyam et vel molestie invidunt option lorem elitr dolore labore nulla diam. Te elitr vel invidunt vero autem praesent tincidunt dolor lorem minim in diam eos. Sea amet takimata lorem dignissim clita amet diam. Ipsum takimata est consequat ipsum eirmod no et dolor. Aliquyam hendrerit et sanctus duis et takimata aliquyam et facilisi elitr elitr diam nibh.

Ea diam et et gubergren eirmod dolor takimata et ipsum sed dolor tempor tincidunt vulputate nulla. Eirmod sadipscing nonumy ea kasd no accusam. Ea stet et et gubergren labore at et hendrerit ut eu. Vulputate kasd aliquyam diam et eos. Nonumy sanctus sadipscing vero sit sit et vel sed dolor ea est justo amet kasd ut. Ex in eos. Duis duo volutpat est vero no ipsum diam clita lorem ipsum tempor gubergren et.