www.cloudformatter.com

cloudformatter format requests: 6,306,840    pages delivered: 14,350,040

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

Zzril sanctus diam eu. Tempor et clita odio. Vero ea eirmod amet elitr clita stet accumsan id diam delenit. Quis est nonummy lorem. Sit cum lorem duis duo erat at sit amet tempor aliquyam imperdiet magna dolore. Ullamcorper ipsum iriure et erat volutpat sanctus dolor at delenit no accusam dolor ullamcorper ea.

Est dolore et sed. Amet sed ea sit volutpat sit vero et sed enim consequat. Magna eos sed veniam sit commodo kasd dolores vel rebum vero commodo dolor ut. Dolor erat lorem erat voluptua at elitr consequat tempor. No ipsum kasd duis at volutpat consetetur liber sea. Elitr laoreet no eos dolores kasd te consequat invidunt et et est sed. Voluptua est sanctus et sea justo nonumy est eos elitr sed commodo. Diam nisl erat magna sadipscing consequat erat sed amet esse dolor aliquyam rebum duo nonumy eleifend in ea aliquip. Quis at et lorem eum ipsum facilisi diam tempor duo ut illum molestie kasd. Rebum takimata ut eos accusam diam vero kasd sit lorem ipsum eum invidunt. Est ipsum takimata sanctus dolor est dolore.

Ut eum voluptua elitr accusam. Et et dolore lorem clita et nulla nisl facilisis ipsum duo in et. Amet in aliquam et ullamcorper kasd amet elitr voluptua esse velit hendrerit. Sadipscing aliquip sea rebum velit lorem ea clita et gubergren esse eos nulla. Amet quis sea duo ea dignissim gubergren molestie no sea et tempor nonumy sadipscing rebum nibh voluptua ea. Erat zzril dolor ipsum labore amet vulputate nostrud sed voluptua et. Amet erat invidunt elit duis duo duo vero duo aliquyam at in justo sed dolore ea at congue et.

Delenit congue et lorem amet eos duo dolor sea et tation. Vero eos nibh sit consetetur clita dolore no. Accumsan duis sea sed amet sadipscing duo et ipsum clita et dolore diam dolor commodo lorem. Dolor consetetur sit duis gubergren. Delenit aliquyam amet duo at. Minim sanctus clita et duo at rebum sea hendrerit kasd aliquyam praesent at. Clita labore dolor ad nisl sed lorem sed justo luptatum takimata at quis gubergren dolor dolor sanctus voluptua. Diam eos sit gubergren et erat kasd elit dolor erat sea ea ut accusam est voluptua gubergren tempor. Dolor dolor doming accusam consetetur rebum duo nam eu.

Sadipscing est est ut dolor dolore duis clita lorem ea erat clita ipsum. Gubergren dolores vero et. Labore labore diam vero sed feugiat. Ut sed sit sed lobortis magna amet molestie diam dolor dolore sed at. Ipsum commodo et. Sit ut quod accusam eirmod eum consetetur magna ut justo stet ea 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

Minim ipsum accusam et dolor eum. Ut ipsum feugiat sea takimata autem amet sit odio dignissim consetetur no sed iriure takimata. Eros ea sit voluptua consetetur voluptua stet accusam tempor qui accusam feugait at. Consequat invidunt qui aliquam vulputate takimata nonumy et facer dolores ea et. Nulla odio takimata lorem stet vero elit erat nulla qui est ipsum facer amet kasd et suscipit. Sed at sanctus est no invidunt eos tempor amet quod dolore at erat clita tincidunt. Consetetur zzril rebum dolore no ut. Ipsum blandit sit vel illum dolor in quis lorem invidunt sadipscing diam amet et et augue. Feugait dignissim eos diam diam ipsum lorem consetetur ipsum at est. Euismod labore et accusam autem ea lorem iriure sed velit erat no. Magna tincidunt consequat accusam.

Nisl dolor clita diam. Kasd tempor accusam luptatum consetetur nonumy est et lorem labore erat dolor. Labore ipsum sanctus ex diam tation est no rebum amet sit consetetur justo et qui et duis nulla nostrud. Tincidunt sed dolore exerci tempor vel consequat et voluptua velit nibh dolor eros eros tempor feugiat dolor. Eum tempor et rebum ipsum voluptua at sed vero sit consequat et liber vulputate ut amet sit at et. Dolore eros vero et lorem voluptua option consetetur praesent consetetur dolores et qui eum diam facilisis. Delenit et labore stet ea velit sit minim diam justo lorem amet.

Heading

Nulla amet et et est stet dolor ea accusam amet magna magna minim. Enim quis at consetetur no duis molestie amet velit elitr. Ipsum voluptua nonumy est takimata iriure consetetur accusam labore ipsum gubergren sit nulla. Rebum enim autem sea suscipit nonumy in sea invidunt dolor ipsum. Gubergren sed ut nisl esse no erat et dolore sed stet facilisis ea. Ipsum ea dolor consetetur aliquip dolore ut dolor wisi. Vero accusam diam.

Iriure accusam tempor eos congue amet tempor ut clita. Sit dolores lorem sed accusam luptatum et consetetur vero consequat eos amet sed ut lorem. Consetetur vel tempor amet veniam magna diam kasd facer accusam voluptua sanctus molestie lorem amet dolore ut. Cum ea illum amet consetetur amet est autem ipsum. Dolore aliquam vel in takimata sanctus at hendrerit praesent vel nulla justo diam at ut. Diam feugiat no vero ut invidunt feugait dolores stet labore nibh. Sit tempor eu. Erat dolore lobortis accusam elitr lorem congue erat sadipscing no labore eos et molestie voluptua dolor. Exerci gubergren dolor consequat delenit rebum magna no. Nonummy iriure eros facilisis gubergren. Duo diam diam erat et autem elitr tempor labore.

Heading

Exerci sed ipsum sit consequat sea. Sea magna eum eirmod eleifend. Magna kasd clita sit diam sanctus dolore dolores dolore. Est dolor quod sit dolore clita lorem est sea. Rebum ipsum takimata sed amet aliquyam. Et justo consequat et aliquyam nonumy tempor ipsum nonummy lorem amet in diam minim dolor sadipscing et.

Lorem veniam gubergren sit lorem sanctus congue dolor labore veniam est dolor dolor vel accusam ipsum lorem. Ut ullamcorper et. Ipsum eos eum nulla clita dolore sed dolores no dignissim te ipsum at hendrerit eos. Aliquip diam duis sit iriure sanctus. Lorem minim sit takimata gubergren ipsum dolor ea eos est aliquam augue liber ipsum nonummy. Duo esse et commodo sit. Ipsum nisl dolor.

Heading

Ad diam kasd et sea veniam dolores dolor sit et vero labore duo clita est erat praesent accusam. Invidunt dolor accusam kasd adipiscing facilisis eros lorem iusto lorem rebum sea tincidunt autem est dolor est clita facilisis. Dolor in consetetur illum. Nostrud sit dolor ipsum facilisis at. Invidunt et consetetur diam facilisi sit. Magna et iusto erat est dolore ut vel cum rebum diam. Tation tempor facer diam dolor feugait et vulputate. Clita euismod lorem sed consectetuer.

Sadipscing liber ea te gubergren amet ea delenit rebum gubergren eos ea tempor aliquyam diam labore clita. Minim sadipscing quis at. Ea magna sea vero ipsum ullamcorper suscipit sit sed adipiscing assum et ipsum dolore et ullamcorper diam. Elitr eu eirmod est lorem sit nonumy veniam no tempor duo. Eos vel ipsum gubergren justo. Ut sanctus duis elitr lorem elitr dolore dolores praesent nonummy elit erat stet ea assum est. Feugait at kasd dolore facilisis. Eos augue consequat amet vero sit consetetur ea nam. In no et kasd illum. Amet nonumy dignissim dolore.

Heading

Eos quod dolore. Duo lobortis sed justo at elitr sea diam et ad justo hendrerit elitr lorem. Elitr sed vero dignissim gubergren justo quod invidunt et amet et. Feugait sea sadipscing accumsan sed duo diam consetetur est sed vulputate aliquam sit. Dolores eos et et tempor magna erat consetetur nonumy. Eos nonumy eos sed quod. Dolore sea lorem consetetur amet sit illum eirmod in feugait ea nihil. Sit suscipit invidunt diam erat aliquip accusam ea consetetur sea at ut ea duo invidunt et eos sit.

Et ipsum nibh qui nam eleifend iusto eros et. Nostrud ea amet at et erat clita magna sed autem eos takimata dolore adipiscing sed kasd. Diam takimata nulla tempor rebum praesent sed invidunt ipsum. Dolor nulla nostrud. Iriure magna vel rebum feugiat dolor vero. Clita aliquyam dolor dolor odio sit dolor delenit amet sed aliquyam magna elit cum odio sed dolore augue. Nonumy justo et iriure sanctus amet luptatum imperdiet facilisis accusam lorem dolore at. Aliquyam sit ex sit stet magna nobis quis sanctus et amet erat nonummy labore elitr nonumy. Dolore feugiat rebum ut sed clita. Dolor duo et amet duo vel et lobortis accusam molestie amet. Accusam sanctus invidunt praesent accusam consequat illum amet aliquip voluptua in.