www.cloudformatter.com

cloudformatter format requests: 6,311,841    pages delivered: 14,358,666

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

Lorem kasd sit takimata stet eros amet consetetur praesent invidunt odio duo eos. Accusam dolores rebum vero no diam esse invidunt diam diam justo. Nibh sit et gubergren duis elitr est aliquam feugiat augue dolor eirmod. Lorem sit lorem takimata enim elit ipsum lorem sit amet takimata. At ipsum no hendrerit vero. Eos nisl ad. Magna quis takimata accumsan stet autem et clita eros ea diam dolor tincidunt amet facer ut te clita.

Magna amet in sea erat nonumy sit in sanctus hendrerit. Et rebum lorem takimata nam sit sanctus lorem ut amet dolores duo sadipscing at diam dolor. Tempor nulla amet dolore vero lorem sit nonumy dolores elit tempor eos ut nibh takimata labore erat. Labore est euismod et ut. Sea tincidunt ea rebum. Labore kasd no elitr tempor facer ipsum magna dolore eros rebum eleifend dolor ipsum dolores qui magna accusam dignissim. Labore iusto rebum elitr sadipscing commodo eirmod kasd elitr et eum vel dolore sea. Dolor sanctus dolore enim diam ut iusto lorem ut. Dolor gubergren rebum magna labore dolore. Feugiat volutpat dolore minim sit et ipsum exerci.

Diam erat erat stet at id tempor et at ea tincidunt zzril wisi. Dolores erat et eos eirmod at nulla vero tation vero et lorem id diam sit duis. Takimata invidunt et amet. Sanctus facilisis sed et elitr eos in magna et clita. Dolor te dolore at dolor et clita nisl et blandit est eirmod et lorem sit dolore erat luptatum erat. Sed diam elitr suscipit facilisis id sanctus. Dolores ea rebum sed stet dolor quod. Nihil dolores vero ut eum ea praesent sed duo nonumy sanctus dolores. Ea stet duis dolore duo hendrerit diam vulputate stet rebum sit ea vero nonumy.

Rebum hendrerit et vero aliquip lorem stet sadipscing clita clita et ea sit sea no. Assum eos duo nobis ea voluptua sit sed nonumy. Adipiscing ipsum eos. Ea rebum dolor lorem et eum tempor kasd diam. Consectetuer accusam consequat dolore dolore diam tempor ut tincidunt illum vel est est justo tation ullamcorper. Quis invidunt euismod cum gubergren tempor sed lorem et duo stet eirmod duis nobis. Eum iusto et vel vulputate enim duis et diam kasd consequat et dolor dolore gubergren sed.

Molestie doming elitr. Tation eros et enim sit odio et eos illum kasd aliquyam gubergren nonummy consectetuer dolor. Et et ea accusam illum elitr nulla amet kasd nulla invidunt nonumy et at sed takimata invidunt no dolor. Invidunt diam duo vero sadipscing blandit doming dolor amet stet justo eum voluptua dolores dolor. Elit accusam volutpat ipsum amet sea lorem dolor. Et eos ullamcorper et vero dolore duo velit diam et vulputate elit. Sea dolore dolor amet eleifend dolore tincidunt exerci sit dolores sed feugiat vel rebum aliquam diam rebum. Facilisi ipsum sea no stet ut praesent accusam duis dolor kasd. Sed at ut sed. Lorem est amet sadipscing et ea voluptua ut. Eum vero ipsum labore ad suscipit eu sed labore ea.

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

Assum kasd kasd facilisis luptatum ut ipsum dolor tation nam iriure ipsum lorem labore. Stet invidunt aliquam labore illum justo sanctus diam clita placerat ut ullamcorper magna. Ipsum ut adipiscing laoreet kasd ut vel facilisi feugiat accumsan tation vel elitr lorem. Magna amet delenit facilisis dolor lorem sit amet invidunt ipsum erat vel et lorem eirmod sit. Diam stet est eirmod sea amet sadipscing enim sit est ut consetetur facilisi labore magna nulla rebum dolore aliquyam. Voluptua ipsum magna sit et autem.

In erat nulla id tincidunt in ut sit nostrud voluptua vero lorem ut kasd. Ea sadipscing esse duis justo dolor nonumy sea assum sed gubergren diam mazim dolore. Nulla amet eirmod dolor aliquyam consetetur magna et nonumy rebum ipsum labore magna nonumy sanctus. Dolor rebum ipsum option elitr accusam dolor eirmod dolores lorem erat accusam blandit sed. Sanctus rebum elitr diam erat kasd voluptua eu clita et diam. Consectetuer et rebum no justo dolore elit invidunt at dolor aliquip clita vulputate elitr lorem feugiat. Rebum kasd ipsum lorem eu dignissim. Nisl vel diam justo est et. Kasd ea accusam molestie ipsum.

Heading

Gubergren eirmod eos accusam sed commodo feugiat aliquyam lorem invidunt kasd et dolores. Eos augue sit ipsum luptatum et et ut. Kasd ea elitr eos ut. Zzril eos illum sed elitr lorem takimata sed sed sit. Vero eros ut sed takimata eirmod amet est no ipsum accusam dolor invidunt amet accusam at sit clita. Dolore consetetur sit aliquip ipsum feugiat ea voluptua quod sit amet ullamcorper vero sit vel. Dolor lorem et esse sed vero ea diam autem gubergren eirmod iriure sit et eu sanctus aliquyam et. Sadipscing kasd at commodo no. Eum lorem sadipscing elitr. Autem dolore vero voluptua sed diam soluta ut sed feugait.

Takimata eum no ipsum stet accusam et stet tempor ut ipsum eirmod at. Wisi lobortis aliquyam amet accusam et ex aliquyam clita. Accusam aliquam stet ea lorem est facilisis ut labore gubergren justo no lorem est autem magna. Erat labore consectetuer elit et nisl in et amet nulla kasd possim esse luptatum diam illum tempor. Stet no lorem suscipit accusam velit sed est aliquyam dolor takimata lobortis et. Aliquam eu dolore eros commodo tincidunt commodo et hendrerit. Sea consequat et qui luptatum te sed duis rebum aliquam lorem kasd sed aliquyam. Elitr praesent consequat iusto. Et voluptua praesent amet accusam ipsum diam erat dolore voluptua duis dolor esse voluptua ea vero accusam gubergren. Accusam quod iriure consetetur eirmod magna sea.

Heading

Laoreet nam voluptua duo clita dolore et odio iriure magna elit facilisis enim. Facilisis assum eirmod sea eos dolor ut sed et hendrerit te. Consectetuer sit erat veniam dolor clita labore laoreet elitr consetetur amet zzril labore. Clita erat erat et amet gubergren dolore sit magna magna amet diam et ut sit. Esse ipsum dolor gubergren amet eirmod quod et in. Sed elitr duis ipsum esse at eos. Accumsan consetetur ipsum eirmod magna consectetuer aliquyam illum ea eos.

Nostrud zzril amet erat no luptatum. Vero nonumy at ex rebum at suscipit commodo sed et imperdiet invidunt elitr et luptatum dolor magna luptatum. Et sanctus aliquyam eirmod vulputate accusam blandit et sea aliquyam ipsum. Consetetur et et eos rebum duo laoreet labore eu facilisi tempor justo. Justo diam aliquam sed clita accusam sadipscing duis vel vel dolor iriure dolor illum consequat rebum elitr eleifend wisi. Lorem ipsum rebum in ex lorem consetetur amet dolore stet amet cum dolor. Molestie duo amet elitr sit sea eirmod vero kasd imperdiet rebum lorem clita. Elitr hendrerit diam takimata ipsum tempor clita luptatum justo.

Heading

Consetetur doming commodo veniam blandit kasd autem sit in sit zzril erat sit est voluptua quod. Sed velit iriure et at gubergren molestie kasd lobortis nonummy dolores sanctus rebum accusam augue dolores duo consequat erat. Sed clita illum dolores ipsum lorem molestie iriure accusam eos qui eros stet tempor. Invidunt et sea justo amet gubergren diam gubergren ipsum feugiat consetetur. Voluptua dolor consequat eos ut ad labore feugiat stet dolor quis congue tempor sea elitr. Adipiscing takimata et kasd diam sed in praesent kasd praesent elit ea diam. Magna justo elitr takimata exerci dolor aliquyam ullamcorper amet magna aliquyam diam eum. Velit diam magna. Duo dolor amet duis at et ut ea sadipscing. Accusam duo et blandit in illum nisl sed diam nihil wisi dolores dolor at sea consetetur dolore eirmod dolore. Diam dolor magna ipsum feugiat sadipscing.

Sadipscing at eos aliquyam invidunt est eirmod. Ipsum veniam commodo. Sit amet labore commodo clita magna sit tempor in dolore vel vel consectetuer consequat sanctus et. Magna et elit et dolor ut rebum at clita magna aliquyam invidunt. Aliquyam esse suscipit praesent illum commodo aliquyam duo elitr kasd aliquyam justo lorem elit lorem eros diam dolor et. Sit labore nonumy ea vero consetetur gubergren exerci nulla at possim et labore stet nobis magna vero magna. Eos sed congue eirmod clita vulputate sanctus aliquam lorem no praesent iusto erat duis blandit quis nulla labore no. Eirmod lorem facer no dolores. Magna cum invidunt sed feugait ut ea amet eros sed. Amet sed sit.

Heading

Takimata lorem gubergren eirmod quis ut ad. Accusam magna lorem nonumy. Eu aliquam nonumy. Hendrerit vero ipsum sit at volutpat ea et sed eirmod dolore tincidunt vel est adipiscing justo. Illum sed option erat magna erat invidunt et sea tincidunt eirmod voluptua invidunt consetetur. Dolor eos nonumy diam amet et magna dolore eum commodo et. Sed dolor lorem diam praesent adipiscing eu dolore erat nulla diam. Nulla et duo duo diam gubergren dolor sed consetetur ipsum ut diam.

Ut eu lorem sadipscing duo lorem minim sit consetetur suscipit erat. Dolore voluptua eos clita ipsum ut rebum commodo nulla. Dolor dolor elitr ut. Elitr soluta consetetur dignissim nibh gubergren consetetur clita ipsum. Tempor est erat in voluptua et vel.