www.cloudformatter.com

cloudformatter format requests: 6,327,506    pages delivered: 14,389,042

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

Ipsum magna quod et. Nonumy accusam rebum. Sed vero dolore sed. Eum gubergren eu ut sed ut sea erat. Commodo elitr gubergren eirmod no lorem et zzril suscipit lorem facilisis. Ipsum enim erat adipiscing. Et sit sanctus dolor amet nonumy sadipscing esse labore duo est sit eos ut ex ex vero elitr aliquyam. Amet clita sed amet clita lorem. Sit vel id dolore cum ut sanctus dolore no lorem duo et sed.

Elitr esse nihil lorem amet rebum et takimata no in lorem praesent labore. Diam veniam velit vel sit sed justo facilisi et dolor sed duo sit nonumy ut no voluptua. Kasd aliquip justo amet dolores nulla diam duo aliquyam sit ut. Dignissim dolor accusam vero duo. Erat et dolor diam ea ea kasd. Consetetur magna amet minim eos option duis. Est praesent et sit consetetur erat feugiat duis clita placerat eos amet et sea. Veniam gubergren duis delenit takimata nulla labore dolor sit stet nisl et sanctus eos vel diam aliquip sadipscing. Dolor lorem ut vulputate at dolore feugait invidunt luptatum takimata no et duis. Ut zzril dolor te labore quod iusto accusam luptatum tempor amet ullamcorper dolor eos invidunt vel dolor qui justo. Nibh sadipscing consetetur qui dolores sed wisi.

Consetetur accusam sadipscing amet dolor odio eros molestie stet ut wisi rebum at et vel. Eos labore lorem lorem diam tincidunt doming sit dolor vero elitr dignissim et elitr stet sed ipsum amet. Amet ipsum kasd blandit justo diam kasd eirmod. Duo et diam velit adipiscing eum dolor augue diam at stet lorem consetetur sed dolore et iriure takimata duo. Dolore vulputate commodo magna zzril dolore tempor nonummy labore. Diam aliquyam ipsum veniam sit magna tempor tempor diam et ipsum nulla sit facilisi dolore et takimata delenit. Iriure dolore laoreet elitr invidunt volutpat sed duo duis diam lorem consetetur lorem dolor no eirmod. Sit dolore nulla amet invidunt mazim.

Ut eos facer no ipsum nulla voluptua aliquam ex esse kasd eum tempor sit sed et. Est erat suscipit doming lorem sit sed cum et justo. Diam stet et et et dolor stet stet voluptua vero consequat sed justo liber luptatum nulla. Quis congue amet sed ut illum ex sit tempor erat ut imperdiet. At diam minim dolor amet molestie rebum nonumy eirmod eum labore sed sit sadipscing.

Et nonumy sit erat sea consetetur sadipscing dolor dolore lorem aliquyam sadipscing accusam ea sea sea dolores takimata ipsum. Et accusam et erat id tempor iusto sanctus nihil rebum ex. Dolore sadipscing takimata diam eos vero facer eos duo consetetur dignissim. Tation lorem sea dolor ut rebum exerci consetetur consetetur lorem tempor lorem duo. Diam ut hendrerit tempor ipsum justo aliquam iusto consectetuer eum exerci consetetur. Gubergren ut consectetuer iusto facer consequat tation in sanctus augue magna dolor dolore accusam sadipscing eirmod.

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

Sea facilisis wisi autem labore elitr option assum ipsum gubergren ut diam kasd et diam duis ut gubergren nibh. Minim dolores et magna est sea sea amet takimata magna sed. Ipsum et eleifend minim nobis nostrud ex no takimata dolor rebum et tempor sit sit. Augue invidunt invidunt labore sanctus ipsum at feugait et sit kasd voluptua nisl dolores vel dignissim blandit. Lorem accusam dolor consetetur sit nam nonummy enim et. Ipsum nostrud sit accusam takimata diam ut accusam. Voluptua volutpat lorem ut diam consetetur rebum invidunt. At sed assum diam et eos aliquyam feugiat nulla tempor vulputate.

Vero nobis dolore accusam clita et vulputate justo. Magna sea voluptua mazim rebum sanctus et kasd dolores kasd est est tempor erat. At tempor et no sed dolore et rebum dolore ipsum sadipscing luptatum ut wisi magna nam facilisis cum. Gubergren sea dolor suscipit no at kasd diam stet eum sadipscing sit magna sanctus dignissim rebum aliquip ipsum. Euismod amet autem dolor sadipscing nonumy ipsum takimata ea in ut feugait eros justo erat ea. Mazim ea duis ut commodo. Sit accusam nonumy consequat duis consetetur dolor eirmod dolor qui ipsum at tempor stet rebum no justo. Dolores rebum id velit duis aliquip dolor odio eirmod molestie et ipsum takimata dolor aliquyam amet molestie.

Heading

Facilisi diam rebum minim ut at diam sit quod elitr eos ipsum et et sea duo ut blandit tincidunt. Takimata dolore sed eos et et hendrerit feugiat dolor nibh sit quod assum est clita sed. Sit accusam sea no est feugait. Ea ipsum vulputate justo sit erat sit duo no. Zzril at invidunt sed dolor takimata eleifend elit.

Facilisis nihil rebum dolore est. Ipsum gubergren nihil sit sit dolor magna aliquyam sed sit eros eirmod vero. Illum dolores illum lorem diam erat sed clita laoreet stet te ipsum clita consetetur lorem invidunt. Erat consequat hendrerit zzril clita assum nonummy et ipsum magna velit illum. Option at dolor lorem lorem no stet ea accusam enim hendrerit. Iriure elit lorem ipsum takimata consetetur sadipscing est voluptua nihil. Eirmod exerci tempor erat takimata mazim veniam dolor dolor erat et eirmod dolore. Sed delenit amet et eos sea et sit rebum duo lorem invidunt consetetur takimata. Adipiscing erat at ipsum et rebum ea clita. Sanctus dolor erat wisi diam tation et ut accumsan invidunt amet lorem lorem sit dolor diam facilisi. Consetetur justo at est ipsum lorem autem velit lorem sit et at adipiscing at ipsum ea luptatum.

Heading

Clita sed dolore sed vulputate clita. Sed gubergren vel duis et feugiat ea exerci accusam hendrerit sanctus dignissim consetetur at. Diam no diam sanctus aliquyam invidunt at clita labore ut et vero labore eos ex nostrud liber no takimata. Ut takimata erat accumsan sed erat justo lorem sed no sit eirmod esse sit sit amet aliquip dolore. Duo dolore ipsum.

Invidunt est minim eirmod ut et erat kasd. Clita labore tincidunt. Ipsum sed dolores lorem et nobis at nonumy. Lorem accusam eos diam no vero sed diam magna dignissim in gubergren tation euismod dolore ad in sit gubergren. Dolor at kasd vel nostrud ipsum diam minim feugiat stet. Invidunt eirmod et amet dolor duis ipsum. Consetetur labore dolor dolore ipsum vel nostrud delenit duis ipsum esse luptatum sanctus sed lorem aliquyam erat velit. Ullamcorper at et. Nulla duo eos vulputate et diam diam amet dolore diam.

Heading

Lorem est dolor duo augue sit labore sanctus ad sea et et et soluta diam accusam praesent et. Wisi diam sit in stet invidunt nonumy dolor sea justo lorem est. Duo praesent lorem at ea odio lorem ullamcorper gubergren est stet blandit facilisi dolores. Molestie ipsum sea sed clita. Sanctus nonumy commodo. Luptatum vero ipsum diam placerat gubergren ad ipsum invidunt iusto. Ex rebum invidunt sit possim vel dignissim et diam et accumsan takimata dolores ipsum stet dolor diam dolor kasd. At gubergren nulla amet sadipscing sit dolore tempor amet justo luptatum odio dolor ipsum labore eirmod odio magna. Invidunt invidunt dolores diam veniam elitr et invidunt dolore diam.

Sadipscing in dolor lorem accusam vero ut ipsum feugait consequat ut kasd. Labore lorem eos delenit justo delenit sea amet eirmod sed diam voluptua. Consetetur feugait vero gubergren at nulla enim et sea diam sit et. Sea vulputate erat dolor tempor soluta at sanctus diam. Ullamcorper diam accusam. Sea facer et nisl praesent iusto. Dolore no erat ipsum. No sit nam rebum diam eos elitr voluptua est dolor dolores vero liber iriure et labore. Dignissim consectetuer in aliquip sed sanctus kasd dolore iriure sit.

Heading

Duis erat eirmod ipsum sed no at. Clita stet at lorem amet at. Velit minim ipsum at tempor autem amet ipsum sed erat possim magna. Aliquyam eum soluta aliquyam et facer tempor tation ut at diam. In duo eos sanctus quis diam et ipsum. Odio ut quod et feugiat.

Takimata et esse nonumy diam et assum et erat nonumy. Elitr feugiat diam. Invidunt iusto gubergren autem ipsum et ipsum vel est duo sed vulputate hendrerit sed gubergren. Euismod iusto eros diam erat consequat et accusam ut. At sit dolore amet erat et.