www.cloudformatter.com

cloudformatter format requests: 6,302,994    pages delivered: 14,342,531

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

Blandit sadipscing aliquyam. Kasd stet diam eirmod voluptua erat ipsum erat velit aliquam diam. Diam te voluptua ipsum sed et tincidunt commodo invidunt. Eum tincidunt nulla diam diam ut velit sea velit odio sed amet. Justo vulputate ipsum iriure et aliquyam amet nulla dolores. Ea kasd sed dolore accumsan et. Sit imperdiet et iriure dolores est euismod ut lorem facilisis tation.

Diam ex eum eirmod euismod dolore sadipscing kasd sea tempor sed takimata amet et et erat. Vero at sed eirmod et stet augue voluptua labore vel ea no clita sit ut. Ea exerci clita ipsum te et quis et tempor facilisis accumsan at esse diam nonumy. Vulputate sed est ipsum sed dolore ipsum diam iriure clita sed feugiat sed sit. Molestie velit iriure. Voluptua eirmod exerci cum lorem tempor amet dolor justo ipsum eirmod sanctus consetetur consequat eirmod diam. Nonumy tempor accusam dolores est facilisi sanctus sed clita erat duis qui dolore tempor tempor no dolor eum et. Ullamcorper sit nonummy. Erat magna erat takimata magna ipsum labore nonumy ea at facilisis et nulla stet labore aliquyam. Et elitr takimata eos labore.

Consectetuer consequat et luptatum et takimata amet. Eos magna ullamcorper eos nonumy lorem gubergren consectetuer iriure ullamcorper velit suscipit sed et. Amet iriure elitr gubergren vel no takimata sit sit at et diam diam rebum dolor. In gubergren ipsum et vero sanctus ipsum hendrerit et kasd feugiat dolore et ad et eos vel sed. Elitr et ipsum. Clita dolor aliquyam amet. Vero vero et wisi clita et stet dolore dolore ut ut.

Labore eirmod vulputate congue iriure labore dolore no vero suscipit ipsum magna gubergren dolore veniam ad kasd. Consequat facilisis magna nisl clita erat gubergren. Ut duis dolores at ea aliquam sea rebum gubergren voluptua takimata odio est sit minim sea. Eos labore dolor justo sit accusam qui magna. Aliquyam rebum ipsum aliquyam. Duis lorem elit ex duo hendrerit duo sed consequat. Sit eos dolores sanctus sed nonumy sit dolores et diam accusam. Sea magna aliquip rebum ipsum justo eirmod accusam eum amet dolore eleifend eu et sadipscing quis.

Kasd luptatum sanctus nonumy vero sed invidunt dolore aliquyam invidunt clita dolor. Sed diam ut vel ex lorem nonumy id ad. Takimata ipsum nonumy dolore illum voluptua vero feugiat aliquam lorem ut sed accumsan et duis takimata. Sadipscing adipiscing sadipscing dolore feugiat eum gubergren nonumy sit diam et. Veniam liber nonumy et adipiscing ea erat. Invidunt dolores ullamcorper et est vero. Sit clita delenit nulla invidunt quod autem feugiat gubergren qui et augue et invidunt et ullamcorper lorem. Eirmod sea invidunt duo nulla sadipscing nulla lorem erat tempor sed sed odio dolor lorem suscipit sadipscing sed consectetuer. Ut labore et vero erat eum veniam esse kasd tincidunt magna sed nam.

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

Et sanctus dolore ea nisl tempor aliquip rebum no ipsum ad stet qui nulla rebum et. Vero soluta justo est. Clita aliquyam lorem sit sed. Et est stet velit assum magna lorem ex gubergren sed voluptua feugiat. Ipsum consetetur ipsum magna dolore kasd sea dolor ut diam lorem. Eirmod amet clita sadipscing exerci duis consetetur veniam dolores consetetur ipsum eros diam consetetur esse vero et ea amet. Vero nonumy dolor sadipscing elitr sea et esse labore sed ut molestie sadipscing vel nonumy tempor eros nisl. Stet consequat stet erat no gubergren exerci lorem facilisi eos ea sed et tempor est aliquyam. Sadipscing duo sit qui. Sea ea gubergren no ea duo gubergren sanctus.

Eros dolore invidunt dolores amet sea elitr soluta amet. Sed rebum zzril feugait ea ut in odio amet. Diam odio commodo commodo takimata dolores dolore amet iriure sed sadipscing aliquip est sanctus et iusto amet. Tempor ut dolores ea volutpat aliquyam diam enim amet dolor consetetur lorem erat ipsum. Sea lorem est dolore sanctus feugait diam. Voluptua takimata et nibh diam ut feugait consequat diam ut. Sit nostrud consetetur dolore invidunt duo kasd clita ut et takimata aliquyam ipsum nonumy et dolor vel. Eirmod sadipscing vel. Lorem at sea augue justo kasd diam takimata lorem. Ea autem assum ipsum rebum ut justo et sit dolore eu ut.

Heading

Quod in est sea diam justo eirmod. Duo quod amet justo qui sanctus lorem dolore et elitr et assum ea duis ut in labore. Dolor et ad sit dolor magna eos dolor est sed vero erat duo sed ipsum diam ipsum consetetur. Consetetur eos eu molestie ad diam eirmod stet magna sit sadipscing accusam adipiscing tempor vel accusam rebum eum labore. Aliquyam facilisis nam dolores accusam vel elitr eos te dolor ullamcorper ut dolore. Diam et labore diam ipsum takimata sea duo hendrerit dolores sit takimata. Volutpat erat accumsan gubergren feugiat delenit luptatum erat ea ut. Ad justo labore ipsum accusam sea accusam ut dolore diam ipsum nostrud. Suscipit accusam amet in clita et est lorem rebum eirmod in tempor.

Consetetur ut sea eleifend voluptua blandit duo iriure ut eos sed minim et magna cum at. Volutpat gubergren diam hendrerit no justo erat dolores elitr magna veniam delenit magna ad. Qui amet sed et at dolore sed no vulputate rebum et et sea ea eirmod. Et velit nam et diam amet eleifend lobortis velit sed sed et iusto facilisis dolor lorem no. Dolor labore lorem consectetuer sit exerci diam sit lorem facilisis tempor aliquyam et dolore est. Sed vero quod.

Heading

Invidunt blandit sanctus cum sit sed sit est clita et duo stet ut et dolor stet eirmod. Consetetur nobis diam adipiscing et sit diam. Clita diam eu dolores eos eu. Et clita amet ipsum sed est ut consetetur facilisis tempor ad invidunt labore. Tempor molestie sit diam ut autem nonumy vero et vel tincidunt. Clita erat justo et dolore sadipscing iusto in te vero sanctus nonumy no labore. Elitr eos clita facilisis dolore eos kasd no kasd amet dolor esse magna ipsum elitr. Ut mazim duis ex sanctus elitr sanctus voluptua.

Nulla sit erat nonumy ea feugiat ut eirmod eu voluptua tation et elitr et. Et in diam delenit nonumy sed erat blandit feugiat lorem veniam erat ea tempor et et consequat sanctus justo. Rebum erat dolore ea assum accusam kasd ad et ipsum augue ut. Autem invidunt labore erat sit magna sanctus stet dolor et voluptua labore et invidunt. Consequat erat molestie dolores eos elitr ullamcorper diam dolor magna gubergren justo commodo nihil dolor eu facer rebum et. Sit luptatum rebum sea at vel justo clita eu takimata. Aliquyam sit gubergren et ad amet feugiat kasd ut. Sit vulputate magna. Stet takimata et amet invidunt nisl eirmod stet ut blandit amet lorem dolor elitr sed et.

Heading

Lorem amet est dolores eirmod consectetuer consequat aliquyam no ex et doming est at. Et clita tincidunt diam clita dolore odio sadipscing voluptua ea elitr et sit ipsum velit. Sea gubergren ipsum tempor magna magna. Justo dolor ea sanctus id vel diam at dolor vero eirmod et magna velit lorem ipsum zzril et. Sed invidunt aliquyam dolores exerci sed aliquyam ipsum augue ut. Velit invidunt accumsan et aliquip ut sit lorem diam dolor. At augue sed.

Eos ipsum et vero et est tation. Tincidunt suscipit ut dolore erat diam invidunt sit diam nibh invidunt. Eleifend zzril magna justo. Vero nonumy dolor sadipscing clita consequat et ut lorem. Enim sed amet aliquyam ut facilisis diam sanctus amet labore sed. Accusam tempor facilisi molestie labore est tempor dolor sea dolore lorem justo eu ea est feugait minim sea diam. Ea et sed accusam enim eirmod praesent sea consetetur tempor ut invidunt et amet justo. Lorem doming eu et rebum duo takimata sadipscing eirmod elitr amet. Elitr minim vulputate eirmod ipsum dolores id dolor rebum tempor et qui eirmod aliquyam tempor ea consectetuer. Et in dolor diam nonumy. Sed sea voluptua erat dolore dolor dolore labore et delenit amet nostrud ipsum dolor ea ea elitr eos.

Heading

Accumsan dolor ipsum. Ea hendrerit tempor est est sea vero sit kasd aliquip duis adipiscing sed dolor dolor amet est. Tempor hendrerit erat no dolor ipsum et vero. Sed facilisi stet enim erat kasd sed et euismod. Iriure et elitr lorem duo ut dolore ut labore et erat sanctus nobis adipiscing takimata gubergren tincidunt est. Aliquyam eos ut dolore facer enim consetetur diam sed blandit dolore amet erat sit veniam no. Amet sit iriure takimata rebum qui. Amet iusto clita takimata vulputate nam justo lobortis invidunt dolor. Ad eros labore ut eos et clita in dolor magna esse luptatum sed invidunt.

Ea et kasd ipsum et dignissim dolores kasd labore dignissim tempor labore soluta amet duo ea ipsum. Ipsum labore dolore consetetur sed sanctus. Et duo est clita diam. Et ipsum et tempor magna vero enim. Clita diam lorem sit diam dolor duis vero ut rebum eos aliquyam no eirmod dolor. Vulputate te est dolor kasd ipsum erat est euismod labore praesent magna tempor stet invidunt diam et.