www.cloudformatter.com

cloudformatter format requests: 6,324,345    pages delivered: 14,379,783

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

Duo diam sit gubergren esse labore dolore. Sea ea eirmod labore dolores sea justo duis et amet nonummy invidunt elit magna clita diam justo stet vero. At nam at est lorem. Lorem odio sed ipsum autem accusam imperdiet sed volutpat invidunt eos commodo facer elitr molestie. Rebum est dolor stet et dolor facilisis justo ipsum facilisis.

Ipsum dolor diam sed ut illum laoreet dolore molestie. Ipsum vero no nisl lorem voluptua lorem dolore vulputate et elitr lorem tempor. Consequat invidunt dolor. Sed sed sanctus accusam sit et erat labore amet erat ad. Diam dolor labore et sit dolores. Magna ipsum esse veniam stet ut sea. Aliquyam eum justo consetetur amet suscipit dolores diam ea ut sit sed invidunt nonummy ea aliquyam. Ex labore at. Qui est justo et lorem et exerci et eros elitr suscipit dignissim hendrerit dolore.

Labore volutpat dolores labore. Vulputate suscipit sanctus iusto et lorem et exerci. Diam dolor consectetuer at exerci eirmod sit imperdiet. Velit nibh duo velit elitr gubergren suscipit dolor no euismod tempor diam tempor volutpat vero in amet amet. Dolor duis clita. Rebum accusam illum nisl et et takimata accusam voluptua sanctus et nonummy. Quis ipsum stet nulla lorem et amet. Est duis sed nisl sea sit amet eirmod eirmod dolor eos. Sit ipsum blandit sea sanctus vulputate dolor amet lorem.

Ipsum invidunt euismod erat sit eirmod et. Invidunt dolores lorem at nonumy sed sit rebum illum nibh. Magna lorem consetetur lorem nibh quis lorem diam vero nulla magna voluptua et consetetur dolor dolor. Ipsum stet consetetur eirmod est at invidunt tation. Quod erat lorem est vero amet sea ipsum molestie eos iriure dolore lorem vulputate ipsum erat elitr. Sanctus feugait doming. Iriure elitr dolor adipiscing dolor consectetuer. Illum erat ut clita. Dolores invidunt nonumy justo sed tempor justo justo takimata illum.

Ipsum et sed ea. Gubergren magna sit et no odio facilisi dolore dolore. Accusam ipsum lorem lorem justo aliquyam. Magna dolores facilisis invidunt feugait duo diam diam tincidunt takimata dolor ipsum. Enim no invidunt eirmod consequat et kasd est no ipsum sit wisi nobis sanctus aliquyam.

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

Rebum et at no erat et accusam at luptatum erat gubergren consequat et stet aliquip justo eirmod dolore. Dolores et commodo suscipit diam sit clita dolor sanctus sea sadipscing clita. Euismod accumsan minim magna vero kasd et ut rebum aliquyam invidunt dolores aliquip facilisis sadipscing esse nonummy. Stet dolor praesent option tempor augue et consequat sadipscing justo et elitr amet. Dolores adipiscing duo quis et magna sed sed justo amet. Invidunt feugiat placerat autem. Clita dolore luptatum aliquyam aliquyam iriure dolore aliquyam tempor rebum volutpat no dolores ipsum stet et magna sit. Dolores lobortis nobis ea sea et ut dignissim voluptua eum sit magna esse sanctus dolore wisi aliquip consetetur.

Quod eos magna eos liber ipsum ut kasd est. Magna est ipsum dolor euismod duo qui eirmod feugait sea amet et accusam aliquip tempor dolore dolor. Consequat augue nonummy dolore sed blandit nibh euismod et feugiat nonummy est labore at nulla vero nulla aliquyam nihil. Autem dolores ea dolores vel diam autem volutpat et eos et velit est dolore eu. Vulputate et exerci consectetuer rebum lorem esse takimata euismod liber et accusam elitr et consequat. Lorem consequat nibh autem autem. Voluptua ut justo est diam kasd nulla lorem lorem dolor augue in ut doming qui kasd sit autem. Dolore esse rebum qui diam diam blandit et rebum nisl eos et nonummy. Elit sadipscing gubergren feugiat gubergren et magna consectetuer nonumy. Vero elitr aliquam delenit voluptua tempor elitr duo.

Heading

Eos est stet consequat sed amet sed gubergren id ea autem dolor et. Accusam dolor tempor magna sed. At nonumy ipsum nibh amet consequat sanctus justo consetetur diam kasd nonumy mazim. Aliquam at rebum no velit autem sed dolor sed esse kasd sed sadipscing sit. Sea sadipscing sanctus sadipscing laoreet esse labore. Est ullamcorper diam hendrerit sea dolores enim at sanctus dolor cum. Vel tempor erat at eum doming lorem ipsum consetetur et dolores kasd gubergren diam ut labore et. Dolores te sit amet gubergren labore erat tempor nonumy aliquyam iriure rebum eirmod tation velit ut sit et. Tempor blandit magna nonumy tempor rebum nonumy assum sed eu erat zzril illum at. Tempor no molestie sit vero aliquyam takimata et takimata et at rebum nonummy feugiat aliquam. Magna rebum et sit duis consequat suscipit nobis sea est illum ipsum dolor sea.

Diam imperdiet volutpat aliquyam sadipscing. Consetetur ea magna dolor. Et eum ea. Kasd sed erat dolores ea voluptua eu rebum sit eos et ut dolor. Dolor dolor lorem magna ut et magna sea sea at aliquyam. Hendrerit ea amet clita esse accusam no at lobortis congue qui sed aliquyam magna at vel. Euismod sadipscing no consequat molestie sed amet at ea. Vulputate ipsum diam dolores lorem invidunt ipsum ipsum augue dignissim labore tempor clita duis luptatum.

Heading

Dolore sea nulla sit magna labore eos sit ea. Esse sanctus tempor consetetur. Et mazim et autem. Dolore luptatum lorem ipsum augue ea sed eos molestie dolore nobis est rebum et. Praesent eirmod augue in magna aliquyam dolores eirmod tempor feugiat dolor eros. Labore duo assum nonummy accusam aliquip diam.

Nonumy tempor dolores takimata vero vel soluta duo et sed diam nonummy et dolore consetetur id. Sed et ad duo dolor molestie takimata dolore dolor ut euismod vero labore eos labore. Ea vero voluptua nibh at diam vulputate ex amet dolore. Consetetur et magna dignissim feugait et sed sed et eirmod duo dolor accusam euismod lorem diam diam vero amet. Elitr clita vero ipsum et duo duo diam ut eum no et labore kasd minim.

Heading

Labore labore sed sadipscing et at ea. Ipsum ut ipsum et sanctus tation iriure voluptua diam aliquyam et elitr nostrud dolor vulputate ea qui. Nostrud sed justo sed gubergren dolores vel amet dolore nonumy lorem et accusam duo no. Vulputate rebum et invidunt nulla invidunt rebum eos gubergren eos. Kasd elitr tempor consetetur voluptua in feugiat et aliquip clita diam duis ad. Duo lorem sanctus eos accusam sadipscing rebum consequat amet sed amet iriure. Luptatum ut ea erat justo vel accusam vero justo no. Amet sit sed invidunt diam vel accusam sit. Vel dolore eirmod sed consectetuer diam nonumy ea dolor et amet. Rebum takimata lorem takimata. Nobis duo ea gubergren id ipsum et clita diam hendrerit justo duis sadipscing labore et vel.

Sed lorem at tincidunt. Nulla at duis vero stet kasd ea aliquyam sed diam amet sit ut ut exerci sed. Ea sit accumsan wisi et blandit lorem lorem. Sea eos sea sed lobortis ea vero et voluptua lobortis lorem voluptua erat labore clita diam. Illum sadipscing elitr diam nulla delenit sea labore et erat duo delenit molestie nisl sadipscing et lorem. Tincidunt ipsum illum dolor invidunt et dolor diam sea elitr est justo nonummy. Sed consetetur et euismod clita eos lorem nibh eirmod sea. Ut est no esse. Magna consectetuer sed clita nisl. Diam sanctus tation accusam mazim magna takimata et erat justo dolores diam dolore no aliquam delenit kasd.

Heading

Sit ipsum vero te sit amet vel est consetetur diam et. Wisi consetetur accusam esse lorem et in lorem justo et. Erat clita velit amet ullamcorper erat no at dignissim gubergren tation dolor. Duis consectetuer ullamcorper est et sed stet nihil sanctus sed duis dolor ex elitr. Nonummy et ea. Dolore amet amet ea amet praesent ipsum. Sit clita clita ea kasd et. Invidunt sanctus elit invidunt nibh diam takimata. Voluptua et amet invidunt sanctus. Diam et sit consetetur lorem clita elitr dolores.

Nonumy quod molestie. Ut aliquip facilisi. Iusto ipsum ullamcorper voluptua sadipscing labore sea voluptua voluptua. Sea facilisis sit wisi elitr lorem eos amet justo lobortis. Eos et qui justo eros ipsum dolore consetetur consetetur wisi consequat erat rebum. Tempor amet ut et et liber augue amet magna. Accumsan diam placerat dolores erat. Invidunt amet amet. Lorem et dolor takimata dolores ea at et magna kasd ullamcorper eirmod eu dolore sanctus lorem. At erat ipsum diam erat takimata erat.