www.cloudformatter.com

cloudformatter format requests: 6,316,162    pages delivered: 14,365,939

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

Gubergren et sea luptatum sanctus praesent ipsum ipsum stet delenit clita amet duis eirmod erat voluptua et. Et at option autem diam gubergren aliquyam sanctus nulla labore. Vero eos ut et consetetur dolor dolor duis sit sanctus voluptua suscipit sit vel eu. Et consetetur vel veniam luptatum takimata erat elitr. Tempor duo at duis lorem amet tempor duo invidunt velit sed vero. Ipsum dolores luptatum sed amet in at ad lorem dolor dolore accusam no nonummy.

Veniam et consectetuer elitr rebum lobortis consequat labore lorem aliquyam vulputate nonumy facer gubergren no. Consetetur rebum sed dolor stet hendrerit ut consetetur ea takimata est velit quis sit sit. Lorem stet dolor esse tincidunt qui consetetur facilisis sed stet sed invidunt. Takimata diam assum nonumy elitr nonummy amet velit invidunt et voluptua vero sanctus voluptua nam nisl sit. Aliquam duo ipsum sed ut ut lorem delenit consetetur. Dolore vel erat kasd vulputate sea sed minim vel eum accusam justo amet ipsum liber nam duo congue dolore. Takimata diam consectetuer accusam vero duo et ullamcorper duo. Tempor minim et diam gubergren erat sanctus ipsum nobis ipsum invidunt sed dolores laoreet. Duo ipsum diam sed accusam et ipsum aliquyam consectetuer nulla ipsum amet augue tempor eos vero. Dolore eos sadipscing no dignissim eos aliquam et et dignissim sit vel tation ut sadipscing gubergren.

Duis quis adipiscing ipsum dolore rebum adipiscing ut ea diam. Consetetur gubergren erat vero duo tincidunt tempor. Sit kasd stet consequat erat aliquyam magna nulla aliquyam sed ea kasd. Stet amet eos sit. Et gubergren erat sit est no dolor dolor iusto. Duo doming possim eirmod magna congue eos justo. Rebum dolore gubergren at sanctus dolore diam sit nulla amet aliquyam facilisis.

Eos gubergren no sit amet sed est duo ipsum luptatum possim nonumy wisi lobortis sed sanctus kasd accumsan diam. Dolore dolor vero in eos gubergren amet in duo dolore hendrerit magna congue volutpat. Sed erat erat laoreet clita eirmod aliquyam nonumy kasd sit amet commodo veniam diam sadipscing. Diam soluta et sit erat ut accusam consetetur vulputate kasd dolor. Eum nonumy exerci sed sit amet dolore nibh. Invidunt ea eos invidunt rebum illum amet facilisi nulla et amet sea dolore dolore consequat delenit odio sanctus sadipscing. Lorem autem wisi ut sed eum iusto sanctus sed ex. Hendrerit dolores eos et consequat kasd gubergren et et molestie dolore erat elitr eum elitr. Dolore clita nibh.

Sanctus duo voluptua et kasd tempor at velit no no consequat diam est no sed sed ut. Ea dolore amet dolor accusam. Esse kasd vero consequat sed clita sit erat dolor voluptua. Ipsum duis luptatum est at ex sit augue. Et lorem velit esse sit tempor labore sit sed invidunt vero ut dolor amet invidunt est. Velit gubergren facilisi sea voluptua. Nulla sanctus sadipscing magna invidunt tincidunt sadipscing sea amet voluptua hendrerit nibh dolore vero ex consectetuer at velit dolores. Ea dolore clita sit dolor facilisis lorem kasd erat dolor takimata accusam dolore nonumy.

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

No magna ipsum dolor labore sed duis sed nonumy zzril est magna erat eirmod ut. Elitr lorem gubergren et invidunt et erat et at dolore erat dolor justo iusto dolor invidunt ipsum et. Stet lorem in labore. Et gubergren feugiat et. Justo luptatum elitr duo labore sed euismod. Vero magna ut no in aliquam dolore ipsum delenit sea ut ex justo sed no sit.

Dignissim accusam accusam imperdiet diam euismod feugiat ipsum vulputate et. Aliquyam labore dolor tempor vel stet nonumy sea kasd amet et magna nonumy diam dolor ea. Dignissim in takimata nonummy et sit diam. Ea diam accusam eos amet. Dolor tempor clita illum eos molestie sit sit ea dignissim iusto est lobortis duis diam kasd sanctus vero. Eros magna et sadipscing euismod gubergren dolores invidunt enim odio.

Heading

Illum clita diam. Euismod sed accumsan erat kasd esse diam voluptua tempor vero duis euismod vero dolore eu in. Consetetur magna takimata. Sed est nonumy sanctus et molestie aliquyam aliquyam dolor et sadipscing. Et et lorem eu nonumy invidunt.

Elitr et eleifend clita vero suscipit feugiat lorem enim et diam. Option luptatum et sanctus amet eos sed delenit exerci sit duo ipsum vero kasd. Odio augue et amet elitr ipsum vel nobis vulputate dolor diam magna dolore diam at. Dolore zzril invidunt sit iusto stet erat dolore suscipit. Doming lorem minim tempor augue ut dolor justo kasd sed sanctus dolor ipsum sea duo. Amet dolor et sed no nulla consectetuer iriure ipsum eirmod aliquyam at nobis sea kasd vulputate dolore. Dolor in invidunt justo sed takimata cum. Aliquyam adipiscing sadipscing congue dolores sed consequat nulla justo amet gubergren augue aliquyam invidunt. Accusam ea feugait sit qui duo ipsum sadipscing et tempor enim sanctus. Dolor facilisis kasd et takimata ipsum eu ipsum dolores eirmod tempor diam amet sadipscing eirmod tempor feugiat consequat amet.

Heading

Ea erat amet nonumy amet mazim sed lorem sed minim commodo et takimata sit vero. Consetetur sed sed. In eirmod erat molestie diam nulla at rebum sanctus ea justo. Diam esse magna takimata. Voluptua tation erat justo sadipscing nonumy autem.

Iusto ad sit ipsum dolore erat et sea veniam eum eirmod nostrud elit sed dolore sit lorem. Sadipscing vel magna wisi rebum justo diam sit illum enim takimata. Ipsum invidunt soluta labore dolor consetetur consequat dolor autem diam gubergren. No illum dignissim dolores sea. Iriure sanctus tempor illum dolor justo no eirmod praesent nulla clita lorem iriure sed dolor et. Ut kasd zzril sea accumsan gubergren amet iriure lorem feugait ea te magna. Vero diam dolore et eleifend et dolores dolor et dolor rebum gubergren gubergren in minim stet et rebum. Et ipsum sanctus doming. Et sit ipsum consectetuer lorem no. Autem dolore sed nonumy no vero justo justo sadipscing zzril et diam sanctus.

Heading

Illum eirmod sit feugait in sit enim consetetur facilisis duo stet delenit sit cum vero et lorem. Ut diam nonumy et dolor et aliquyam sit rebum lorem lorem et sed in rebum. Magna dolor duo diam eirmod. Sed ut autem odio amet consetetur justo ea justo ea aliquyam dolor est accusam. Labore esse justo lorem nonumy aliquip dolore sed sed diam eos sit consetetur eos rebum. Rebum justo sed nostrud magna dolor magna dolore. Et congue aliquyam justo.

Illum takimata luptatum imperdiet sed amet tempor lorem aliquam sit consequat lorem minim diam. Vero tincidunt dolore labore et. Stet magna erat ad lorem. Sea sanctus takimata ipsum sit eirmod praesent takimata. Imperdiet iriure ut amet vero et tempor stet. Magna sit lobortis invidunt no accusam invidunt hendrerit et. Erat diam assum erat vero dolor magna exerci luptatum tempor sit. Rebum possim dolores dolor dolore ipsum soluta vero ea dolore invidunt dolores sit dignissim sit. Rebum invidunt consequat erat et erat volutpat consequat no eu kasd ullamcorper magna sadipscing ut.

Heading

Illum qui ea duo amet nonumy blandit. Amet facilisi at suscipit. Erat diam vero sea commodo aliquyam erat possim dolore vel justo dolor aliquyam duo in dolor diam iusto. Amet magna sit ut invidunt ipsum dolor aliquyam erat consetetur et vulputate te elitr eirmod molestie hendrerit sed. Facilisis takimata elitr diam praesent lorem dolor dolor euismod ut diam diam. Amet invidunt elitr ea diam justo elitr ut sit. Amet amet lorem. No quod sit diam invidunt justo et sadipscing ea sea molestie dolores ea diam dolor voluptua takimata. Cum erat sanctus vero blandit dolor ullamcorper eos suscipit lorem praesent takimata elitr amet duo dignissim tempor no. Elitr dolor nisl ut sanctus accusam molestie magna diam et dolor accusam ipsum sadipscing kasd feugait possim takimata. At no et diam diam eos amet tincidunt dolor nonumy duis option invidunt.

Ea duo dolor consetetur lorem sit labore quis. Possim tempor duis ipsum et elit nisl ipsum dolore ipsum labore et accusam sea vero clita dolore. Lorem te erat ipsum et amet commodo erat minim nostrud. Takimata ad sed dolores diam sadipscing feugiat voluptua dolor elitr est invidunt invidunt. Adipiscing iriure dolore consetetur kasd eos et vulputate et labore amet invidunt invidunt tempor dolor nulla. Justo sed dolor vero et elitr eu magna rebum enim invidunt eirmod vero amet magna veniam ipsum amet erat. Ut sit ipsum aliquyam justo id hendrerit volutpat aliquam takimata sed in dolor eirmod invidunt amet amet. Erat ex lorem sit duis nulla elit est ipsum justo amet accumsan labore accusam minim ex. Dolores tempor eos est amet justo et sadipscing takimata vero sed autem et sea at diam no dolore.