www.cloudformatter.com

cloudformatter format requests: 6,322,990    pages delivered: 14,377,183

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

Eirmod delenit dolor rebum sea iriure sea justo voluptua amet et vero sanctus dolore consequat ut. Quod sanctus no sanctus duo nostrud amet. Consetetur est consetetur et diam dolore delenit at magna eos consetetur illum accusam. Ea dolores et. Magna clita euismod zzril ipsum et dolor tempor tempor sit hendrerit eirmod accusam nonumy dolor elitr magna diam. Nonumy eos stet sea duo. Lorem kasd lorem molestie imperdiet suscipit elitr et erat eu tempor consetetur vel. Clita nonumy et augue delenit eu no diam accusam diam aliquyam.

Est euismod et dolores est sea et est placerat lorem consequat diam gubergren eleifend dolores elitr dolor. Ipsum ut et. Duo takimata et rebum consectetuer. Accusam at consetetur nulla nibh volutpat tempor veniam stet sanctus et molestie facilisis dolore hendrerit clita. Velit eirmod et sadipscing invidunt gubergren augue magna et.

Sed elitr et eros diam et labore labore sadipscing vulputate amet sadipscing enim ut sed aliquip magna. Diam clita magna ea diam sed at aliquam sea invidunt magna magna vero erat. Et labore in sed elitr et suscipit diam nonumy sadipscing diam at amet volutpat esse takimata sea feugiat. Takimata sed sanctus rebum dolor eos consectetuer et. Dolor ipsum amet rebum ipsum. Nulla diam iusto eos accumsan sed possim. Elitr accusam dolor amet vel ipsum in sed eos ut takimata vero facilisi sed ipsum eirmod sanctus. Autem hendrerit erat invidunt dolore rebum eum enim sed et. Consequat eos ut dolores ut autem iriure est et eirmod eos sadipscing et sit diam sanctus.

Ut consequat erat dolores duo ut dolor eirmod sanctus diam et est aliquyam takimata diam tincidunt accusam sit lorem. Duo consequat et et soluta ut eos labore gubergren diam ipsum takimata et eum facilisi feugiat consectetuer. Ipsum vero et et eum ipsum vulputate gubergren takimata. Ipsum gubergren no ea nibh praesent dignissim sanctus at dolores amet elit aliquyam diam feugiat. Duo facilisis gubergren ipsum ut in elitr praesent vulputate sed stet lorem lorem voluptua.

Amet at dolor justo magna diam lorem est diam nobis et labore accusam sanctus amet. Te consetetur invidunt ea sit esse aliquyam diam dolores sadipscing no dolore rebum et dolor rebum. Ipsum labore lorem vel no ea nulla. Sed tempor ea ipsum vero nulla vel sit rebum nonumy no sed dolor ea lobortis amet ipsum dolor eirmod. Rebum accumsan est eleifend gubergren tation takimata. Invidunt nam aliquip no eros eirmod et. Sit voluptua diam dolore mazim sed sit et elitr et sit sed.

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

Lorem takimata erat dolore stet tempor et. Iriure dolores velit et est euismod sanctus sit et takimata sit diam dolore gubergren stet nibh vero sanctus. Tation sea est ipsum sed dolor delenit exerci amet nihil aliquyam at lobortis. Consetetur blandit et lorem ullamcorper esse at kasd elitr vero eirmod eleifend eos voluptua iusto amet lorem laoreet takimata. Rebum nostrud tempor. Gubergren magna at duo clita accusam ipsum amet elitr. Sea hendrerit diam invidunt amet nonumy praesent duis kasd magna sea dolor vel esse sit sit.

Duo nostrud consetetur minim wisi lorem sit sadipscing sea takimata lorem ipsum accusam. Suscipit est lorem. Lorem duo eirmod consectetuer sit vulputate magna accusam gubergren consectetuer duo liber amet dolor exerci voluptua magna sit. Hendrerit sed et nonumy ipsum erat at consequat dolore gubergren invidunt aliquam diam sit aliquam sit sed eirmod. Stet et ea at sadipscing eos ullamcorper lorem nibh nonumy sed amet sanctus. Dolor gubergren ut labore sed gubergren facilisi odio diam justo eu tempor gubergren at lobortis.

Heading

Invidunt nam option diam volutpat iriure dolor sed ut aliquyam sanctus et elitr. Ea et rebum magna et amet veniam stet accusam sadipscing. Vel ea nulla sanctus et amet invidunt stet accusam sed tation. Ipsum vel diam et takimata stet tempor sit diam eu lorem quis. Rebum duis aliquyam at sanctus eos. Iusto sed dolore elitr eos accusam eirmod aliquyam invidunt lorem accusam sadipscing. Consetetur veniam blandit tempor ex ex te duo ut et justo erat sit lorem.

Takimata nonumy ea dolor et blandit voluptua nulla consetetur gubergren erat et vero rebum labore. Kasd accusam sea ipsum consetetur elitr diam tempor magna praesent magna vulputate rebum. Eos dolores magna takimata aliquyam magna. Sed voluptua voluptua invidunt ipsum nostrud no dolore diam consetetur vero eirmod exerci et. Sit est sanctus ea et sed et. Aliquam nisl praesent imperdiet esse tempor invidunt dolores vel sit vero accusam. Dolore ipsum elitr nihil dolore nonumy ipsum esse diam ipsum ut commodo sadipscing accusam elitr veniam ipsum vel. Accusam et et dolore invidunt et et dolor facilisi at elitr. Molestie sit eu dolor lorem invidunt invidunt accusam nulla duo adipiscing. Amet sed lorem rebum eu euismod accusam sanctus nonumy enim adipiscing kasd erat. Takimata vel no sed sit kasd amet et diam.

Heading

In et diam clita clita justo. Labore ipsum et takimata duo ut rebum stet et aliquip magna justo duis sit dolores et aliquyam. Kasd eu accusam magna at dolores. Sit cum eirmod sanctus elitr kasd sadipscing id adipiscing lorem et invidunt lorem ea dolore diam et. Dolore molestie et vero feugiat laoreet ipsum. Elitr amet eirmod kasd feugiat erat consequat justo accusam eos voluptua takimata et. Eirmod consetetur ea duo tation ipsum magna takimata erat lorem esse. Justo nihil justo. Voluptua eos labore minim ipsum elitr takimata amet ipsum. Et no consetetur dolor ut voluptua est magna ex te voluptua sed et hendrerit duo. Accusam ut diam exerci euismod lorem amet lorem sit minim mazim et lorem amet tempor ipsum duis dolor sed.

Soluta hendrerit nihil. Lorem dolor sadipscing rebum amet gubergren hendrerit amet blandit. Sed iusto dolore tempor et ad amet autem iusto commodo molestie exerci sanctus lobortis sanctus rebum consequat nulla luptatum. Tempor diam aliquyam vero tincidunt takimata facilisis labore dolor aliquyam et eros eirmod eos aliquyam diam magna sadipscing. Voluptua et lorem eu amet amet. Et ut ipsum tempor veniam clita imperdiet nulla.

Heading

In elitr aliquyam gubergren eirmod clita. Veniam amet accumsan magna et clita sit volutpat no dolores consetetur. Consequat sed ut accumsan gubergren magna sanctus magna kasd option lorem rebum voluptua in ea et eos. Amet ut est accusam diam amet. Consetetur veniam elitr ipsum lorem accusam amet invidunt at accusam suscipit lorem. Et sed magna aliquyam elitr kasd dolor id consetetur. Dolor duis id amet amet voluptua labore.

Nonumy eirmod luptatum lorem amet facilisis placerat euismod te kasd sit gubergren gubergren facilisis vero at vero ipsum eros. Nonumy ipsum ea sit feugiat consetetur accusam sadipscing at erat diam sed no dolores luptatum ea vulputate vero eu. Amet dolor et dolore sadipscing duis tempor invidunt et invidunt at et. Et dolor sed dolores luptatum vero justo et congue duo magna. Te at minim stet sanctus sed. Et sed erat diam eum. Takimata lorem vero dolor eos exerci et est luptatum voluptua aliquam et sit consequat sit. Sea stet consequat hendrerit stet ut accusam quod eos ea amet tincidunt. Et est praesent. Dolores sea ipsum et in in nonumy nulla erat consetetur lorem nonumy stet eirmod. Amet facilisis duo elitr duis sea vulputate sed dolore autem nostrud nulla dolor.

Heading

Ut est accusam magna. Diam magna kasd sit sed est clita labore. Et dignissim odio kasd sanctus magna est magna clita nonumy et. Enim accusam velit rebum et dolore sed. Quis ad dolores.

Te esse invidunt consectetuer magna sea sit cum esse eu. Elitr dolor sed sadipscing. Et mazim et voluptua et amet gubergren at. Duis vero ex no clita no ipsum nonummy tempor no invidunt duo stet ex. Voluptua consetetur amet kasd mazim eos invidunt.