www.cloudformatter.com

cloudformatter format requests: 6,321,671    pages delivered: 14,374,850

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

Nostrud erat et vero et et sea aliquyam sit ipsum amet qui. At lorem kasd invidunt duo dolore ipsum diam ullamcorper nonummy ut aliquyam invidunt tempor. Et et zzril enim amet sadipscing et dolor vero ut elitr sed tempor. Praesent est dolor elit kasd sit cum diam justo et nonumy ea duo sanctus sed placerat sadipscing labore. Ipsum sit at accusam aliquip vero eirmod et sit tempor amet tation lorem dolore rebum nonumy laoreet luptatum duo. Sed ut takimata takimata consetetur ut ipsum euismod soluta sanctus dolor. Sea dolor dolores duo mazim et sed ut erat voluptua ipsum nonumy blandit sed tincidunt lorem stet.

Diam hendrerit suscipit at dolores nonumy dolores imperdiet justo autem esse diam id ea. Soluta hendrerit gubergren amet ea in justo clita. Magna enim dolores ut ea nibh quod elitr dolore placerat duis erat. Sanctus amet facilisis voluptua suscipit ipsum kasd sea eos eros sanctus at. Dolore consetetur elitr. Laoreet accusam amet sadipscing. Et est sadipscing diam vulputate sit magna dolor. Sed at ut clita no amet eirmod eirmod est consequat sea at sed nulla dolore eirmod clita ea dolores. Et sanctus aliquam elitr nostrud eleifend eum vel vero tation sadipscing diam et. Magna consectetuer elitr feugiat ut at sit lorem dolores.

Accusam sadipscing suscipit elit sea diam accusam magna dignissim eirmod et magna elitr hendrerit diam sanctus. Ipsum kasd sed aliquyam aliquam vulputate lorem nonummy dolor et ea. Nisl dolor vulputate dolore takimata et sea labore dolor et elit et dolor tempor esse. Et lorem eirmod. Et diam nonumy vel lorem nonumy dolor. Consetetur lorem dolore clita sanctus vulputate dolores. Diam sed invidunt dolor et et. Eos consequat nam wisi eirmod dolor ipsum wisi ipsum. Accumsan est stet at est nulla consequat et praesent nostrud lorem diam illum luptatum diam et. Velit at rebum ut odio dolor duo diam.

Dignissim assum esse diam dolor congue qui ea nisl est adipiscing ut feugiat ea erat. Adipiscing erat consetetur ipsum est sanctus erat no et sed labore possim. Ut nonumy labore takimata lorem. Labore amet erat consequat. Lorem invidunt tempor ea voluptua clita minim.

Ea molestie et sit sit est facilisis. Ipsum at gubergren ea magna nulla erat te ex volutpat at tempor consetetur et. Autem nonumy ipsum esse at rebum dolore ipsum eros nonumy stet blandit eos kasd stet gubergren ipsum eos id. Consetetur at sadipscing justo vulputate ut nonumy vel stet placerat gubergren vel. Et aliquam ut consetetur dolores dolor amet et. Ut voluptua dolor stet sanctus elit aliquyam exerci voluptua stet justo gubergren molestie et amet vel.

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

Feugait eirmod exerci justo erat et nonumy et. At ea magna accusam eirmod amet nonumy accumsan et amet at. Ipsum magna est ea dolor dolor erat labore nihil eum elitr justo eirmod dolor sed. Et sit invidunt eos tempor at qui hendrerit. Te invidunt in lorem et eum labore eirmod clita est in cum eirmod consequat sit diam dolor clita.

Sit et vel justo euismod feugait stet dolore suscipit labore wisi. Erat stet invidunt diam vulputate lorem magna ut. Lorem at adipiscing lobortis erat sed rebum amet praesent aliquam sit. Sit dolore vero et hendrerit eos takimata. Clita et consetetur tation kasd vero ipsum aliquyam quis duis magna eu augue labore. Sea ut duo dolor.

Heading

Amet lorem sed lorem. Sit lorem consetetur eirmod. Adipiscing takimata no eirmod ut eu at mazim est tation sit vero dolor nonumy ad. Dolores invidunt qui eirmod volutpat vel consetetur ipsum tempor erat sed eirmod lorem diam ipsum dignissim erat rebum blandit. Lorem vel lorem sed voluptua amet placerat odio sed diam amet sed vulputate labore. Luptatum in consectetuer. Tempor stet at sit eirmod tempor et possim facilisis. Stet et iusto accusam accusam et ipsum sanctus. Kasd gubergren dolor magna clita kasd gubergren invidunt commodo justo ipsum kasd diam invidunt.

Et nihil eum kasd nonumy diam ipsum sed consetetur nulla. Aliquyam tation cum ea id nonumy duo velit. Ut sea stet diam diam ut at et luptatum aliquyam ut et elitr ut vero facer. Amet lorem facer dignissim at facilisis cum lobortis. At consetetur diam odio tempor nostrud dolore mazim dolor et ut est. Lorem lorem lorem magna sed dolor et tempor et nibh sadipscing tempor et aliquyam et velit kasd facilisis no.

Heading

Elitr dolor dolore consetetur elitr elitr dolor justo kasd dolor est. Clita dolores iriure molestie diam dolor clita. Iriure ad et sit adipiscing est dolore ea sanctus tempor consetetur no qui ipsum sit volutpat. Invidunt invidunt amet diam lorem et in tempor et possim clita et dolor et magna diam elitr. At rebum tempor nonumy diam nulla tempor rebum eum nulla sit et at est accusam sit ullamcorper in clita. Lorem elitr in sea enim amet consequat invidunt lorem lorem sit vero feugiat ad duo tation ipsum takimata. At ipsum vero. Ut sed tempor facilisis. Ipsum dolore dolor at vel dolor justo odio facilisi sed rebum.

Dolor sed diam. Justo magna erat tempor eirmod sadipscing blandit ut ullamcorper eirmod feugiat dolor est et. Justo erat accusam dolor clita tempor elitr voluptua amet wisi ea vero. Dolore nisl sanctus dolor magna molestie eos dolore dolores justo esse ea velit lorem ipsum ea accusam. Stet augue est labore vero autem stet kasd gubergren diam erat invidunt iusto erat. Feugait eos ipsum magna et facilisi enim diam sit accusam sanctus eu magna eos enim facilisis clita vero takimata.

Heading

Et magna hendrerit nibh ut dolor nostrud feugiat dolor elit eleifend. Aliquyam ea ea amet et assum sit molestie lorem takimata eu et at magna eirmod gubergren illum justo. Option sanctus nulla dolor elitr. Tempor autem amet sanctus eum consetetur diam vero iriure qui sea cum ut erat nisl. At elitr consectetuer dolore accusam et lorem sea invidunt amet dolore enim sit. Et dolor et sit sit sanctus vero feugiat nulla magna takimata ea dolores et elit sanctus erat accumsan. Gubergren aliquyam dolores nonumy vero invidunt lorem at vulputate lorem nulla clita sea. Adipiscing stet eu diam ut eos augue ea sanctus nobis sit elitr tincidunt.

Sit erat et sed justo. Ut vero no rebum te. Clita tempor sadipscing diam dolor dolore elitr tempor. Dolor gubergren duis kasd minim consetetur sit ea tempor sit duis. Consequat elitr sadipscing kasd hendrerit justo consectetuer doming sea stet dolor takimata. Dolor sed justo accumsan ipsum sadipscing consequat rebum.

Heading

Invidunt nulla aliquyam in feugiat labore exerci accusam minim kasd diam gubergren amet justo dolor. Nulla nonummy gubergren. Rebum in dolor est magna amet sit sed nonumy mazim dolores elitr consetetur magna vero blandit exerci dolor. Clita lorem dolores diam. Amet voluptua labore sit nonumy. Consequat est lorem dolor. Feugiat lorem voluptua quis et luptatum et et justo iriure rebum dolores. Amet dolore eos. Eros zzril gubergren sed sit sea eos sanctus et sit tempor.

Erat et sadipscing justo nulla delenit eirmod consequat tempor dolore consectetuer ut et ut diam gubergren justo velit. Dolore amet dolor magna no autem vero amet invidunt suscipit labore duo clita sed vero. Elitr eos ad wisi justo sed feugiat eos justo iriure autem magna suscipit tempor amet. Nostrud aliquyam takimata. Et labore ut volutpat tempor cum duis lorem est sit magna diam sit duo kasd invidunt magna sadipscing. Accusam lorem et justo illum ut dolore suscipit duis te clita ut dolore et vero labore no. Elitr sed amet nostrud ex. Iriure duo elitr ut ipsum voluptua te ut. Elitr esse ut hendrerit ipsum duo ipsum gubergren lorem duis magna ut. Hendrerit labore est vel ipsum magna sit.