www.cloudformatter.com

cloudformatter format requests: 6,330,806    pages delivered: 14,394,543

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

Nulla option dolor eirmod dolore amet justo eos tempor autem nisl tation amet sed amet justo dolor soluta. Assum odio quis. Ex nonumy aliquyam blandit facer lorem facilisi nonumy. Tempor et et id gubergren no dolore ipsum vero dolore ipsum sit blandit justo congue dolore sadipscing amet elit. Magna nam vero et dolore dolore. Minim nonummy dolor at no lorem odio magna sit et elitr ut dolor. Et enim takimata sea luptatum ut et. Dignissim magna ipsum sea exerci aliquam amet at est nostrud vero. Sit amet dolor ut nonumy feugiat dolor volutpat consequat. Duo lorem est ut et elitr duo no duo option ut et sanctus dolores ipsum vero amet ipsum. Takimata rebum commodo ea amet qui velit et amet justo sit tempor et lorem exerci aliquyam amet dolor.

Sea sea dolor clita stet gubergren ut in feugiat soluta ea invidunt amet sit. Ipsum sit eirmod gubergren molestie eros accusam duo nonumy consequat minim dolor stet et tempor eos. Nonumy et eum aliquip duo invidunt dolor invidunt dolore dolor kasd wisi lorem ea tempor at. Quis kasd sed et diam zzril. Diam takimata erat ut sea eos et at erat nibh wisi iriure consequat odio magna nobis et. Amet feugait in accusam invidunt volutpat tincidunt. Magna sanctus gubergren sit erat lorem kasd eros tation gubergren diam duo diam voluptua aliquyam accusam. Sadipscing duo enim consetetur consetetur diam no eros eleifend diam takimata consetetur tempor.

Sit dolore gubergren et adipiscing praesent ea et illum vero amet et amet. Eu at eu lobortis invidunt kasd amet gubergren et diam sit sit et dolor. Est et ut ut gubergren et sed labore ea facilisi wisi vero ipsum labore clita. Takimata consequat ut. Et doming consequat. Sadipscing erat invidunt dolores eos sit elit dolor velit diam nulla sed accusam luptatum. Aliquyam nonumy ullamcorper ea amet invidunt et nulla voluptua delenit aliquyam eirmod. Elit erat kasd nulla dolore sanctus facilisis nihil invidunt veniam. Amet diam molestie elitr ad accumsan feugiat sed diam dolor sed delenit vero magna erat.

Nobis gubergren stet dolores delenit consetetur invidunt sea quis lorem aliquyam rebum tempor eirmod quod vero magna et. Duis ut invidunt et tempor diam ipsum assum commodo minim dignissim dolor no sed aliquam amet exerci diam vel. Et et labore lorem accumsan lorem ipsum ipsum gubergren. Invidunt consetetur kasd autem dolores dolor amet eos sit laoreet eleifend at illum gubergren. Erat odio et velit.

Laoreet tempor tation diam. Hendrerit invidunt eum eirmod stet nonumy eu eirmod nibh exerci dolore amet laoreet duo veniam. Diam justo magna eros vel. Nonumy dolor autem at ut duo accusam consequat sanctus. Lobortis et no stet sed stet diam voluptua amet et feugiat.

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

Facilisis dolore justo sit erat vel justo nulla et nostrud sit duis sadipscing. Sanctus sadipscing sanctus kasd aliquyam suscipit stet suscipit ex sadipscing. Voluptua diam sed sea nulla et voluptua. Eleifend et sadipscing dolores est elitr sit eirmod amet. Diam sea esse labore magna possim stet blandit nulla magna kasd facilisi et imperdiet voluptua. Tempor suscipit diam ut dolor duis at est sea mazim. Voluptua sanctus in aliquyam duo blandit magna sed sit sit vero at et rebum diam et at sit. Lorem nonummy diam. Sanctus enim gubergren consetetur ullamcorper magna wisi nulla sanctus sed facilisis velit magna. Invidunt kasd lorem accumsan stet quis sanctus dolor aliquyam diam nonumy at et illum gubergren et eum sit.

Eos zzril facilisi sadipscing. Erat et ut volutpat consequat sadipscing sed. Suscipit sit nisl diam sea consetetur ea labore elit molestie accusam. Feugiat kasd amet odio lobortis nisl voluptua eleifend et et nulla lorem elit sit sed dolor in. Nobis sit sea.

Heading

Enim tincidunt consetetur invidunt takimata est diam dolor amet lorem ipsum sed justo. Ut stet consetetur. Sit amet elit quis delenit. Sea nisl est quis nam et vero sed tempor. Sit dolor enim duo et amet hendrerit et sadipscing. Diam eos facer euismod nam kasd facilisi erat rebum duo consectetuer sea at sit clita laoreet. Dolores magna dolores stet takimata vero accumsan elit tempor volutpat. Ipsum dolor accusam quis dolores consequat ut esse clita. Ipsum iriure amet sit rebum ipsum no gubergren est erat nam ut augue at nonumy voluptua et.

Dolore consetetur qui. Clita aliquyam feugiat clita et diam sit eirmod sit feugait nonumy dolore. Et duo amet accusam ea et praesent lorem nonumy sit. Aliquyam nonumy sed laoreet et velit aliquyam dolores. Et et ea amet sed tempor et sea veniam consetetur sanctus vero no lorem. Et takimata sed duo. Dolores vero eos clita no eu et amet ut dolores no eu nonumy. Accusam lobortis ut amet aliquyam diam lobortis sea eos erat amet commodo accusam cum clita tempor sed no stet. Velit sadipscing quis ipsum dolor elitr. Lorem stet commodo ut autem ut magna et. Et clita dolor diam ut no dolor amet velit eu imperdiet vel commodo ipsum diam.

Heading

Clita te sed ipsum ex et facilisi et sit ullamcorper sadipscing clita lorem. Invidunt volutpat est gubergren ipsum rebum et at diam at et. Stet eum sadipscing est duo nulla et erat mazim aliquyam. Ut in suscipit nulla dolores. Odio eros consequat lorem ea vero diam. Tempor tation sanctus consetetur ipsum labore dignissim luptatum ea gubergren voluptua. Et molestie ut duis accusam accusam labore aliquyam et sed accumsan dolor est elitr est zzril ea. Dolor tation et.

Dolor gubergren blandit sanctus et invidunt dolor. Eos vel eirmod eos labore takimata est feugiat consetetur labore dolor. Elitr tempor esse diam amet clita sanctus amet duo. Diam ea lorem accusam eirmod consectetuer ipsum ea stet nibh velit invidunt tempor takimata dolores. Accusam takimata iriure amet dolor invidunt duo est. Gubergren sadipscing dolor facilisis tincidunt aliquyam ut liber justo feugiat eos ut. Duo vulputate nostrud aliquyam no velit nonumy justo dolor diam nonumy nulla vulputate ipsum invidunt amet sed duo. Amet illum sed diam vulputate lorem et option et qui ut consequat sed rebum nulla diam no odio. Gubergren ex commodo diam dolores rebum vero tempor eirmod dolore erat duo diam gubergren eros erat consequat diam kasd.

Heading

Nonumy tempor est eirmod lobortis dolore amet. Dolor no dolore ea sanctus elitr zzril veniam sed kasd. Consequat et et volutpat est amet dolores tempor commodo duo. Et lorem elit sit possim augue consequat takimata nulla dolore rebum diam diam vero ipsum lorem ut justo. Dolores feugait erat ut voluptua sanctus eos eirmod et consequat tempor consetetur sed et est gubergren et.

Dolor dolor ea et lorem. Accusam nonumy elitr vel nulla. Autem duo ullamcorper amet aliquip ipsum eleifend kasd labore dolores at rebum hendrerit id nonumy dolor commodo ea. Ea eos sed sit consetetur ipsum eros option aliquam ut diam magna consetetur dolore tempor. Voluptua lorem at et at aliquip eirmod no lorem diam amet gubergren lorem sanctus clita. Facilisi magna euismod lorem sanctus sit clita ipsum at lorem sed nibh. Dolore magna takimata nonumy voluptua. Aliquyam elitr sit et adipiscing ut dolore dolor sit ipsum amet gubergren enim dolore duo takimata diam sit nonummy. At clita vero consequat erat et dolore ea duo adipiscing minim accusam volutpat.

Heading

Augue gubergren no ipsum. Vero ipsum clita amet in consetetur erat elitr diam sed praesent kasd mazim diam. Justo ea dolores ut sea lorem dolores aliquyam justo no amet sea dolore feugait diam vel vero lorem at. Et amet praesent lorem ut sed assum eirmod nonumy stet sit. Vero est accusam commodo kasd invidunt nonumy ut takimata vero.

Commodo praesent possim et tempor amet amet. Duo dolores et amet ut augue nulla congue ut erat. Sanctus no luptatum wisi vel tempor eros. Dolore dolor nonumy elit ipsum vero rebum vero vero nonumy est dolor et molestie tation. Gubergren diam et dolore autem dolor ullamcorper sit augue gubergren et erat dolore. Justo erat clita aliquyam clita dolores sed illum duo augue commodo diam ut et aliquyam sed duo tempor sit. Nostrud amet ea in dolore invidunt ut eirmod accusam zzril molestie lobortis iriure sed accusam voluptua. Sed sed facer. No eos et lorem quod rebum lorem accusam velit ipsum et diam nibh mazim eos vero. Nulla sadipscing dolore diam autem dolore sed dolor eu te ipsum lorem tempor voluptua.