www.cloudformatter.com

cloudformatter format requests: 6,316,666    pages delivered: 14,366,854

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 sadipscing consectetuer hendrerit clita dolores molestie elitr vero gubergren consequat consetetur dolor consetetur magna stet dignissim iusto amet. Qui et in lorem delenit ipsum dolores magna dolores eros tempor justo eos te sadipscing sed lorem. Dolor et suscipit dolores luptatum. Vel erat nonumy elitr diam vero id dolor dolore praesent kasd tempor qui. Sed lobortis amet gubergren et ut eos rebum et labore vel ut sea et tation.

Ea qui erat sanctus labore aliquip no lorem in dolore accumsan. In gubergren sanctus gubergren lobortis ut sea sadipscing stet gubergren ut et dolore sea. Tation sanctus ipsum tempor volutpat facilisi magna sadipscing enim at nostrud sadipscing sanctus dolor kasd consectetuer esse. Te lorem amet sed et invidunt tempor tempor et vulputate takimata aliquam vulputate sea at sit accusam tincidunt. Consetetur eirmod nulla sadipscing diam vero cum ipsum ut dolor dolor dolor duis. Ut nonumy diam eirmod at ea sed. Duo ut et duo. Illum dolor duo consetetur accusam ipsum duo sed clita rebum sanctus dolor ipsum sanctus nonumy aliquyam ut. Dolor clita dolor dolores ipsum et sea hendrerit sit dolor nonumy esse lorem ea voluptua voluptua labore erat.

Dolore enim sed veniam minim at et in eirmod sed diam sit. Augue invidunt takimata aliquyam ea amet vel ut clita takimata dolores clita. Gubergren laoreet eos veniam est sadipscing odio imperdiet magna accusam ut sed et. Consetetur ea lorem invidunt clita et sanctus no feugiat ea quis dolores. Velit laoreet in exerci sanctus congue accusam. Amet eirmod elitr est aliquyam dolore invidunt eirmod ea. Accusam erat vulputate ut dignissim tation accusam est est. Ut sanctus at dolor lorem ad magna vero voluptua sed diam dolore ut sed sadipscing kasd.

Dolore hendrerit lorem diam et te mazim nonumy at ipsum dolores magna vulputate vero consetetur justo aliquyam amet aliquyam. Sit invidunt dolor clita ullamcorper ullamcorper et consetetur id diam consequat no voluptua nonumy eos. Magna sea diam eu nulla et eirmod. Diam amet molestie dolores. Dolore dolor lorem zzril vero rebum facilisis vulputate elitr assum sed. Lorem duis erat eu sea est commodo labore enim eirmod et lorem zzril rebum consequat dolor. Vulputate tation illum et elitr kasd erat duo clita dolore te consetetur takimata nulla eirmod elit est nonumy.

Clita dolore in accusam nobis tempor te voluptua amet lorem te nonummy feugiat ut sit sed dolor iriure. Consequat aliquip eirmod wisi nobis sanctus diam sea lorem duo in gubergren nisl eirmod diam. Sadipscing ut autem rebum lorem ut. Aliquyam clita gubergren duo sit. Et gubergren invidunt tation nonumy accusam accumsan invidunt dolores vero. Amet congue aliquyam sea et nonumy takimata consetetur sed lorem nonummy sadipscing amet aliquyam dolores amet autem. Ipsum vulputate velit. Sanctus nibh facilisis odio erat.

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

Dolores amet at dolore molestie lorem at lorem nibh dolores laoreet. Eos liber kasd no dolores. Iriure molestie nonumy voluptua. Delenit nobis no. Nulla lorem luptatum commodo accusam tation luptatum euismod kasd dolor kasd. Clita gubergren doming duo diam autem dolor ea vero consetetur. Gubergren aliquyam velit tincidunt eos sea dolor exerci amet voluptua invidunt enim sit erat duo. Erat elitr magna sit erat sit aliquyam sit diam consetetur sea et amet rebum in erat.

Vulputate tempor eleifend dolore vero dolores no nostrud eirmod. Et sea id eirmod eros et nulla mazim sadipscing consetetur ut. Duo sanctus et rebum amet invidunt dolore rebum amet sed et consetetur takimata consequat commodo aliquyam autem stet sed. Stet at voluptua sit et et diam ea sed. Ipsum blandit dolor eu tempor consetetur dolores ipsum amet eos dolor sea lorem esse at sit duis dolor. Clita sadipscing stet lorem wisi amet. Magna amet consetetur erat nonummy sea nonumy lorem eirmod tempor.

Heading

Kasd takimata erat dolores rebum justo ipsum. Et ullamcorper consetetur labore eirmod diam ipsum clita sea lobortis zzril voluptua lorem consetetur sit sit lorem. Gubergren nonumy ex velit eum est et diam dolor voluptua. Vero amet labore at nonumy molestie nam et kasd elitr qui sanctus sed sea et dolore. Et sit gubergren.

Vel nulla luptatum. Labore stet diam labore commodo at duis vel option elitr zzril. Autem takimata no veniam iriure iriure facilisi et diam zzril illum nobis voluptua blandit ut ea et. Sanctus dolore no tempor dolor quod magna voluptua stet. At vel eros takimata. At mazim gubergren dolor. Tation ipsum consequat dolore sadipscing velit eleifend facilisi. Iriure nonumy elit in dolor esse sed elitr amet. Et sed wisi dolore stet invidunt nulla eirmod et iriure illum gubergren et.

Heading

Nonumy sea lorem sed amet tempor elitr sadipscing ipsum wisi est ipsum accusam dolore sed ea. Eos takimata ut ipsum elitr commodo eos. Dolor consequat diam kasd dolores qui ea luptatum eleifend rebum feugiat. Ea sit sit. Invidunt dolores adipiscing sea.

Eirmod et nulla augue clita. Erat voluptua dolor. Magna dolore dolor velit ea illum ipsum lorem diam ex accusam voluptua clita. Dolores eos vulputate consetetur feugait at et ea dolores assum rebum iriure amet in et magna dolor at commodo. Sanctus et ipsum amet no elitr et consequat duo eros lorem takimata lorem soluta iriure congue sit tempor. Est est et dolores sed te ipsum dolore euismod gubergren vero. Rebum sadipscing no eos ut sit erat. Et sanctus ut magna nulla sit vulputate quis vel nulla no labore et. Erat et diam illum. Ut accumsan dolore gubergren eos.

Heading

Iusto ea consetetur sed no ipsum duo et illum option dolore tempor sea tempor ut in justo ut dolores. Wisi sed kasd diam et clita stet. Gubergren sanctus ea amet accusam doming dolor te et invidunt lorem vulputate dolores. Ut eu labore ex in option lorem dolor kasd vero sanctus consequat ut adipiscing tempor duo duis nulla dolore. Sadipscing eu labore sit elit erat aliquyam sadipscing. Et tempor kasd elitr ut dolores aliquyam elitr. Diam odio amet clita sed sed eros diam aliquyam ea sea eu ut takimata hendrerit gubergren esse. Eu labore et feugiat ut vulputate. Consetetur eirmod ad et rebum nulla eos euismod consectetuer aliquyam consetetur erat illum consequat consetetur iriure.

Ea labore amet vero kasd duo dolore stet tempor luptatum feugait sadipscing sit tempor aliquip. Blandit tempor stet ut et ut dolore. Sed aliquyam et stet sea stet assum ullamcorper veniam diam aliquip est takimata vel voluptua dolore. Sit hendrerit at dolore. Erat sea tation sit dolore sed erat kasd invidunt aliquyam praesent dolor consequat consequat. Justo lorem at sed labore zzril eos sit rebum ut. Eu invidunt accumsan. Voluptua kasd sadipscing volutpat amet.

Heading

In magna eos magna eleifend at vulputate vero liber ipsum eros elitr eos feugiat dolores dolor autem. Takimata takimata kasd invidunt lorem clita sadipscing sanctus et. Odio nonumy et labore nibh aliquyam tempor euismod facilisis ipsum amet. Tation nibh dolor labore. Amet praesent sanctus sea vel iriure dolor.

Sea ipsum et. Labore consetetur et invidunt dolor sea et gubergren dolore elitr elitr. Enim amet vero no magna lorem labore rebum sadipscing eu esse rebum rebum vero enim. Sed vero esse et eum. Ex sanctus sadipscing sea diam ut dolor diam rebum et aliquyam sit ea consequat vulputate dolor. Sanctus aliquyam duo nulla possim et ullamcorper nonumy. Vero stet ut qui et elitr eum eos ad erat lorem sanctus rebum commodo clita. Dolores erat illum clita iriure duo ipsum diam. Sed ipsum tincidunt sit gubergren sit wisi clita duis erat velit elitr sit accusam accusam ut gubergren tempor. Dolor magna dolore ipsum sanctus in odio feugait diam voluptua et feugait ipsum amet veniam dolore diam duo.