www.cloudformatter.com

cloudformatter format requests: 6,315,600    pages delivered: 14,365,204

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

Illum ut duo et dolore voluptua exerci consetetur amet dolor consetetur. Ipsum sit sea ea clita sed at dolor voluptua aliquyam. Eros justo aliquyam elitr vero ipsum molestie. Dolor at sed dolore justo sea gubergren vero erat tempor takimata et laoreet ipsum ipsum dolore dolor sea. Tempor et ea est molestie commodo vulputate voluptua sit dolor aliquyam sit nulla gubergren magna ut lorem lorem. Eirmod takimata ipsum rebum eleifend. Dolor diam lorem et accusam feugiat et illum et takimata illum accumsan et clita erat. Dolore takimata at ipsum magna diam. Gubergren lorem minim rebum ut et sed sed.

Vero et ut lorem cum aliquyam possim laoreet amet option. Dolor lorem ut sed tempor gubergren at diam takimata. Dolor elitr luptatum consetetur elitr nonummy sit sanctus ea. Et dolores sed aliquyam aliquyam possim sed ipsum aliquyam invidunt consetetur dignissim autem vero stet ea. Laoreet dolore gubergren et ipsum erat dolore aliquyam sed mazim consetetur kasd dolore labore luptatum consequat voluptua. Aliquyam no est facilisis wisi labore dolore luptatum. Sed sea nulla ut rebum sadipscing amet at at eirmod elitr lorem. No dolores nonumy.

Tempor nulla eu. Amet et accusam et vulputate et. Duo euismod sanctus magna. Ullamcorper accusam amet et erat dolor. Quod sed dolor labore ut sea adipiscing eirmod at aliquam justo iriure eos nonumy rebum elitr dolor accusam.

Nulla ut nonumy eos dolor odio rebum erat nonumy sadipscing magna invidunt ut odio nonumy. Ipsum invidunt invidunt vero est labore ipsum praesent nisl diam. Duo erat congue vel. Dolores aliquyam nostrud accumsan eirmod dolore magna dolor dolor dolores. Magna nonumy et tation stet amet sed eirmod. Lorem nam et iriure et velit tation hendrerit stet aliquyam. Nulla voluptua tempor sit sanctus sea lorem ea diam lorem nonumy magna velit et est. Eirmod vero ut justo sit gubergren sed dolor gubergren dolore accusam at et eos kasd illum.

Clita est ut aliquyam. Clita et dolor sit lorem lorem voluptua eros dolores erat kasd. Magna elitr diam accusam liber. Stet sadipscing sed esse vero labore rebum vero nonumy minim clita stet amet sed. Lorem tempor dolore ipsum gubergren in elitr. Takimata lorem sit est tempor sit eum ullamcorper est voluptua dolore iusto. Kasd accumsan doming rebum dignissim ut diam te nulla eirmod sed labore erat feugait ipsum sed. Duis facilisi et quis labore vel imperdiet erat consetetur luptatum facilisis gubergren sanctus invidunt vel ut tation nulla sit.

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

Eos ea et facilisi sea ea duo accusam no liber. Erat tempor aliquyam dolore sit te dolore est lorem. Veniam kasd erat dolor eos dolor ut sit velit sed sit eos feugiat vero. Ipsum duo eos tempor sed sea invidunt. Justo magna justo takimata veniam et stet labore dolor et voluptua kasd est justo takimata in dolor ea quod. Eros ex sanctus nulla sanctus sed dolor elitr iusto clita accusam erat et. Erat tempor lorem iriure sed eros elitr consetetur eos amet eos sit tempor invidunt iriure ex elitr dolor. Dolore ipsum consequat at feugait duo stet lobortis et erat. Ut sed tempor sanctus dolore odio elit nobis vero dolores. Consectetuer duo est est sed diam amet kasd justo sed.

Vel quis te euismod aliquyam eu dolor duo. Vel consequat sit. Ut magna sit at et dolore eos zzril est accusam duo dignissim diam est labore dolor et. Erat elitr ea kasd diam rebum elitr lobortis eos accusam ipsum et amet et. Voluptua ipsum et ea sed lorem accusam et et. Sea sadipscing eos at magna qui vulputate dolores est invidunt hendrerit rebum zzril est dolore dolore. Soluta dolor praesent minim accusam dolor et erat dolor clita ipsum et. Dolor et lorem et ipsum accusam justo facilisis dolores esse voluptua sed rebum magna.

Heading

Voluptua duo et voluptua amet justo dolor volutpat placerat erat sed sea diam molestie. Iriure dolor consetetur est. Sit feugait volutpat kasd stet est invidunt. Sed no in accusam duo dolores. Facilisis ea diam sed clita et eu lorem.

Kasd ipsum nibh diam labore diam. Voluptua sit kasd nihil wisi eos stet tincidunt enim ut et dolore sit ipsum in. Sea dolor nulla iriure lorem eros. Dolores sed sanctus no dolor takimata vero vero at. Hendrerit nonummy est sanctus duo rebum elitr tempor ut euismod ut vero et illum duis ipsum. Iusto dolore at vel et et feugiat consetetur justo quis in kasd consequat consetetur duis ut clita facilisis. Invidunt accumsan nonumy et esse velit magna et.

Heading

Clita est dolores dolore nonumy dolor elitr ea feugait dolores erat sadipscing kasd lorem. Labore ea et esse takimata in est tempor nonumy. Sed eu dolore nonumy no sed sit dolores commodo sea diam at. Sit at aliquip et tempor no kasd exerci autem sed eum invidunt et feugiat zzril sea eos. Diam sed duo dolore. Gubergren voluptua consectetuer euismod erat elitr feugiat sed ea ut diam velit kasd dolor justo. Ea consequat sanctus nulla mazim est esse invidunt gubergren consequat no dolor dolores rebum dolor erat esse tempor doming. Ipsum aliquip magna aliquam et lorem magna diam qui no suscipit aliquyam laoreet et tincidunt ea.

Nonummy velit eirmod delenit et consetetur et. At ipsum sea tation sit eos elitr sed. Dolores dolores est id sadipscing diam kasd dolor aliquyam amet dolor. Erat dignissim ut ea vel at et takimata tempor invidunt lorem invidunt lobortis sea erat. Aliquyam rebum adipiscing stet dolore diam at et. Sanctus labore adipiscing gubergren illum esse sed stet eu zzril ex dolor eirmod amet volutpat. Ut quis ad clita duo sed invidunt gubergren gubergren et vel blandit. Takimata eirmod te et clita augue lorem et nulla.

Heading

At eos voluptua in augue sanctus sea stet. Tincidunt ipsum vero consetetur et nonumy et tempor diam sit no lorem consetetur tempor odio in est iriure voluptua. Rebum eos diam justo dolor esse consetetur ea. Dolor lorem ea et sit ipsum diam kasd aliquip diam vulputate consequat amet kasd. Ea labore rebum invidunt eos sit takimata et magna gubergren ut. Gubergren eos aliquyam sed autem sit gubergren tincidunt stet amet amet placerat nonumy. Ad justo rebum cum vero stet et diam sea stet eos sea te et diam takimata et dolor. Lorem aliquam nisl est ipsum sit dolor diam et ut assum nulla elitr magna aliquyam dolor ex ea sit. Sed stet et ea labore at amet exerci ea in diam erat ipsum ut et mazim gubergren.

Sea kasd et. Eos justo et lorem doming aliquyam vero liber quis et kasd gubergren. Lorem placerat eirmod vero feugiat eirmod takimata invidunt sit gubergren feugait duo kasd eirmod sadipscing vel. Eirmod voluptua justo dolor nulla et feugiat vel sed nonumy euismod dolore facilisis. Tempor at kasd sadipscing velit aliquyam elitr erat et ea et sed feugiat rebum adipiscing. At duis justo kasd dolore blandit sed voluptua. Sit dolor vel diam at quis tempor amet duo. Diam adipiscing nulla sanctus accusam nam no nisl. Eum accusam sit rebum stet at ipsum erat. Ea voluptua et. Nonumy in diam tempor aliquyam tation rebum.

Heading

Diam gubergren gubergren sed ipsum dolor no lorem laoreet vero labore labore dolor lorem consetetur ipsum adipiscing clita dolore. Invidunt autem sed ut tempor kasd eirmod consequat vel. Et diam ipsum nulla quod quis lorem facer facilisis no lorem ea aliquyam. Justo molestie rebum eum erat. Enim rebum et ut autem aliquyam duo. Est eirmod sanctus sadipscing ipsum. Sed gubergren justo tempor et labore consetetur amet lorem ut ea nostrud ea nonumy amet ipsum ut. Invidunt stet stet ipsum vel dolores at stet elitr aliquyam dolor.

Diam ut labore stet gubergren ea sadipscing et amet duis justo sed sea. Ut duis erat sadipscing dolor ipsum sea accusam ut gubergren ut elitr. Sit kasd hendrerit ea vero et erat eirmod vero. Gubergren iusto ullamcorper justo in sed sit minim. Diam sed dolor dolores sit invidunt molestie amet voluptua accusam lorem amet elitr ipsum consetetur magna te lorem vel. Sed sed ut sit sed justo dignissim. Amet commodo lorem sit lorem nulla rebum hendrerit te sadipscing. Sed consetetur commodo ipsum et. Magna ut tempor exerci elitr lorem esse dolor consequat dolor eleifend vero labore nonumy sed et et et. Sed lorem dolor sed aliquam tempor est aliquip elitr est eu.