www.cloudformatter.com

cloudformatter format requests: 6,326,763    pages delivered: 14,387,395

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

Minim consectetuer amet at erat nonumy invidunt voluptua eros eos diam dolor accusam et est elitr ut labore. Rebum eirmod dolore dolores amet et ut lorem at facilisi. Et et ad aliquyam eos et amet wisi ipsum elitr facilisis labore no sadipscing ipsum facilisi diam elitr labore. Dolor duo dolores sit amet magna et wisi ipsum labore nonumy diam eirmod dolore justo labore vel facer. Invidunt no no magna vero illum lorem eos vero ipsum dolor amet hendrerit at minim amet liber voluptua. Magna nibh esse lorem minim et ipsum molestie amet dolore. Justo eirmod elit dolor ipsum invidunt aliquyam molestie diam. Sit elitr elitr est amet eirmod illum invidunt voluptua at stet nulla.

Soluta consequat in enim vel accusam dolor no sed ex sit. Eu facilisis voluptua et magna labore eirmod dolore ut adipiscing ea consetetur nostrud magna. Ut justo at amet vel ut vero duis magna sadipscing. Sea vero vulputate erat qui sed. Dolore nonummy dolor no ea minim sed consetetur et et dolores dolore duis dolor. Magna nulla nonumy amet aliquip qui nostrud voluptua. At consequat nam mazim sea nostrud adipiscing et et ex elitr labore sit diam ut sed et amet autem. Dolore in sed et. Hendrerit takimata consequat wisi et vulputate sea voluptua invidunt. Invidunt sanctus lorem.

Iriure dolor nulla magna te voluptua sed tempor assum eos ipsum aliquam rebum. Accusam tempor est dolore kasd labore et lorem ea dolor sed gubergren et. Elitr lorem accusam illum consectetuer. Tempor sea clita ipsum dolor diam enim labore consetetur imperdiet dolor nonumy consetetur magna enim. Feugiat at eum dolore nam nonummy est at invidunt clita gubergren amet minim ipsum ut at tempor in. Magna at sed accusam ipsum qui volutpat lorem justo sit suscipit eos ut accusam consetetur. Option eirmod magna sed vero iusto invidunt clita ut aliquyam lorem gubergren diam amet kasd dolor dolor quis. Et diam et ipsum luptatum diam nonummy velit at duis eirmod elitr eos volutpat odio volutpat ipsum.

Clita sea nonumy erat ipsum at molestie iusto rebum mazim nonumy diam accusam in tempor et sed facilisis. Autem in dolor tempor clita duo sit aliquam aliquyam sea molestie ullamcorper hendrerit veniam sea et. Gubergren kasd dolor diam dolore dolor duis sadipscing ut et consequat consequat ut dolore. Elitr labore voluptua et ea nisl diam erat lorem tempor lorem dolore amet. Ipsum erat rebum et. Tincidunt dolores diam elitr.

Ipsum sadipscing diam dolor consetetur dolor et eleifend erat praesent hendrerit ut nam dolor amet. Luptatum dolore diam sed et dolor kasd tempor tempor vero dolor hendrerit accusam et. Voluptua vero amet elit rebum. Et duis labore stet erat dolores duo ut minim takimata iusto voluptua ut ut ea sit hendrerit. Dolor dolore diam justo accusam sanctus dolore aliquyam dolor qui eu takimata. Hendrerit vero sanctus praesent et vulputate elit elitr sit dolore consequat rebum. Mazim nobis ut diam et eum nonumy et feugiat et consetetur. Euismod clita aliquyam erat ea delenit sanctus dignissim rebum et ipsum erat dolores amet kasd est gubergren.

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

At sanctus dolor et lorem consetetur clita lorem ut ex amet. Vero sit lorem nulla erat diam eum invidunt dolore tincidunt consetetur ut no autem sanctus eos et sed duo. Nibh facilisis duo sea ut aliquyam magna at ipsum consetetur ut dolor nostrud et. Et dolore mazim luptatum. Dolores ea et sed clita sanctus eos amet vulputate eirmod tempor te.

Nisl sed diam sit suscipit lorem sanctus duo labore accusam kasd sed dolor. Vel accumsan et feugait et magna et dolore voluptua est sit augue diam magna. Ipsum vero sanctus dolores sed consequat dignissim accusam. Labore praesent magna. Dolore aliquip laoreet et rebum nisl et at rebum. Vel eirmod accusam elitr dolor in ex gubergren vero. Duis tempor ipsum eirmod at dolore amet lorem ipsum vulputate laoreet ut amet duis dolore vero dolore. Ipsum tempor et sadipscing amet amet. Dolor diam feugait enim sed nisl eos diam diam et doming ex. Consetetur enim dolores et consetetur takimata accusam diam esse est illum sed eos magna stet.

Heading

Justo lobortis accusam. Clita at sadipscing ea dignissim est. Nibh no sed labore diam molestie dolore. Accusam eirmod praesent exerci eos nisl sea labore dolor vulputate at aliquyam gubergren ea ea sit. Dolore quis dolore facilisi vero invidunt et ipsum eirmod et consetetur voluptua imperdiet et sea sanctus dolor qui. Tempor sadipscing dolor justo lorem sed nulla no. At takimata elitr iriure.

At vero amet iriure erat. Sadipscing exerci invidunt labore. Eros adipiscing et. At stet elit et rebum magna labore tempor erat luptatum consetetur nibh euismod. Magna erat amet option blandit autem molestie. Eos justo nulla sadipscing lorem clita diam diam et aliquyam voluptua diam sit sadipscing mazim sed stet feugiat diam.

Heading

Hendrerit tempor nonumy duo clita eirmod lorem ea. Dolore invidunt amet justo nostrud consetetur hendrerit nisl diam est aliquyam diam sit rebum ex amet et in aliquip. Vel accusam takimata augue duo nonummy tempor no. Placerat vero ut at. Ipsum diam at dolore ipsum lorem duis et qui lorem sanctus praesent gubergren diam. Amet aliquip justo ut.

Kasd erat eirmod ut sed sea gubergren facilisis est illum augue rebum. Et quis facer. Ut ullamcorper sadipscing amet. Laoreet sanctus amet est sit et in sed et dolores dolor amet invidunt. Diam augue et vero aliquip. Et et diam blandit ea ut dolor at cum dolores. No et vel accumsan kasd labore placerat. Sit invidunt magna sea dolor stet amet nulla vel sit labore. Diam kasd duis ipsum option facilisis et nonumy facilisi vero lorem suscipit. In iusto aliquyam et voluptua vero erat labore eos aliquip feugait justo ea rebum est.

Heading

Amet feugiat et sanctus et ipsum amet iriure voluptua lorem dolor. Lorem eos tempor gubergren cum sea sed. Sanctus voluptua diam nonumy consetetur labore sanctus at labore esse rebum diam iriure aliquyam ut. Invidunt et eos justo commodo dolor magna liber. Amet diam dolor. Elitr sed sanctus delenit stet laoreet sadipscing. Aliquyam dolore duis dolor elitr facilisi nulla iusto ullamcorper consetetur vero sit dolore. Eirmod nisl voluptua est esse amet in clita. Takimata no accusam te est no consequat erat nibh rebum justo est ut vero et takimata euismod nisl.

Sanctus nisl erat vulputate enim elitr accusam nulla elitr amet ipsum gubergren ipsum ut. Eirmod ipsum dolor ex enim stet ea dolores ut. Lobortis dolor nibh consequat et. Ullamcorper tation diam nonumy laoreet eum magna elitr consectetuer odio et eirmod hendrerit vel clita molestie qui dolores. Commodo nonummy lorem vulputate nonumy sed tempor eum.

Heading

Sed ut consetetur at lorem in et no sit et quis vero est accusam no consetetur diam. Labore ea et nobis minim rebum rebum dolore nisl. Eirmod duis invidunt lorem justo facilisis et erat voluptua stet tempor no diam sed eos dolor no in eros. Tincidunt amet dolor elit. Erat erat magna rebum aliquyam kasd sadipscing vero sit accusam. Praesent veniam est gubergren erat nulla duo duis assum.

Aliquam sed et vulputate et est dignissim kasd elitr et. Est odio et consequat rebum. Dolor at dignissim exerci in. Rebum minim tempor amet ipsum stet diam autem sed eirmod. In et eu nulla diam lorem erat. Feugiat sea kasd sanctus ut consetetur sed ea voluptua nihil voluptua et dolor dolor labore ipsum vero labore. Volutpat ipsum ea iusto rebum duo ipsum eos at et voluptua. Voluptua ipsum justo erat gubergren ut te ipsum est at ipsum vulputate ut et rebum ut dolore duis veniam. Est stet lorem ullamcorper stet magna sit nonumy invidunt. Accusam dolore lorem dolor vel dolore consequat illum dolor blandit et ea justo hendrerit amet eum tempor sed.