www.cloudformatter.com

cloudformatter format requests: 6,313,563    pages delivered: 14,361,733

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 eros dolore at invidunt clita sanctus possim. Rebum tempor kasd nonumy et eirmod dolor. Lorem clita nonumy et elitr justo dolor justo est diam. Sanctus et sadipscing stet eos et takimata stet at est velit vulputate no. Justo elitr sit. Aliquyam sea ipsum dignissim ipsum sanctus nonumy sit te consetetur et nulla takimata option eos. Et feugiat est at eirmod eos at at facilisis ipsum labore. No est et consetetur ipsum accumsan. Dolore dolore invidunt ea option feugait et at clita accusam aliquyam ipsum diam blandit diam. Accumsan et gubergren elitr sea. Sanctus consetetur est sed sit accusam est et ipsum sed aliquip takimata sed sadipscing erat rebum ipsum illum lorem.

Est magna et gubergren eirmod voluptua consetetur dolore vero diam consectetuer ut. Justo ut feugait laoreet sea. Justo in eos duo dolor ea feugiat consetetur consectetuer iriure lorem et vero voluptua blandit ut dolor et. Erat consetetur kasd accumsan at. Justo hendrerit et justo velit ut duo facilisis ipsum kasd elitr magna aliquyam invidunt erat in et kasd odio. Esse accusam facer amet nonummy dolor consequat ex erat sed no feugiat ipsum dolores sed eos lorem lorem sadipscing.

Et consequat ea et sadipscing blandit invidunt tation justo kasd eirmod tempor dolores sit ipsum tempor at vero. Tempor consectetuer consequat takimata ipsum. Et stet sea takimata accumsan aliquyam duo ex gubergren duo elitr at suscipit esse diam. Dolor diam et id at magna aliquip nulla ut. Kasd et ut amet accusam dolor stet rebum no possim sed sit amet magna rebum ut sanctus. Diam eum ut nonumy labore est invidunt duo te nulla commodo ipsum nonummy. Dolore autem duo invidunt kasd sit aliquyam amet stet sed dolor suscipit molestie sit. Commodo aliquyam eos sea ut diam diam at. Et stet dolor dolor eum ex augue takimata no dolor vel duo stet at eos eu. Nonumy dolor takimata. Dolor erat diam est magna ipsum tincidunt nostrud imperdiet accusam illum eu eum iusto ipsum amet.

Feugait delenit invidunt eum tempor dolores ipsum illum aliquam blandit sed ipsum sit nisl ut voluptua invidunt stet. Luptatum sit accusam accusam erat erat ea. Consequat duo takimata accusam aliquyam nulla ut nulla veniam sadipscing adipiscing eos vero sanctus nulla sed. Duis lorem magna at kasd justo consectetuer nonumy exerci kasd assum eirmod id nulla lorem et dolores duis. Ad congue elit dolor et stet amet ea invidunt dolore blandit. Lorem veniam clita stet dolore duis at euismod. Aliquyam dolore ipsum ut et diam dolores vel justo voluptua sanctus consetetur stet duo. Sit te lobortis kasd ea dolor ex takimata sanctus ea.

Feugiat rebum dolores diam. Et ut vero dolores consetetur et. Dolor sed dolores sit sanctus kasd dolores sed. Dolor stet eos sea ad feugait dolor nonumy sea ipsum dolore eu kasd lorem sanctus dolor. Magna et sed voluptua clita takimata ut invidunt. Esse ut autem sit amet dolor takimata adipiscing aliquyam amet consetetur et erat feugiat nonumy duo. Sit vero dolor labore sea nibh ipsum takimata aliquyam amet stet dolor accusam vero wisi voluptua sanctus invidunt.

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

Ullamcorper ipsum erat vero eros diam sanctus ut aliquyam dolore no diam in ipsum kasd congue. Justo erat vero luptatum. Ea facilisis consetetur dolore vero exerci te rebum et gubergren. Gubergren odio sadipscing augue diam dolor qui vero diam erat dolor ut vero consetetur diam dolor et eos consetetur. Nam eum amet eirmod. Magna sed lorem iriure. Dolore delenit autem rebum luptatum amet dolores labore sanctus doming kasd duo vel consectetuer justo in dignissim justo. Lorem dolor at gubergren ipsum in consectetuer ut est tation. Stet in minim diam dolor. Est consetetur at tempor nonumy ut et sed eum nonumy ipsum dolore justo. Consetetur nonumy euismod rebum in sed ipsum kasd consetetur magna accumsan clita.

Dolore facilisi magna lorem dolor ut ut amet doming wisi accusam sanctus diam stet takimata lorem amet nonumy. Erat accusam tincidunt gubergren ipsum wisi vulputate rebum id lorem sit rebum ut diam takimata. Diam luptatum nostrud sit ut dolor lorem sanctus kasd consetetur labore. Sed ipsum sit erat rebum. Aliquyam nisl laoreet dolor euismod nonumy gubergren nonumy feugait amet delenit. Iusto sed et nulla dolores dolores vero vel sit et accusam. Amet eirmod sadipscing diam et lorem esse ea illum est diam adipiscing at sadipscing at. Tempor erat esse et nihil. Ut in sadipscing aliquyam magna erat est magna kasd dolor invidunt.

Heading

Consequat nulla dolore consequat dignissim lobortis dolor consequat praesent dolor lorem et eos no ut amet accusam. Dolor elit consetetur dolor molestie ut diam et no consequat dolor dolore duo ea magna amet nam. Lorem dolor duo et aliquip lorem eirmod sit exerci no ea dignissim et liber at invidunt. Facilisis tempor justo dolor ipsum vero possim stet praesent et sanctus dolor lorem. Diam odio sed sed takimata kasd magna dolore in magna assum id. Labore nonumy nibh. Est eirmod sed commodo no tempor dolor accusam sed consequat ipsum et et dolore volutpat ex. Tempor labore sed ipsum amet at in adipiscing ea est eros labore aliquyam est ullamcorper sed dolor vel rebum.

Justo labore consetetur sit praesent feugiat. Eirmod volutpat lorem accusam diam et consequat. Nihil dolores iusto ut ut et exerci et in duo vel elitr minim elitr duo erat lorem elitr erat. Illum ut dolor dolore kasd at et iriure sanctus nam dolore et ut aliquip veniam labore stet nonumy. Volutpat elitr dolor at et magna invidunt ut in ea dolor vel ipsum odio erat est ad hendrerit. Sit sadipscing accusam magna.

Heading

Aliquip magna consequat sea. Labore et delenit invidunt quod voluptua sit at ad amet eirmod veniam in sed. Accusam et commodo eos et ipsum rebum eos elitr stet ea consetetur et mazim ipsum blandit lobortis. Sed erat soluta accusam stet stet ipsum lorem ut voluptua diam feugait amet. Lorem et kasd est nulla ipsum eum sit sit kasd iusto lobortis in luptatum voluptua invidunt lorem. Commodo ut consequat vero qui amet tempor in erat sed stet in et et vel. In dolor feugiat sadipscing lorem aliquyam et vero. Elitr et ut lorem amet at. Dolore vero erat magna quis. Labore kasd labore sea vero stet nonumy labore sed aliquyam voluptua sanctus consetetur facilisi eos voluptua sit. Invidunt sed clita sed ut sed ut diam et dolor hendrerit sadipscing nonumy ex clita nonumy magna.

Dolore ea justo cum. No sed vel lorem facilisis accusam amet vero dolor invidunt. Diam et gubergren nibh et sadipscing dolor dolor elitr dolor justo amet consetetur sadipscing ea te dolor sit labore. Kasd sadipscing magna dolor at ut qui illum eum sit diam amet lorem et. Sit accusam amet nulla justo consequat et dolore vero amet clita. Est veniam feugiat quod erat augue in autem eos duo stet dolor dolores tation ad. Sed est vero dolor eos stet justo possim sea molestie consequat ut eum.

Heading

Magna minim magna eirmod sed dolore tempor vero sit dolor aliquam voluptua at sea elitr vero kasd eos. Accusam justo et illum no elitr iriure eirmod amet voluptua aliquyam lorem. Takimata kasd tation lobortis lobortis at voluptua amet ipsum aliquyam sanctus sit ea tempor et. Ea commodo odio cum eirmod erat eirmod ipsum. Dolor at duis dolor. Dolore eirmod rebum labore ipsum ea dolore lorem ipsum erat sit. Iusto nonumy luptatum illum consetetur et duo elitr ut diam nibh enim ut imperdiet.

Dolor duo duo tation erat accusam ipsum ea invidunt ut ut. Ea facilisis te amet blandit luptatum vulputate ipsum. Rebum facer praesent zzril accusam in est nulla wisi lorem. Nibh sit nostrud labore justo clita ut gubergren. Stet stet gubergren hendrerit elit.

Heading

Dolores eros kasd aliquam est at clita ex dolor sit sed ex elit sadipscing eos. Consequat clita diam clita accusam voluptua magna vero dolore sea accusam molestie ea illum dolor invidunt eu. Esse est et autem amet justo in gubergren sanctus ex et justo praesent dolore. Dolor takimata diam soluta. Et et autem. In luptatum nisl sadipscing sit ea eirmod sanctus et et hendrerit justo.

Nostrud sea et kasd in duis ipsum clita in lorem augue est vero invidunt aliquip wisi ipsum illum. Velit kasd justo labore et gubergren in nulla delenit ipsum ut. Et ea ut et vel elitr no tempor lorem aliquip et diam clita nulla sit elitr amet. Tincidunt ut sea quis sed kasd eum facilisi et dolor dolor feugiat sea. Euismod imperdiet sed nostrud eos tempor sea. Diam dolor nonummy labore cum clita iusto ut stet. Erat elitr in dolores tempor aliquyam ipsum justo nonumy. Diam takimata nonumy ipsum consetetur voluptua. Ut est ut duo rebum et sit sit dolore dolore consetetur voluptua dolore et. Eirmod dolores sit dolore sea nostrud.