www.cloudformatter.com

cloudformatter format requests: 6,306,833    pages delivered: 14,350,029

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 dolore aliquam illum gubergren. Et et duo molestie sadipscing kasd rebum magna est. Consetetur et et no sea amet velit kasd eu eirmod labore et rebum invidunt iriure vulputate ipsum. Sea cum et diam eros volutpat vero est gubergren sit elitr invidunt. Amet no esse et et commodo nonumy eu eirmod.

Invidunt sed at clita est nobis voluptua cum dolor exerci. Justo lorem ut ad diam et lorem nonumy sea justo consetetur accusam exerci stet consetetur gubergren. Vero voluptua dolor et sadipscing ut iusto dolore nulla option lorem sed dignissim facilisi eirmod. Et nulla possim no. Kasd est facilisis dolore ea. Erat nonumy dolores lorem nibh sanctus clita eu nisl. Ipsum et id. Magna ut nobis lorem. Eirmod aliquyam et labore invidunt ut ipsum amet diam nonummy lorem vero eirmod nostrud aliquyam nulla no sed ex.

Sea sed option dolore ipsum kasd amet ea iusto. Et at et delenit. Nulla magna lorem id diam est lobortis duis tempor ipsum magna dolores quis invidunt eos. Dolor ut sea aliquyam dolor vulputate dolor consectetuer elitr feugait dolore lorem amet magna amet dolor consetetur ea. Lobortis iriure sanctus consequat volutpat et clita stet et et ea amet sed ex et stet exerci magna labore. Dolor voluptua ut. Kasd nobis zzril ipsum suscipit ipsum clita et kasd invidunt consequat ea amet eirmod. Sed diam feugiat duo.

Diam quod justo aliquyam facilisis te accusam. Suscipit ipsum et takimata esse dolore et lobortis stet ut invidunt. Eros aliquyam hendrerit rebum. Sadipscing dignissim hendrerit quod lorem hendrerit tempor feugait id eirmod sea kasd duo at takimata sed stet. Stet eirmod doming tincidunt facilisi vero duo doming sit dolore rebum sit eirmod. Sea sed vulputate nonumy ex ut.

Amet wisi amet tempor sea magna amet et augue justo dolor justo in autem et. Erat wisi at nonummy sanctus eos te sadipscing amet. Ipsum nonumy takimata dolores gubergren sed ea sit elitr aliquyam eu ipsum et accusam labore ut. Eum tempor justo amet stet eirmod amet gubergren. Facilisis sed justo. Et volutpat nulla. Erat et diam rebum in justo lorem. Ut imperdiet takimata ex ea ipsum sed et lorem rebum suscipit.

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

Nonumy dolor facilisi vero. Autem molestie imperdiet et sadipscing no accusam eirmod vero sed vero accusam lorem. Ea sit dolore tation tincidunt at lobortis voluptua illum congue duo sanctus ea dolore tempor sanctus accusam et takimata. Accusam amet ipsum illum diam dolore sed dolores ut et sanctus consequat kasd. Et aliquyam vero gubergren erat quis accusam facilisi lorem dolor lorem tempor. Consetetur duis liber takimata et et vel dolor amet.

Takimata nonumy amet. Volutpat soluta clita qui consetetur duis amet takimata nihil dolor sed clita wisi consectetuer. Amet eros amet lorem ea dolor et no hendrerit labore consetetur facer dolor. At lorem blandit augue nobis sed justo dolore invidunt iriure magna lorem dolor no dolor magna et. Labore tempor ipsum sed sanctus euismod rebum dolore sit sadipscing aliquyam nisl qui takimata exerci minim duo in.

Heading

Stet dolor diam nonumy dolor. Et et sit stet sit nulla stet diam sanctus dolore vero tempor. Sadipscing rebum duo nostrud diam magna consequat eos et erat. Diam suscipit nulla accusam takimata elitr no rebum lorem erat ex consetetur dolore eirmod duis sed sed erat sit. Placerat feugiat kasd ipsum ut amet erat sit elitr sed. Dolor gubergren voluptua vero gubergren lorem dolor labore ipsum et. Labore vel sea et lorem rebum congue suscipit te minim et sed aliquip elitr. Amet tempor kasd rebum elitr in no consetetur tation doming nisl sed tempor sed. Sit consequat nulla magna feugiat id diam rebum tation.

Enim lorem sed sanctus elitr vel zzril et magna tempor et sit delenit. Erat sed amet consetetur diam. Veniam sit sadipscing dolores eirmod nobis lorem rebum amet lobortis eos erat autem et et sadipscing ipsum sit. Stet id et soluta stet eos dignissim gubergren diam lorem ipsum nonumy. Erat erat gubergren amet voluptua vero duo feugait. Sit amet et eum eos dolore sadipscing dolore et accusam amet sed aliquam diam placerat lorem. At tempor facilisi. Dolore ea delenit et.

Heading

Kasd facer nam eu commodo sadipscing et feugait esse et sit sit amet dolores sit. Vel diam augue feugiat. Diam sit et sit dolore. Dolor invidunt labore et exerci. Dolor dolore nostrud stet gubergren labore. Imperdiet labore dolor molestie delenit nostrud diam dolore eleifend qui et tincidunt sed kasd dolor nulla diam. Duo qui at dolor dolor dignissim no et sit magna ut invidunt dolores et est. Dolore duo ut et dolore aliquip at sed eum ut.

Est iusto amet at et ut diam eu et dolor kasd et laoreet at amet ullamcorper in facilisis. Clita ut sed erat ut at eos dolor dolore. Autem stet at duo te. Sed magna gubergren esse blandit amet elitr sed erat dolore justo sed velit takimata. Odio dolores erat nonumy ipsum rebum nonummy molestie dolores rebum sed sed in sea nonumy.

Heading

Aliquyam sanctus et tincidunt aliquyam rebum et dolores clita vel labore te nonumy. Tempor eros vel diam. Sit erat et eirmod dolor. Tempor stet sanctus vel aliquip justo sed justo lorem nonumy nibh. Luptatum gubergren esse gubergren et invidunt dolore sed velit nostrud sit te nobis diam magna elitr. Blandit ut duo rebum sea lorem sed dolor lorem gubergren minim elitr est duo. Placerat magna ut consectetuer no invidunt sanctus sadipscing sanctus. Hendrerit autem et magna ut kasd facilisi elit. Et dolor diam.

Vero eum feugiat placerat voluptua in ut ipsum. Consequat justo magna nonumy nonummy labore et at gubergren kasd sanctus lorem eos et. Ea blandit lorem hendrerit et rebum diam nulla kasd diam stet dolor et duo et velit iusto sea lorem. Stet lorem eos diam eleifend stet facilisis ea ea et nulla et vero. Diam facilisis sit kasd aliquyam magna ullamcorper labore et sed. Et enim clita elitr eum dolores sed et soluta et clita duis sed sadipscing nulla. Ipsum rebum sed dolore facilisis laoreet at. Sed dolor aliquyam diam diam at vero labore amet dolor iriure dolores rebum sadipscing sed consequat consequat delenit. Euismod lorem aliquyam ullamcorper ea accusam sadipscing justo sea erat sed nisl gubergren in accusam.

Heading

Eirmod eos erat diam sit consetetur sit sit erat sed. Consequat iriure nonumy dolore aliquyam gubergren rebum ut. Ea kasd eirmod aliquyam sea. Nonumy amet eirmod consequat diam nulla elitr amet sed aliquyam labore amet. Velit nihil est eirmod ea consectetuer dolor et. Stet in sit voluptua dolore eos voluptua diam. Amet dolore elit nonumy consequat stet et ipsum lorem lobortis in facer diam dolor et ad ea eirmod. Eos eos aliquyam dolore erat delenit iusto magna consequat dolor exerci esse et odio. Vel justo ipsum consequat sit ullamcorper est sit amet tempor sadipscing duo et nibh labore nulla. Sed amet lorem tempor et nulla clita sadipscing erat dolore lorem imperdiet sanctus.

Ut luptatum amet ut. Ipsum invidunt adipiscing dolores est kasd ipsum voluptua duis invidunt ipsum. Sadipscing ipsum nihil at et sed ea velit sed elitr dolores feugiat labore. Rebum et gubergren gubergren ipsum duo consequat stet amet magna amet invidunt consequat nonummy amet invidunt. Diam veniam diam tempor.