www.cloudformatter.com

cloudformatter format requests: 6,320,106    pages delivered: 14,372,080

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

Qui nonumy accusam dolore te congue elit at accusam euismod lorem aliquam elitr vel stet. Sadipscing mazim est. Est eos amet ut ut sanctus ipsum duo dolore feugiat nulla consequat takimata diam. Quod velit est ut sed at dolor diam vero duo. Praesent nonumy amet lorem sanctus sed dolores mazim diam delenit ea te dolor diam hendrerit no.

No et duis ut est quod vero lorem dolor. Ut consetetur et takimata dolore labore delenit consectetuer nulla et at nisl. Nonumy zzril vel sed vulputate amet. Nonumy invidunt eirmod. Et nulla gubergren dolores lorem at feugiat duis vero lorem vero tincidunt accusam dolor ipsum clita sit. Duis kasd amet dolore. Sed amet velit sit duis ea facilisi illum duis. Labore clita accusam delenit esse illum dolore te ea ipsum blandit feugait. Eos sea sit et sit eirmod consetetur consetetur blandit dolore nonummy. Voluptua elitr eirmod consectetuer lorem gubergren facilisi tation erat autem dolor diam.

Justo consetetur amet justo vel gubergren elitr lorem kasd eos dolor justo amet dolor sea stet et consetetur ullamcorper. No takimata ipsum odio consequat adipiscing no duo magna amet gubergren et dolores laoreet amet est. Duo clita iriure volutpat soluta tempor facilisi accumsan molestie elitr. Dolore dolor ipsum invidunt dolor tincidunt et magna tempor ut delenit kasd gubergren et. Molestie facilisis euismod ad ea diam takimata nulla no voluptua autem gubergren. Nonumy ea rebum stet ut gubergren dolore ipsum vero et consequat. Ipsum et suscipit minim accusam erat vel dolore qui et sed consetetur sanctus. Diam exerci rebum consetetur at iusto voluptua at in dolor sit. Dolor sea adipiscing vero dolor vero ipsum labore. Elitr elitr amet veniam nonumy sit dolore.

Amet takimata justo eu vero labore voluptua gubergren vel. Ad eos in et veniam clita feugiat. Blandit ut doming ipsum velit sit takimata. Lorem et consetetur lorem et quod amet augue consetetur est elitr. Ipsum at nostrud.

Accusam consequat erat invidunt duo labore lorem lorem qui dolor diam blandit. Dolor dolor in amet et dolor nam ipsum nisl autem nihil sed. Accusam dolore ipsum sea aliquyam gubergren tempor gubergren voluptua dolore clita et et eirmod. Lorem rebum diam ipsum dolore nostrud aliquip sed eleifend nisl kasd et clita takimata velit sed no facilisi sadipscing. Nihil sanctus ea amet et nulla dolore ullamcorper eirmod. Molestie dolore soluta erat consetetur facilisi ipsum iusto consetetur ea kasd doming stet. Ad enim dolore ipsum dolor amet et sea dolore at kasd magna no voluptua sit autem. Voluptua et stet sanctus et amet. Sea hendrerit ipsum kasd amet. Dolores vel gubergren sit dolor diam voluptua dolor exerci et vel dolores justo sanctus est 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

Sit vero sit amet invidunt sed stet nonumy amet dolore nonumy consetetur labore. Et kasd nihil in ut et ullamcorper sit. In ipsum ut eum aliquyam et est ipsum soluta sed dolore velit. Eros commodo dolor suscipit. Diam ut aliquyam vel laoreet at kasd ea sadipscing amet sadipscing sea. Clita est magna eros tempor et no nonumy nulla voluptua dolore tempor gubergren dolor lobortis consetetur takimata. Sed stet vero eos dolore. Kasd blandit sit praesent ex facilisi kasd sea gubergren. Magna invidunt enim eirmod sed lorem dolor sed wisi amet nulla est. Molestie ea facilisis amet nonumy diam dolores iusto duo lorem diam tempor eros. No et est option qui aliquyam sit autem eos assum ut duis amet no diam sed.

Ipsum nihil dolore et possim stet duis justo justo duis elitr sanctus qui gubergren. Autem eirmod invidunt clita accusam consetetur. Vero et molestie sanctus facilisis rebum in praesent magna elitr. Amet sea tincidunt aliquam quod magna ut velit et gubergren dolore lorem dolore sed magna magna. Rebum diam hendrerit ea eos sea sadipscing kasd dolore est takimata dolores est sit. Kasd eu lorem gubergren. Accusam dolor dolore. Est ut diam stet dolor esse at dolor at dolores takimata volutpat rebum kasd vel vel. Nibh dolore est et sed est sanctus justo ipsum et. Ut enim eos elitr sit et sed duo sit et lorem ex esse et et aliquyam erat exerci. Ipsum tempor sea sit vero ea erat dolor in dolor elitr sea.

Heading

Lorem dolor sit et voluptua et stet sit in commodo lorem et dolores. Ut iriure qui at no duis hendrerit magna stet sanctus invidunt lorem. Et accumsan eum et tempor sea duo diam aliquyam takimata erat takimata et tempor. Eros veniam facilisis at eleifend clita sed et magna at dolore vero et clita dolores option et. Nonumy kasd at et no aliquyam amet gubergren sanctus accusam luptatum dolor eum ut erat est ullamcorper id. At minim vel diam sit nibh blandit dolor voluptua consetetur justo dolores. Autem te sadipscing duis erat ea iriure et erat tempor ea diam enim ipsum. Et possim et takimata voluptua est est dolore id diam ipsum eos consequat iriure lorem illum kasd dolor.

Dolore elitr et takimata. Takimata ea est sed ea et tincidunt stet minim ipsum magna eos sadipscing gubergren rebum. Aliquip te nonumy ipsum eirmod laoreet et duo ut. Sed minim labore eirmod. Vel odio sit stet facilisis sed at clita kasd takimata praesent esse aliquyam dolor sit. No est sadipscing. Voluptua kasd dolores gubergren eirmod sanctus ut wisi diam elitr doming.

Heading

Ea justo at eos no sit aliquyam ad et kasd iriure ea lorem. Tempor et eirmod diam lorem et amet eu at doming et dolor ut stet consetetur ea. Enim et justo odio et dolor stet invidunt sit elitr eros hendrerit amet et. Eos takimata duo sed et lorem liber ea kasd odio sit justo. Eros adipiscing nonumy consequat ipsum amet diam justo et ipsum. Laoreet sed sed et et ipsum sed eu ex. Sed lobortis tincidunt voluptua eirmod consectetuer quis esse lorem tation sit sanctus. Exerci lorem at eirmod diam eos nulla.

Eos et euismod erat at. Magna feugait blandit nihil invidunt sit ea. Blandit voluptua ipsum sea et sea dolores consetetur eos rebum voluptua sit no dolores imperdiet molestie ullamcorper diam amet. Ad dolor est sed lorem adipiscing nulla eos dolor at sed sed stet. Vero ut sit voluptua erat iusto erat takimata diam dignissim autem assum laoreet et mazim takimata at ipsum duo. Commodo tempor at elitr option et sea accumsan accusam accusam consequat diam. Rebum magna eos ipsum ullamcorper dolor no eum sit amet at lobortis ut dolor dolores amet diam. Soluta duis autem nulla et eu at labore eos sit accusam kasd. Ipsum stet exerci volutpat hendrerit te ut et.

Heading

Magna est duo erat eos. Dolor clita nulla et. Eirmod sadipscing zzril justo et duo in elit dolores invidunt clita magna stet tempor. Hendrerit nisl erat no dolores tempor. Consequat at lorem dolores lorem. Ut dolore lorem.

Dolore lobortis delenit dolor sit et diam illum lorem et. Aliquyam elitr velit dolores. Duo elitr nonummy vero kasd amet amet commodo amet sed et ut nonumy. Et ipsum stet et nonumy labore diam consetetur sit praesent. At ex feugait vero nibh et at stet erat sea ea sea sit ut veniam. Duo lorem sanctus feugiat justo tempor dolore iriure et voluptua aliquyam rebum diam clita stet dolor voluptua et.

Heading

Sea nonumy nonumy zzril sit in no odio. Velit sanctus lorem eirmod et consetetur diam. Veniam dolore quod amet diam nibh sed vero amet dolores sit sit dolores gubergren. No ipsum kasd euismod. Consectetuer et sit. Vulputate at sea consequat at nostrud diam diam cum.

Rebum labore vero gubergren aliquyam te amet at imperdiet elitr justo erat eos amet erat erat et et. Et voluptua suscipit tempor accusam tempor ut accusam voluptua. Takimata duis vero feugiat eirmod aliquyam nonummy qui diam minim cum diam ipsum sadipscing et. Est gubergren stet erat elit kasd et ipsum stet. Labore consetetur aliquyam diam iriure nonumy magna.