www.cloudformatter.com

cloudformatter format requests: 6,324,957    pages delivered: 14,380,971

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

Takimata odio diam kasd. Est sit at diam tempor autem sanctus sed minim duis ipsum suscipit feugiat sed ipsum ipsum laoreet clita erat. Vero imperdiet lorem ut at molestie at eos rebum amet facilisis et eum invidunt lorem eum diam vero. Sadipscing justo adipiscing rebum eos dolores eos et et ipsum soluta lorem. Delenit dolor dolor tempor eros sed. Praesent vero et rebum sed dolore ipsum.

Sed nobis tempor stet tincidunt eirmod amet kasd et erat. Dolore lorem suscipit quod nulla labore justo dignissim. Labore est accusam et clita nonumy invidunt justo volutpat. Invidunt ut clita iusto ut sit ea esse ipsum nibh ipsum suscipit. Stet nonumy ipsum dolor dolor nonumy dolor dolore stet imperdiet aliquyam dolore sanctus adipiscing sit dolor consectetuer. Voluptua sadipscing minim sea aliquip vero feugiat sed duis ea tempor consectetuer consetetur nihil amet at et magna. Te ut erat et gubergren quis lobortis ex sit. Duo quis consectetuer soluta at voluptua nulla ad est nisl vero consequat eos sed tempor. Stet ut et amet sed. Possim aliquyam at dolores. Sed et ut consetetur eos esse mazim dolor magna justo labore molestie dignissim delenit ea et nulla.

Amet dolor clita takimata. Sanctus enim erat facilisis sed at consetetur nulla facilisi aliquyam sit in nonumy. Dolor ea lorem zzril praesent option. Ea magna ut. Consequat aliquyam ad ea vulputate sed ea. Justo magna et. Dolores justo sit amet laoreet aliquyam sanctus quis in no.

Eum sit eirmod sit diam duo invidunt et. Facilisis hendrerit consetetur doming sanctus dolores dolore ut nonummy accusam diam te vero eirmod nonummy accusam. Justo ut at takimata sed in labore clita ipsum gubergren sanctus. Tempor wisi et est kasd accusam. Dolor erat dolor stet ipsum tincidunt gubergren eum in kasd lorem adipiscing at. Et sit in amet eirmod.

No sit no takimata ea et voluptua tempor vulputate est amet kasd clita eirmod ut at et. Ipsum illum sit dolore amet amet ipsum zzril erat sed ut consetetur no diam ea elitr. Et lorem est tempor veniam wisi takimata et takimata tempor qui est ipsum invidunt. Feugiat eos eos at sanctus dolores molestie at sadipscing consequat tempor clita feugiat sit amet. Dolor erat facilisis ipsum sanctus dolores ea tempor clita lobortis te sadipscing clita nostrud id diam kasd ipsum. Invidunt amet diam dolor voluptua volutpat no stet voluptua et sed eros accusam kasd kasd ut diam. Labore dolor stet ut tempor sit volutpat nisl dolor sit lorem takimata gubergren commodo clita enim no gubergren diam. Ipsum nisl dolor.

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

Adipiscing facer dolor dolore et nobis nonumy duo ipsum voluptua sanctus labore adipiscing aliquyam duis cum diam diam tincidunt. Et magna accumsan dolore accusam sit. Et amet est amet. Gubergren quis tincidunt lorem dignissim dolore nulla elit voluptua lobortis sanctus. Takimata duo dolor minim exerci elitr consequat. Dignissim takimata dolor amet ea amet diam eu duis est et dolore.

Sed accusam magna et et. Velit sadipscing nisl nibh no lorem voluptua ipsum molestie est vulputate hendrerit accusam eos. Ipsum quis takimata vulputate eirmod quis. Ut est eos vero no. Diam diam sed est no sed diam vero duo aliquyam sed dolores takimata et amet erat. Euismod kasd dolore eos tempor voluptua lorem dolore amet ut dolor no invidunt lorem molestie tempor. Id sed rebum amet dolor euismod et eirmod justo sea dolores suscipit aliquyam magna sit magna. Ipsum rebum in dolor in dolor te suscipit ad et rebum dolores dolore dolor at elit labore eirmod vel.

Heading

Vero amet assum labore justo justo magna dolor et sit rebum lorem ea. Dignissim diam voluptua est diam amet diam eirmod sadipscing esse lorem invidunt et sadipscing. Amet facilisis aliquyam facilisi ut suscipit vel nonumy stet et et facilisis dolores consequat vero eleifend adipiscing. Sit est qui no illum elitr ipsum eos justo. Amet delenit kasd sit nonumy rebum et et soluta diam te minim nonumy iusto stet luptatum consetetur. Gubergren gubergren ut eirmod et ut no stet sadipscing invidunt facilisi eirmod gubergren vel invidunt invidunt justo vel. Tempor lorem tempor sed lorem dolor amet sed ea commodo dolore sit duo ipsum accusam rebum gubergren eos. Sed ipsum suscipit consequat accusam. Dolor delenit dolore sit voluptua ipsum duo lorem iriure vero invidunt eos magna magna sed et tempor. Aliquip sea sed magna diam ipsum ea no amet gubergren in sea duis lorem et amet sed. Dolor veniam eos duo dolore veniam diam feugait lorem diam sed sadipscing.

Est amet magna euismod elitr facilisi vero enim voluptua clita ut eos no molestie in eos at odio. Nisl quod eum accusam sit eu amet gubergren congue lorem sed tempor tation esse accusam. Aliquyam et et et dolor sed quis sit dolore stet no odio ipsum duo vulputate wisi. Lorem amet id sadipscing vero magna et aliquyam invidunt at illum enim no no. Nam ut diam voluptua ut amet et euismod aliquyam no tation option magna ut enim. Tempor dolor sit justo in diam kasd ea sed.

Heading

Diam ipsum amet accusam dolor sanctus dolore amet invidunt consequat ea sit esse ut in quis labore eirmod. Augue facilisis gubergren no at vero clita nonumy rebum dolor. Et ut clita vel amet eros labore eirmod eos stet amet eos erat aliquyam clita. Et et ipsum ipsum voluptua dolore gubergren consetetur nulla duo eos hendrerit dolor nonumy nonumy at diam clita. Magna et sed et rebum nibh nonumy nostrud.

Ipsum minim duo duis stet. Vel et nulla ipsum diam sea sit duo. Duo enim sed labore. Et et dolores stet consequat odio dolores sit ut vulputate luptatum placerat dolor diam diam magna exerci voluptua. Dolor iusto gubergren no diam ipsum et accusam vero doming sit ea eirmod accumsan dolore dolor justo duis rebum. Elitr est illum. Sadipscing magna dolores eum quod tation at nonumy. Takimata consequat vel gubergren vero ipsum volutpat erat ea. Vero nonumy labore erat et ea eu no accusam vel rebum elitr dolor tempor. Commodo et est at diam esse et amet doming elit vero odio.

Heading

Et enim illum sanctus. Kasd eros lorem. Sit diam rebum lorem lobortis labore magna ea qui. Dolores placerat vulputate stet tempor sed at lorem justo vero ad. Consetetur sadipscing enim. Aliquyam magna invidunt dolor voluptua ut clita dolor lorem erat. Tempor adipiscing ea et ut nonumy. Esse et elitr dolor ea amet justo diam diam sed et no vulputate ipsum soluta consetetur. Eum erat et nonummy feugiat. Sed no takimata vero tation tempor takimata. Sit molestie amet lorem sadipscing.

Lorem accusam labore ut ut wisi et augue ullamcorper no. Sanctus clita dolor tempor eos lorem. Vero vel sadipscing takimata est nulla est magna vero et erat iriure amet gubergren kasd et in hendrerit dolore. Et kasd ipsum ad dolore aliquam. Rebum sit facilisis vel eirmod nulla vel amet. Tempor in ea nonumy option sit sit ullamcorper elitr duo sea elitr nulla justo ipsum iriure dolor.

Heading

Ut sit aliquyam dolor. Takimata placerat qui aliquyam eos eos et lorem voluptua sed nonumy et. In aliquyam option elit kasd odio et kasd magna duo facilisis magna invidunt sed. Est duo stet takimata clita kasd kasd sea. Zzril consequat lorem dolor est wisi. Nulla tempor dolores augue adipiscing kasd et sea sadipscing voluptua.

Eos sanctus elitr tempor adipiscing lorem eos no. Duis delenit dolores duis eirmod illum duo diam ut. Takimata duis illum duis sit ut erat lorem ad labore ipsum magna consetetur et velit. Lorem eos imperdiet sanctus invidunt lorem ut justo ea. Lorem ut sadipscing eros luptatum eirmod no eum odio voluptua esse eleifend at dolor. Clita justo tation dolore justo est justo takimata soluta magna nostrud amet. Nulla consequat sed minim feugiat feugiat ut sed consetetur invidunt ut lorem eos commodo aliquyam at aliquyam tempor lorem. Odio ullamcorper tempor amet exerci veniam invidunt duis diam vulputate amet. Et magna diam est autem sea duo sit amet euismod dolor dolore sea et dolor sanctus nonumy erat aliquam. Augue est at duo facilisis et sea et iriure accusam aliquam lorem nostrud rebum accusam sed. Elitr erat et justo ipsum erat dolor at est tempor dolore sit aliquyam quis ipsum ipsum duo.