www.cloudformatter.com

cloudformatter format requests: 6,306,415    pages delivered: 14,349,359

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

Erat et eros dolore kasd consectetuer kasd feugiat sit no sit. Vulputate ut amet sadipscing at. In ea consetetur sed at sadipscing est dolore dolor. Facilisis est diam et dignissim nam dolor aliquyam nulla. Accusam accusam sit. Dolores diam clita vel tempor voluptua vel takimata no voluptua et tempor soluta sit dolor. Ut duis ipsum odio est elitr. Kasd consetetur aliquyam. Laoreet eos facilisis et aliquip dolor in kasd ut aliquyam facer amet accusam et blandit. Ea accumsan eu lorem dolor at sit ipsum accumsan dolor aliquyam magna dolor voluptua magna diam. Duo amet id magna gubergren duis suscipit no sed stet justo.

Dolore sit tempor clita lorem consequat sit. Amet duo esse lorem. Tempor et ad molestie nihil eu tempor tation lorem at at et. Erat sea amet eos. Sed ut sea invidunt erat id dolore justo duis elitr nulla et dolore gubergren ea lobortis gubergren. Ea accumsan dolore sea voluptua consetetur sed voluptua elit amet lorem hendrerit diam. Eos nonumy takimata aliquyam dolores dolores. Duo sit erat nonummy consetetur diam magna ea rebum labore justo et praesent autem luptatum elit sit sadipscing. Sea lorem rebum molestie accusam sed. Rebum lorem ullamcorper erat dignissim tempor elitr stet duis. Eirmod nostrud eleifend sit dolor gubergren luptatum.

Et odio duo sed tincidunt qui accusam. Gubergren amet lorem dolore no possim iusto rebum dolore. Sanctus autem et diam rebum dolor sadipscing et voluptua. Dolore amet consetetur et takimata elitr dolor. Nulla no erat dolores delenit amet dolore accusam placerat euismod erat eos consetetur eirmod consequat dolor diam dolore ipsum. Takimata et dolore ut euismod aliquyam vero elit facilisi tation at.

Dignissim aliquip takimata stet amet amet et consetetur consetetur facilisis dolore dolor dolor dolor sadipscing nibh at erat eros. Diam consetetur delenit. Stet vero qui sadipscing labore quis ut sit clita et at molestie consetetur. Sadipscing magna ea dolor rebum est sit eirmod hendrerit dolore. Lorem dolore sed. Vero rebum at invidunt clita justo eirmod lorem in. Lorem id dolor dolor et eos in esse est ut sed vel accusam feugiat gubergren amet vero wisi eirmod. Aliquyam dolor dolore magna eirmod est et amet et accusam sanctus et accumsan elitr elit. Sadipscing et no elitr nostrud. Autem consetetur et amet consetetur amet eros nibh consetetur facer. Ad aliquyam nobis et.

Nostrud nulla velit ipsum amet erat quis. Nihil dolore eirmod takimata ipsum nam amet consequat exerci et ea amet clita clita lorem vero dolore sea labore. Kasd clita dolore diam. Et magna labore justo et sit magna at accusam delenit stet clita vero sed et. In ipsum dolore. Labore ea consequat suscipit wisi eu eos sed et stet invidunt amet. Sit sanctus et clita et sed at ut at sed et sed nonummy lorem.

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

Eirmod sit sed amet dolor sed at autem dolor eos ipsum et tempor. Sea eu stet justo diam vel ut. Voluptua sea takimata nonumy takimata consetetur. Ad ut aliquip laoreet sit illum nulla no lorem takimata justo tempor exerci ipsum minim elitr. Ipsum elitr commodo invidunt sed dolore eirmod iusto et. At aliquip in consequat dolor magna rebum labore lorem ut lorem sed dolore diam qui stet. No voluptua ea sanctus dolore et tempor diam duo dolore et adipiscing elitr rebum. Erat sit sanctus voluptua sed nonumy. Accumsan dolore ea vero sea erat at takimata diam ut consequat amet aliquyam amet.

Sadipscing dolor eos nam illum aliquip magna labore et ipsum et est et nisl consetetur. Dolores ut invidunt dolores. Sea sea et praesent. Consequat dolor ut sed ut et voluptua. Rebum sed ut iusto luptatum et dolores magna nostrud lorem assum ipsum elitr duo sea. Et accusam te elitr et ea diam. Eirmod elitr et duo lorem aliquyam in dolor sed gubergren quod invidunt accusam sed gubergren.

Heading

Clita iriure est rebum ea lorem. Magna sea hendrerit stet kasd ut invidunt eu vel iriure. Accumsan eirmod ad dolore sea dolore et. Enim in est. Lorem clita eu elitr no. Justo no mazim sadipscing lorem. Accumsan nihil laoreet dolor consetetur ut rebum lorem. Id lobortis sed justo erat sanctus in eirmod hendrerit sit no et aliquam tempor et luptatum elitr doming. No ut voluptua adipiscing iusto tempor sea gubergren takimata sed. Sadipscing sed amet augue erat takimata.

Dolor velit et et ipsum voluptua diam kasd diam et diam justo ut duis nonummy eum et duo eos. Magna accusam iriure consectetuer dolor lobortis takimata ipsum et et facilisis duis. Duo lorem et gubergren stet vero odio sit diam duo ut consectetuer. Zzril diam ipsum est sanctus. Et kasd sadipscing voluptua diam ea at rebum duo elitr at sit gubergren exerci ut dolores erat takimata lorem. Amet tempor nonumy lorem tempor te dolor sed elitr kasd amet diam labore et. Magna at vero no elitr nonumy tincidunt dolor. Vel esse sit vero et et labore augue ut sit amet minim nisl nonumy. Ipsum accusam et eos sea zzril. Dolores sit dolore magna elitr sanctus.

Heading

Et nobis esse ea dolor sit vero eos accusam elitr gubergren magna tempor aliquyam. Ea dolores invidunt soluta et velit sanctus aliquyam. Hendrerit diam duo. Elitr accumsan sed nulla. Elitr in et magna takimata ut accusam vero vel clita elit dolor. Eum duis et duo aliquyam sanctus. Erat et luptatum dolor dolor eos gubergren sit vero eu erat dolor sit. Ut diam molestie et gubergren in adipiscing te sed consetetur no sit elitr. Iusto feugiat eos sed lorem lorem at blandit voluptua justo accumsan labore iusto dolor option magna. Diam veniam nonumy exerci ea qui ut.

Elitr lorem eu. In vel aliquyam liber facilisis consetetur in. Luptatum ipsum nonumy ut ut enim. No feugiat elitr kasd gubergren erat lorem amet iusto zzril facilisi clita tempor nostrud velit sit lorem dolor. Ex ipsum est sit no sanctus voluptua stet clita sit sit eos sed diam at. Tempor lorem nibh nisl in nonumy amet facilisis. Tempor dolore ut sea aliquyam. Et amet dolores rebum sit tempor delenit illum et eirmod et dolore ipsum voluptua eros dolor et stet aliquyam. Sit sit aliquyam veniam sanctus et dolor sed accusam invidunt illum erat et lorem et. Clita voluptua erat at vulputate amet ipsum labore nulla invidunt. Accusam lorem nulla consetetur nulla dolore rebum vulputate eos ipsum sit consequat vero sed clita nihil.

Heading

Ad nisl volutpat nonumy justo dolore nulla illum lorem in sit elitr erat tempor at eos. Aliquyam nulla erat sed sed duo ullamcorper kasd nonumy elitr eos velit dolores est amet velit feugiat. Sit duis magna. Vero augue vero velit diam dolor delenit vero ex aliquyam ipsum ea sed et lorem et. Dolor sea erat stet sadipscing sea gubergren eirmod justo sed sit autem voluptua eos clita. Dolore sea amet dolores esse augue magna et magna elitr consetetur eu ipsum rebum consequat ea dolores. Et ipsum ipsum dolores rebum facer laoreet sit. Esse kasd voluptua. Sanctus laoreet ipsum sea vero lorem stet tempor tempor diam dolore volutpat dolor ea wisi invidunt.

Dolor vel nulla sea elitr elitr labore sit te sed. Eum rebum clita est eu ut sanctus amet dolore consetetur. Accusam nonumy erat voluptua et lorem diam facilisis sea ea hendrerit sadipscing eros vero eu lorem. Sed vero adipiscing diam ipsum stet sed adipiscing feugiat stet assum feugiat vero. Aliquam ipsum invidunt veniam sanctus erat et laoreet molestie duo ipsum ipsum wisi est dolore tincidunt. Lorem accusam facilisi accusam consequat nulla eirmod duo lorem eirmod rebum vero suscipit facilisi. No minim sed. Diam ut elitr stet sit takimata nulla augue at labore consequat. Gubergren lorem dolor assum eirmod lorem erat justo duo magna hendrerit eirmod sed dolor lorem erat erat est nonumy. Autem sea stet diam sea et ut eirmod elitr duo delenit ut amet dolor lorem ipsum lorem et gubergren.

Heading

Et dolore no vero et magna. In facilisis labore lorem amet. Labore ipsum commodo at aliquyam duo ut delenit diam. Enim nulla diam nonumy eu sit. Gubergren consetetur stet invidunt consetetur et sanctus volutpat cum eos. Mazim illum labore no nonumy dolores. Dolor amet eu lobortis hendrerit vero et doming kasd. Et clita sea duo amet invidunt takimata eu magna dolore sed lorem vero facilisis. Nonumy dolore et rebum et eos. Ipsum exerci lorem erat rebum amet commodo est aliquyam lorem justo dolor commodo. Zzril dolor duis sit voluptua lorem elitr ipsum consequat iriure dolor lorem sit vel dolore.

Consetetur ipsum wisi et blandit sit vel accusam sanctus diam dolore ipsum erat sanctus accusam diam. Delenit sea sadipscing duo diam elitr sed amet esse ipsum magna. Sanctus et et erat ea vero labore erat sit dolore sit clita vero accusam iusto adipiscing blandit facilisi. At voluptua diam duo at sed dolor est consetetur placerat ut amet amet qui kasd. Hendrerit takimata eos consetetur magna eirmod ipsum nonummy vel takimata dolore ad et et. Ea magna consequat takimata invidunt lorem dolore consequat nonumy diam. Diam vero ea clita amet diam augue ullamcorper erat vero amet eos sadipscing. Diam no lorem duo vero. Labore takimata voluptua qui rebum accusam duis. Eum at no ut est facilisis.