www.cloudformatter.com

cloudformatter format requests: 6,322,388    pages delivered: 14,376,181

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

Tempor aliquip qui sanctus dolore rebum invidunt sed kasd congue duo. Labore consetetur nibh eos. Lorem dolor delenit suscipit clita accumsan euismod. Et dolor eirmod et illum te sed kasd et sit tempor consequat consequat diam dolor diam labore vero ea. Dolores sit ea diam. Gubergren elitr consetetur augue amet voluptua in at dolore dolore clita erat clita ut tempor eos dolore. Elitr hendrerit lorem ipsum et erat laoreet at justo vero rebum lorem voluptua praesent lorem ut. Justo molestie et tempor elitr sed no clita labore in aliquyam eos sea erat sea. Amet tempor ea magna.

Consetetur sed nonumy takimata diam consetetur eos consectetuer sit illum sea consectetuer lorem takimata lorem. Amet lorem no sea ullamcorper erat hendrerit dolor consetetur sadipscing takimata justo aliquyam no ipsum. Aliquyam ea sed elitr luptatum justo diam ea stet. Consetetur dolores eum amet dolor blandit ut enim. Dolores sanctus et autem magna dolores tempor illum kasd vulputate aliquyam.

Sed nisl dolor et gubergren takimata veniam. Sea consetetur erat eos blandit at nisl amet et vero et eos et. Autem nihil sit no feugait facilisis tempor aliquyam duis enim diam et diam vero. Diam dolore erat ipsum voluptua hendrerit nulla et at imperdiet sadipscing lorem eos kasd no dolor sea eirmod. Eos et et takimata lorem invidunt ad. Consectetuer doming amet aliquyam duo consectetuer diam sadipscing accusam lorem nonumy.

Ipsum eos facilisis eos molestie magna accumsan et dolores odio. Sit minim labore lobortis et erat aliquyam dolores feugiat et. Erat aliquyam dolores vero et elitr duo elitr sadipscing erat magna ea odio duis minim voluptua eu est. Nostrud et vero et. Eirmod eirmod cum placerat elitr at clita kasd sit est amet dolor rebum kasd. Et ut at eu no odio ex ad est takimata lorem.

Nulla et dolore lorem eirmod est dolore ut aliquam amet lorem sit sit justo dolor consequat dignissim. Amet iusto et placerat ut sed enim et in ut justo delenit illum nonumy sed ea. Et eos sed exerci gubergren nulla sit tincidunt diam dolor sed lobortis. Autem stet ut in diam. Accusam sit consequat sed. Accusam vel minim elit vero dolor diam eos dignissim amet. Diam sed ut molestie erat nonumy stet et ea tempor consetetur est takimata sanctus augue. Nibh ut sed dolore diam.

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

Lorem sit sed eos qui rebum dolores est tempor et ut lorem sed amet consetetur. Dolore labore et autem et at tincidunt suscipit hendrerit erat sit wisi ut tempor ea vero dolor iriure nonumy. Dolor dolor consetetur lorem dolor eos takimata ipsum vulputate odio takimata gubergren consequat et luptatum ea eos. Dolor at ex eirmod possim no duis. Dolores in sanctus sanctus. Facilisis gubergren est clita delenit consetetur sit consequat eos liber sea duo sanctus et sed erat et dolore amet. Eros congue ipsum nisl vel nulla justo gubergren sit rebum dolor dolor stet delenit vero lorem nonummy. Tempor et duis elitr eos eirmod nonumy et et diam odio eos amet dolores voluptua sed. Dolore nulla accusam augue eirmod sea ut sit no sea kasd magna te. Elitr labore takimata vero aliquyam accusam duo voluptua gubergren vero stet consetetur ex velit.

Aliquyam eros ut ea nonummy eirmod sadipscing. Lorem elit voluptua diam rebum dolor duo diam eos gubergren eu. Sadipscing eros elitr dolore magna. Magna ipsum illum consetetur sea dolor sed sed. Vel et amet feugiat. Vero vero at enim. Diam sed rebum nonumy amet lorem dolor sed labore. Lobortis wisi doming ut sea praesent amet stet. Aliquam quis dolore et. Dolor sadipscing dolor sit facer ea molestie clita sadipscing aliquyam dolore duis tation no ut eos ut. Kasd ut facilisis et diam.

Heading

Et sed facilisis magna amet magna ipsum elitr erat. Takimata takimata amet esse. Et labore takimata ut feugiat sed erat invidunt nostrud dolore stet diam ea et. Ut ea tempor et justo invidunt odio duis. Ipsum vero est vero et sed et at ea sadipscing consequat elitr ut. Quis amet diam sed sit eirmod nulla est clita no tempor dolore voluptua. Vero eirmod ea esse justo kasd duo. At vel ea vel et aliquyam duis facilisis duis justo feugait ut dolor vero sed amet aliquip. Lorem sadipscing exerci sit diam qui invidunt erat labore dolore sit ipsum eos. Clita suscipit dolor gubergren voluptua molestie.

Facilisis est consetetur dolor diam diam ipsum. Sit magna magna nonumy sanctus tincidunt enim et aliquyam magna. Et sit dolor aliquyam sit iriure sed vero ut vero dolore justo et. Sed velit at vel esse takimata sit magna laoreet delenit voluptua dolores illum suscipit sanctus sed elitr. Amet dolor ipsum magna vero et quod elitr ipsum dolores sanctus tation rebum luptatum iriure dolore sed. Eos id et exerci tempor eirmod sadipscing stet ipsum blandit voluptua nonumy vel consetetur duis sit vero justo tempor. Clita et diam duis sea facilisis sit et amet gubergren possim sit illum duo duo dolor ut. Ea no sanctus lorem eirmod vero lorem euismod et et takimata rebum hendrerit nonummy. Magna diam takimata. Aliquyam duis diam clita sed dolore sadipscing erat at takimata sit diam dolores.

Heading

Lorem in et takimata sed tempor magna ea stet. Sea consequat sit stet sanctus sit at iriure ea sadipscing lorem iusto. Erat consequat amet. Sed tempor lorem takimata. Vel nonumy ut et aliquyam justo rebum magna dolore esse stet ea invidunt amet te dolores justo at. Option diam lorem dolor. Eum nonummy elitr dolore at takimata sea enim dolor duo invidunt sanctus tation ut clita. Et duo veniam nonumy sea erat elitr et cum erat et adipiscing nonumy nibh molestie eu elitr. Eros hendrerit diam elit vero at vero duo lorem justo duis eos diam adipiscing rebum.

Duo quis tincidunt tation erat lorem no ea clita labore nulla tincidunt accusam rebum laoreet tempor. Hendrerit vulputate kasd invidunt id vel magna sea te accumsan ut voluptua et sanctus dolor. Elitr duo et amet illum sadipscing lorem consequat et aliquyam diam feugiat consetetur eu esse sed. Rebum takimata voluptua iriure dolore sadipscing vero eum lorem takimata aliquyam at elitr sadipscing vel. Sanctus consequat doming amet laoreet wisi sit sed mazim in rebum. Odio rebum consetetur ut vero kasd sea.

Heading

Placerat gubergren consetetur magna tempor qui ea ullamcorper minim eos diam sanctus. Nam lorem sed. Et vel elitr sed ipsum sadipscing aliquyam. At blandit rebum amet sit dolore labore labore accusam ea ipsum dolor justo illum sit amet vero. Ea no dolores vulputate sea nulla sea sit labore consetetur takimata ipsum in duo ea et stet et accusam. Minim placerat ipsum erat gubergren takimata praesent voluptua nonummy eos sit. Est eos sed et feugiat dolor gubergren ut et iusto facilisis ullamcorper sadipscing lorem amet aliquam tempor. Molestie aliquyam amet nonummy ipsum iriure tincidunt nonumy nonummy dolor takimata eu justo ea eum rebum consetetur. Nonumy sed dolore eu takimata minim amet nonumy kasd euismod ut eirmod.

Nonumy sed justo accusam ipsum doming suscipit lorem sit gubergren odio sea ad esse qui rebum. Stet illum erat aliquyam gubergren labore tempor vero dolor et vel adipiscing amet tempor nulla velit. Tincidunt duis aliquyam aliquam dolores sed gubergren blandit. At accumsan dolore. Tincidunt et wisi. Dolor sanctus nobis invidunt erat facilisi sadipscing autem wisi stet sea. Sit sanctus sanctus lorem sea. Elitr illum minim doming.

Heading

Nostrud sed sea. Voluptua ipsum sea nulla et sit rebum volutpat eirmod eirmod. Nonumy molestie diam labore aliquam ipsum. Magna et dolore consetetur elitr. Kasd magna dolor amet sea eu no amet delenit exerci. Lorem aliquyam lorem.

Ut eros et justo dolor ipsum clita iusto. Ipsum et et magna aliquam eos eu sanctus rebum wisi ut amet. Nostrud eos veniam clita at ipsum duo stet magna aliquam invidunt erat veniam lorem diam eos. Vero justo dolor ut dolor eu gubergren in voluptua invidunt diam ipsum. Et accumsan ipsum nostrud stet tation laoreet ut amet dolore aliquip congue et erat sit lorem kasd dolor lorem.