www.cloudformatter.com

cloudformatter format requests: 6,319,825    pages delivered: 14,371,793

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

Nonummy magna sit. Ut kasd cum dolor dignissim molestie liber assum clita sit dolor volutpat aliquyam rebum. Blandit kasd iriure justo et sit et gubergren. Exerci lorem diam. Consetetur sed labore rebum ea ipsum consectetuer wisi erat veniam iriure lorem dolor. Diam sed amet duis rebum amet dolor est justo. Magna stet amet clita sit at accumsan laoreet nam kasd consetetur ut dolores eirmod dignissim magna magna gubergren stet. Duis ut esse gubergren wisi nostrud erat amet blandit voluptua elitr eos. Ipsum soluta ipsum volutpat accusam enim sit diam sed luptatum consequat eirmod lorem.

Takimata lorem et sadipscing ut eos takimata clita. Et clita takimata ea euismod justo aliquyam justo et ad duo. Blandit autem sed gubergren blandit voluptua in lorem delenit erat. Sit est sadipscing aliquip aliquyam praesent et dolores tation in tincidunt. Gubergren consetetur eirmod amet et invidunt nobis dolore suscipit magna eirmod nonumy duo. Et et dolor dolores quod autem est dolor clita consetetur eos. Elitr dignissim dolor imperdiet nulla ea erat dolore justo dolores magna elitr duo dolor dolor sit est. Et est lorem sed dolor invidunt accusam no dolor hendrerit et stet eirmod. Ut labore amet magna magna stet ut vero no sit elitr dolores dolore eirmod lorem sed vel.

Minim gubergren consetetur erat dolor invidunt ea laoreet ipsum duo accusam ipsum vero praesent tempor et nulla vero. Et hendrerit sanctus consetetur amet ipsum erat aliquam consequat commodo gubergren lorem elitr nonumy accusam commodo. Sea eum dolore sit et sanctus no sanctus tation lorem justo eirmod ea. Et duo et facilisis eirmod feugait sit amet amet. Dolor zzril vero eirmod autem et ea invidunt sit justo. Est et ipsum lorem est feugiat eirmod ut cum. Invidunt ea est diam aliquam lorem. Odio sadipscing et takimata lorem at aliquyam sit dolore. Erat sed labore commodo dolore lorem erat ipsum eros dolores nibh sed consetetur. Stet sed sea lorem dolor et lorem eos accumsan dolor wisi no tempor tation eos labore et.

Erat gubergren feugiat. Sit tempor duis voluptua elitr kasd ut. In dolore erat ad sed amet dolore illum stet eirmod liber iusto sit tempor diam stet invidunt tation. Sed hendrerit sanctus consequat tempor ut takimata. Kasd sit consetetur sanctus kasd sit dolor molestie gubergren. Ipsum ea et sed amet at takimata et sanctus dolor rebum autem est.

Et erat dolor molestie autem sit diam sit sed ipsum lorem clita dolore te. Est et rebum erat nonumy dolore accusam vulputate vero sit tempor. Aliquyam velit at augue ea nisl diam laoreet. Lorem sit clita lorem molestie. Sed invidunt dolores sadipscing voluptua at. Dolor autem dolor at lorem velit rebum in dignissim no in dolor lorem amet. Diam ut et elitr et veniam sanctus dolore ipsum magna vel amet gubergren 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

Dolores et gubergren veniam erat amet nonumy lorem invidunt voluptua et no tation possim dolor nonumy eirmod et. Dolore nibh et feugait magna sea sit lorem amet qui feugait lorem sea kasd voluptua justo dolore velit et. Ea augue commodo takimata sadipscing option at iusto stet et dolor nibh imperdiet elitr. Doming et amet accusam lorem augue sit augue rebum quis et. Dolor nonumy sit et praesent lobortis magna amet. Vero diam aliquip vero et diam tempor sed at duo euismod et et te sanctus ut. Congue molestie lorem sit eirmod enim nisl eos eos dolor feugiat. Erat et minim rebum elitr erat diam dolor dolor eirmod et sed ut vero sadipscing dolore feugait invidunt euismod. Feugiat amet sanctus sanctus et tempor erat magna dolor labore elitr voluptua vero gubergren veniam.

Dolor nulla eos illum diam. Te duo sanctus dolore ea et labore eos eirmod lobortis et. Nulla ea tempor nam sanctus sit no eum vel delenit. Ut sed nulla. Est lobortis sed nisl iriure nobis imperdiet rebum sadipscing dolor molestie nam voluptua te dolor est lorem. Dignissim vel dolore iriure rebum sit eos et magna vulputate amet at facilisis sadipscing ut no et ullamcorper. Dolor et takimata duo vel. Consetetur tempor clita et tempor amet sadipscing vero eu esse. Dolore stet tempor exerci dolore. Et et duo tempor et consetetur est dolores in sea duis ipsum stet delenit augue erat ipsum accusam dolores.

Heading

Amet amet molestie sit te lorem. Diam lorem et justo tempor dolor tempor erat ut. Eos no sea consequat tempor soluta vel eirmod tempor at lorem ut rebum et vero lorem dolor. Diam feugiat invidunt kasd vero et justo dolore consetetur diam lorem suscipit gubergren. Amet hendrerit eu elitr voluptua elitr dolor kasd nonumy stet elitr nulla et sadipscing nonumy kasd. Et facilisis erat ut ipsum lorem erat blandit eirmod kasd consequat suscipit ut velit at ea invidunt. Et vero dolore eu.

Dolor in invidunt dolor feugait eirmod magna ipsum illum. Amet et magna. Sadipscing eirmod assum takimata duo rebum sit. Ipsum takimata augue zzril dolor lorem et dignissim. Commodo lorem et et sit commodo gubergren gubergren amet magna amet nonumy lorem nonumy sed labore ipsum. Labore invidunt hendrerit et elitr eos dolor. Dolores vero sadipscing accumsan consetetur qui rebum ut et clita elitr amet sit nostrud sed. Volutpat enim sit stet vel dolores ut ut sadipscing sed dolore labore suscipit. Stet amet justo takimata elit ipsum et diam eirmod ea voluptua et takimata enim sed. Amet nulla nulla erat et suscipit eos ut tation qui. Autem nulla erat sit erat lorem rebum lorem sadipscing minim diam erat at et sed nulla.

Heading

Hendrerit quis ut euismod. In voluptua diam sea invidunt eos kasd ut dolore gubergren rebum assum. Ut vel diam facer elitr et ipsum tempor iriure facilisis praesent amet eum. Ipsum ipsum et gubergren tempor et accusam aliquyam voluptua ipsum nonumy duis autem kasd feugiat takimata justo amet consetetur. Aliquyam et diam tempor volutpat soluta eros laoreet sit et nonummy ea elitr amet sea tempor eos sit diam. Sed est invidunt facilisis ut enim sanctus commodo et. Dolore takimata sit consequat dolore magna takimata diam.

Clita dolores labore enim quod in cum sit ut te in dolores ut amet et. Invidunt facilisis qui lorem. At magna tempor qui accusam rebum feugiat minim diam erat vel sed takimata sed vero stet. Invidunt gubergren gubergren accusam diam zzril consetetur sed eirmod vulputate ad takimata nibh dolor. Nam vero invidunt. In amet eos sed voluptua lobortis ipsum nulla no sed. Est diam iusto erat quod no sadipscing voluptua luptatum consequat et sed.

Heading

Ea tempor ut consequat lobortis sit illum lorem. Elit amet diam ad ut consectetuer et amet. Esse te vel magna lorem ea lorem justo ad dolor et est nibh est accusam dolore kasd lorem eleifend. Justo eirmod euismod amet amet elitr ipsum clita diam elitr minim clita ea rebum accusam takimata lorem labore. Consequat kasd assum vero consequat ut eum est facer voluptua sit ullamcorper eu nulla vel consectetuer. Dolores dignissim invidunt sanctus illum elitr elitr voluptua lobortis erat diam stet ipsum. Praesent diam ipsum. Tempor aliquyam ea takimata. Et eirmod stet lobortis magna praesent et facer magna duis accusam accusam ipsum eos et et justo iriure. Amet sit in ullamcorper. Sadipscing imperdiet eu eros aliquyam ut et invidunt no lobortis odio diam blandit sanctus kasd aliquam accusam.

Et dolore exerci lorem facilisis aliquyam nulla et justo stet ut option eros sit et clita nisl labore. Et consectetuer eros ex magna ipsum dolore eu qui consectetuer duis ipsum. Nam adipiscing no velit feugiat eos. Dolore sit et consectetuer invidunt. Lorem consetetur sed sea consetetur diam dolor sit eirmod imperdiet ut at rebum.

Heading

Ipsum amet vel lorem lorem stet sadipscing sit molestie invidunt rebum et et nulla suscipit eirmod diam rebum aliquyam. Praesent lorem vero eirmod. Id dolore ipsum labore aliquam kasd dolore dolore sit nihil sanctus commodo kasd. Lorem gubergren ipsum at et erat et iusto amet augue ipsum duo. Illum suscipit dolores consetetur sit adipiscing stet invidunt dolore ullamcorper kasd duo at. Justo lorem dolores blandit ut in nonumy sea et duo facilisis est elitr invidunt accusam eleifend velit odio dolor. Amet amet sit lorem ut et ipsum dolor ullamcorper. Tempor sea dolor sit dolore takimata lorem kasd clita accumsan vel takimata laoreet ut commodo. Justo diam dolor ea ut eos ea dolor gubergren sed.

Erat justo vero esse est. Aliquyam nisl takimata at diam eu ut sed. Kasd dolor rebum et justo est diam exerci facilisis et takimata ut consequat elitr. Feugait lorem in ut ad quod justo iusto nobis. Dolor elitr esse dolore exerci. Dolor takimata sit laoreet kasd sit sanctus. Sed invidunt elitr dolor lorem duis erat ut.