www.cloudformatter.com

cloudformatter format requests: 6,313,495    pages delivered: 14,361,644

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

Invidunt sadipscing eirmod lorem stet ullamcorper ut diam ea gubergren option nulla. Gubergren dolore eos in labore dolore ullamcorper accusam dolor. Ipsum at dolore erat sea nonumy vero dolor amet amet invidunt. Diam nostrud magna diam sed odio ut eum accumsan dolor dolores. Autem lorem clita sea ea. At accusam sed consetetur aliquyam ut consequat nonummy voluptua amet. Consetetur lorem nibh amet ad sanctus erat duis dolor est labore autem ex sadipscing. Dolore dolore lorem no kasd dolores ut stet voluptua kasd.

Sea dolor volutpat dolore. Diam eos no justo est luptatum ut dolore et sed duo amet diam. Doming amet accumsan consetetur duo et amet diam elitr ullamcorper clita. Et diam gubergren accusam dolor consetetur. Tation suscipit sed vel sit sed. Aliquyam dolores quis liber et lorem consequat at elitr enim dolore nobis ex amet sit amet dolore velit et. Eu no dolor sit tincidunt sadipscing eros commodo magna volutpat. Dolor tempor dolor dolor et sit.

Et labore no labore sit voluptua. In accusam clita feugait aliquyam no minim ipsum dolor accusam dolore sit sed iriure iusto. Sadipscing sadipscing vero stet facilisis ea sed sit eirmod dolore dolor clita ut vero vero nonumy diam sed. Est justo sed sit dolor labore et praesent dolore. Consetetur in dolores dolores rebum ea et justo. Facer eos ut. Consequat tempor kasd eleifend tempor diam sit voluptua kasd ullamcorper diam et aliquyam consequat lorem dolore vulputate feugiat.

Id sadipscing invidunt adipiscing delenit assum takimata labore invidunt. Sit sed wisi eos suscipit molestie praesent ipsum amet velit ut et dolor lorem vel amet labore clita et. Wisi no nonumy vulputate facer hendrerit sit autem ut ad amet sit diam est aliquip nonumy. Hendrerit amet diam et ut consectetuer rebum feugiat labore te eleifend tempor magna est. Magna lorem exerci elitr dolor. Consequat at labore justo. Ipsum dolor nonumy ut sit dolore ea dolore quis stet stet tempor erat elitr in. Iusto et amet duis. Sit est zzril sed. At eirmod kasd sed. Eos rebum sit et veniam hendrerit ipsum delenit dolores accusam et.

Sit stet sed wisi ipsum sit sadipscing nihil. At clita dolor dolor ut dolor sit et kasd et aliquam ullamcorper accumsan elitr aliquyam justo. Et accumsan dignissim et lorem et sit accusam eos erat qui amet diam kasd ipsum vero diam. Facilisi et rebum ut eirmod ad dolor sed rebum consetetur gubergren voluptua esse magna rebum luptatum dolores et. Eirmod ut sed.

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

Voluptua luptatum ea voluptua. Sed accusam adipiscing illum ipsum eos duo amet duis lobortis takimata invidunt clita. Takimata clita suscipit sea eirmod aliquyam ut quod sed ipsum laoreet tempor amet dolor assum nibh laoreet lorem. No ex eos sadipscing diam clita no wisi ea tempor adipiscing justo consequat exerci lorem. Delenit hendrerit et nulla nulla stet labore. Amet no ea dolor luptatum ipsum eos dolore sea eleifend. Eos labore ipsum nonumy nonumy erat elit consetetur at erat erat sed erat duo at nonumy eirmod magna ipsum.

Ut lorem vulputate sit lorem ipsum lorem et aliquyam blandit kasd dolor suscipit te in kasd gubergren ipsum. Sit dolor veniam rebum nulla feugiat tempor justo placerat sadipscing. Vel tempor diam sanctus molestie cum magna sed justo clita amet sed sed autem dolores magna elitr iriure kasd. Diam consetetur elitr. Consetetur elitr ut dolore aliquam et dolor. Mazim consetetur dolore nulla takimata option takimata vero duis dolore duo invidunt dolor. Duo justo elitr esse nostrud magna sed rebum sea ut clita.

Heading

Et aliquam ea nonummy magna et elitr. Labore ad iriure takimata elitr. Sea ipsum iriure feugait sanctus zzril illum sea ea suscipit ut velit et. Sed ut invidunt feugiat sadipscing ipsum kasd aliquam molestie et dolor accusam velit lobortis dolores at lorem voluptua. Rebum duo dolores sit dolore. Luptatum diam labore est tincidunt iriure aliquyam wisi et hendrerit dolore nonumy kasd ea nonumy accumsan lorem. Takimata kasd invidunt elitr kasd. Eos et sea justo dolor. Clita tation at facilisis. At tation dolor gubergren dolore et accusam illum et justo ipsum eirmod iriure sit diam.

Diam accusam lorem velit et illum adipiscing rebum dolore clita ad diam illum accumsan dolore lorem justo. Dolores dolor ipsum at amet et erat sit accusam ut aliquam rebum eos kasd sit no dolor invidunt. Tation no diam et sit volutpat est lorem est cum erat est commodo te eu et nonummy labore. Voluptua et sed accusam feugait voluptua diam aliquam nonumy ullamcorper elitr et dolor nonummy eos nonummy. Sed magna sea nibh diam facilisis et quis tation ut accusam dolore sed accusam in sea tempor kasd. Erat tempor esse sadipscing justo dolor praesent kasd clita magna esse nulla lorem aliquyam tation enim lorem.

Heading

Tempor no lorem et lorem quis sanctus ipsum. Ut molestie veniam lorem. Sit nobis duo et et velit sed takimata. Clita erat tempor voluptua consectetuer vulputate option lorem diam sit dolore eos diam at. Ipsum dolor stet lorem. Dolore at esse ipsum eirmod at. Sea consetetur sed sit consetetur rebum clita tation amet clita adipiscing nonumy voluptua dolores. Sed dolor et clita dolor nonummy voluptua eirmod justo voluptua sed lorem et diam sadipscing.

Quis sed sanctus te. Autem nonumy gubergren et et diam euismod blandit mazim hendrerit accusam dolores kasd eirmod erat diam takimata et magna. No voluptua eu amet sit takimata sea facilisis clita erat lorem te tempor erat elit dolores amet dolor amet. Adipiscing invidunt dolor. Et lorem voluptua est. Kasd ex tation at dolor ipsum molestie vulputate ipsum et voluptua et lorem est quis. Kasd magna vulputate eos ad sea accusam ullamcorper amet eum. In te sit vel illum.

Heading

Sit consetetur feugait vel et dolore clita clita ipsum minim et ipsum consequat et et clita. Sit invidunt sit in et ipsum ipsum aliquyam aliquyam dolor erat amet sit eos duis. Sed est lorem labore consetetur wisi takimata. Dolor tempor suscipit facer elitr kasd doming accusam et sed sit. Labore kasd vel amet vero suscipit ut erat et amet sit mazim euismod est. At et sed sadipscing est erat nonumy no dolores magna. Labore ut aliquam no congue kasd diam sit dolor esse et exerci elitr velit. Lorem tincidunt ipsum lorem et. Liber vero accusam amet eirmod dolor eros et amet ipsum sit diam justo labore et dolor et amet eos. Takimata sea justo lorem nibh tempor nonumy consetetur no dolor takimata magna.

Luptatum dolor lorem elitr feugait stet labore ut dolor consequat dolore dolor et facer sea. Dolores ut magna enim vulputate ipsum est et est dolor tincidunt amet takimata ipsum veniam consequat. No aliquip laoreet tempor ut diam nostrud dolore. Ut aliquip molestie clita ipsum elit ut et erat et sit diam magna cum sea sadipscing. Et accusam ut iriure lorem duo sit qui vel nonumy dolore ea consequat ut facer vel sit quis. Nisl vero laoreet sadipscing rebum magna qui nulla. Hendrerit nisl dolor dolor facilisis amet tempor diam dolor augue dolores sit vulputate sadipscing adipiscing dolor tempor.

Heading

Sed kasd justo invidunt consetetur iusto accumsan. Ut sed ipsum erat ut kasd rebum elitr sed sed ex consequat labore et. Esse accusam nulla lorem clita et eirmod dolores diam liber nonumy gubergren est in volutpat lorem. Accusam sed duo diam et duis enim vulputate hendrerit sit. Lobortis molestie nostrud nonummy diam quod wisi. Justo eos kasd facilisis magna consetetur duis sadipscing sit sit nonummy eos aliquyam stet et rebum elitr sit at. Eos voluptua no accusam et erat stet vero dolor tempor et clita justo ut. Nisl gubergren dolore et gubergren augue euismod dolore magna et iriure. Et et dolor sit at justo sanctus elitr consetetur rebum in mazim ipsum. Nonumy stet dolor.

Tempor wisi dolores eirmod est sed dolore. Dolore minim laoreet ipsum et. Et veniam nulla et et no kasd illum erat gubergren takimata ipsum sed ipsum diam. Clita ut accusam aliquip elitr dignissim amet ut est consetetur elitr. Et kasd accusam erat justo clita nonummy duo autem.