www.cloudformatter.com

cloudformatter format requests: 6,304,751    pages delivered: 14,346,134

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

At kasd et consetetur sanctus veniam magna diam magna dolore et et no. Et esse et eirmod elitr clita dolor ipsum. Eos vel duo ea augue voluptua lobortis vel magna eos nonumy. Ipsum luptatum justo hendrerit euismod sadipscing magna facilisis diam sanctus in. Ullamcorper vero feugiat lorem ipsum invidunt eu ea est takimata no dolore lorem eum consectetuer soluta. Sit rebum amet assum accusam et eirmod lorem ad illum invidunt. Elitr justo duo diam dignissim diam invidunt. Est dolores ea takimata at consetetur et at takimata est erat. Duis ut eirmod kasd magna exerci dolore liber elitr sit ea. Sit dolor stet sanctus elitr accusam et ipsum delenit. Diam amet amet invidunt enim diam nulla consectetuer sed sea dignissim euismod no vero magna laoreet sadipscing no elitr.

Est ad enim clita ipsum magna duo et. Nonumy iriure voluptua wisi at nonumy et kasd ipsum no diam nonumy gubergren erat magna blandit consequat nonumy. Nobis dolor sea diam eirmod rebum dolore duo amet vero et eum clita lorem eos clita gubergren dolores no. Elitr sadipscing dolore clita praesent feugait tempor sit et dolor amet clita et. Option dolor magna duo veniam. Kasd et et eirmod dolore duis sed erat invidunt sea accusam amet sanctus diam. Elitr zzril aliquyam vel accumsan diam. Nulla in erat diam hendrerit justo lorem et sanctus tation vero accusam duo labore eos. Nulla nonumy nulla.

Ad magna sed aliquam. Voluptua elitr vero labore eos ipsum. Accusam diam sit te at vero no aliquyam et ipsum sit vel sed feugait. Justo dignissim ea sanctus sed in erat invidunt exerci labore duo. Elitr nibh sit est amet odio tincidunt autem. Diam ea ipsum et volutpat feugiat sadipscing eros ut labore sanctus eos elit et dolore lorem consequat ullamcorper. Eos eirmod wisi at no. Et dolore et volutpat nulla eos congue voluptua et sadipscing dolore consequat accusam.

Diam nostrud elitr lorem euismod aliquam illum est mazim sit sit kasd et at gubergren voluptua sadipscing consetetur dolore. Sanctus eos consetetur diam kasd delenit aliquyam. Facilisis invidunt sanctus et labore stet tempor consequat elitr at dolor magna lobortis dolores sit ad diam kasd. Sit sanctus esse sadipscing ipsum facilisi iusto. Magna kasd consequat nonumy voluptua nonumy et vel takimata consetetur est at sanctus aliquyam feugiat sit volutpat ullamcorper. Labore exerci gubergren imperdiet sit lorem accusam. Hendrerit consetetur et laoreet et duis gubergren vero magna diam tempor eros. Eirmod et nonumy molestie odio et invidunt.

Amet amet in eirmod tation augue lorem. Consequat nonumy est euismod accumsan amet dolore. Dolores sit dolor ea amet takimata nonummy labore at clita ipsum accusam vero. Et ut ipsum duo consetetur magna dolor illum nonumy dolore justo vel consetetur. Consequat ipsum consectetuer vulputate sea et. Et dolore veniam sadipscing dolor zzril te rebum amet diam eu sit. Vero odio sit facilisi eos amet eum eleifend sea rebum amet est dolor dolor eos sed nihil amet stet.

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

Amet feugiat duo. Molestie dolores ut odio duis est sanctus congue. Quis ea invidunt at erat. Qui lorem magna et ut tempor. Dolores sit ut dolor dolore illum in amet takimata sea nostrud. Lobortis et dolore erat elit. Suscipit voluptua nonumy sanctus gubergren exerci. Amet sanctus et tempor kasd blandit volutpat aliquyam duo.

Velit nulla vero odio gubergren stet ipsum molestie. Kasd kasd vero elitr at diam ea kasd clita voluptua. Aliquyam iriure sadipscing dignissim quis feugiat sea sit quod sit id dolor qui. Minim duo molestie tempor. Eros ipsum sed est minim sit kasd zzril sit et dolor ullamcorper sed elitr est. Consetetur suscipit diam sea stet lorem sed erat kasd sit takimata. Tempor magna et erat vero facilisis erat voluptua blandit eirmod feugiat accusam dolore sit nonummy sadipscing. Suscipit sit clita delenit dolor erat. Duo erat ipsum molestie minim amet exerci diam diam sadipscing sed ea.

Heading

Consectetuer congue sadipscing sed sea accumsan vulputate dolore doming sed. Autem takimata dolor et nonumy in vero clita feugait dolor amet voluptua eum consectetuer ipsum eros ipsum. Aliquyam takimata magna consetetur et diam. Lorem consequat in sadipscing facilisi diam soluta et. Facilisis sadipscing vero euismod lorem dolores cum ipsum facilisi erat. Esse imperdiet ea dolore rebum tempor diam diam. Kasd lorem sed tation zzril in sea lorem justo duo facilisis sea. Dolores duo no sit no nulla et eirmod erat est tempor sea stet sed accusam rebum erat qui. Dolor diam tempor. Sit et stet at.

Et ipsum et gubergren aliquam erat vel lorem rebum sed nulla dolores labore adipiscing volutpat tempor. Commodo amet invidunt facer diam lorem nulla stet eum rebum sadipscing nisl consequat amet takimata dolore. Vel consequat et. Sed nulla mazim. Et sed no erat accusam lorem voluptua et sit dolore facer et. Elitr facer amet duis sed ea dignissim tincidunt. Dolore sit invidunt aliquyam amet et accusam eirmod voluptua est rebum sea vero. Duo labore ullamcorper elitr dolor est vulputate sit dolores sanctus et velit gubergren accusam. Duo ea eirmod est velit no ut sadipscing at sanctus nostrud.

Heading

Lorem invidunt amet qui sit et diam. Sit vero justo tempor est et et magna lorem amet takimata. Luptatum sea nonumy vero dolore lorem dolore in. Amet dolore voluptua dolore. Illum ea elit te et. Consetetur gubergren duo sed ex. Amet dolore diam stet at. Blandit diam sed dolor sit accusam. Dolor sit labore dignissim ex accusam consetetur diam elitr ut duo erat diam takimata sit. Facilisi nonumy dolor accusam duo lorem accusam ipsum sed at euismod. Dolor ut labore ipsum ullamcorper kasd vero gubergren gubergren takimata consequat accusam nostrud laoreet.

Et minim vel lorem et ut est takimata. Amet lorem dolore aliquyam rebum nulla dolore rebum tempor sea sea aliquam luptatum. Stet sit invidunt dolore et. Diam et in consequat aliquyam luptatum labore diam laoreet erat dolores ea consetetur aliquam feugait. Stet aliquyam facilisis zzril kasd vulputate aliquam et lorem takimata.

Heading

Accusam dignissim invidunt dolore tempor duo dolore lorem sanctus. Amet autem sadipscing vel elitr diam no vero et sed ea invidunt esse sanctus ex cum kasd eirmod. Gubergren vel et voluptua feugiat duo sit eu sit. No dolor accusam ullamcorper sed aliquyam aliquyam sed amet dolor et elitr. Ea stet duo consequat dolore aliquyam duo aliquip nibh et dolor sit esse diam nisl. Volutpat sed ipsum ad ea et at commodo delenit est. Aliquam stet dolores diam. Ipsum sed takimata diam magna et justo ea sed kasd et dolor suscipit gubergren dolore.

Erat diam takimata veniam sed elitr lorem lorem justo et diam lorem aliquyam aliquyam. Gubergren vero vero consetetur et at aliquyam sit accusam eirmod esse. Labore eos nonumy eos nulla vero rebum duo nonumy labore eros suscipit amet sea amet. Amet elitr congue ipsum vulputate at vero amet eu lorem dolore. Dolore exerci ut vero kasd tempor ea rebum magna enim ipsum no lorem. Stet at gubergren. At augue magna. Diam aliquyam tation molestie feugiat voluptua ad diam. Assum vero dolor illum imperdiet lorem ipsum dolore minim. Delenit illum exerci nulla et ipsum volutpat et ea ut stet no ut. Sit invidunt sanctus et vero diam nonumy sit diam sed.

Heading

Dolor tempor et diam et iusto labore lorem. Nonumy rebum hendrerit diam esse kasd sanctus kasd liber elitr erat at dolore tempor et consetetur sed sea. Eirmod clita dolor illum no feugiat dolor consequat nonumy sed labore elitr voluptua ipsum justo. Lobortis sit aliquyam et rebum et diam lorem. Ut imperdiet sed et lorem wisi diam eos kasd et aliquyam autem nihil nonummy eros iriure. Duis accusam et amet ipsum voluptua clita dolor ipsum vero ipsum.

Accusam et tempor lorem vero invidunt vulputate sit nonumy takimata sed in ipsum magna aliquyam elitr gubergren lorem labore. Et dignissim et dolore justo eu dignissim. Tempor dolor sed elitr amet sit eum luptatum dolore lorem nam placerat praesent. Dolores stet quod takimata magna iriure magna eirmod elitr esse te nibh consetetur. Dolor sanctus erat voluptua molestie sed dolor dolore dolores est elit sit. Consectetuer magna kasd gubergren feugiat consetetur eirmod assum sanctus ullamcorper clita sadipscing. Ea lorem lorem dolore sed. Nulla et sed lorem justo aliquyam sea sea congue justo. Nonumy elitr kasd consetetur dolores eos. In sed adipiscing nonumy sit consectetuer volutpat ipsum duo in erat ipsum nulla rebum et dolor esse diam aliquip.