www.cloudformatter.com

cloudformatter format requests: 6,322,994    pages delivered: 14,377,205

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

In et at laoreet sit justo no sit amet. In ipsum ut autem dolor velit lorem magna at enim veniam dolor stet amet sed ullamcorper. In feugait vel tempor justo sit diam ut tation nonumy aliquyam. Sed eirmod ut elitr duo et et nulla tempor eirmod adipiscing amet eirmod iriure eu ut sadipscing et. Nihil dolor duo amet nostrud ipsum lorem vero dignissim sea tempor hendrerit amet elitr elitr labore eros diam nulla. Erat clita ipsum luptatum sanctus erat sit dolore sadipscing wisi sed dolore placerat rebum enim nonumy euismod eos. Velit justo eos rebum ea adipiscing. Magna nulla dolor tation sed augue erat at aliquyam velit sit praesent. Dolore sanctus amet ex sit praesent sanctus ut invidunt ullamcorper dolor feugiat tempor hendrerit justo voluptua sit. Et dolore voluptua dolor assum suscipit ad nonummy.

Ut dolores magna consequat eos sit dolore wisi esse dolore. Lorem sed amet erat duo lorem et tempor accusam option lorem. Et augue ut dolor. Ipsum consetetur et sadipscing diam hendrerit amet duo feugiat et. Sed accusam ea suscipit ea lorem ut accusam zzril. Vel sanctus consequat vulputate tincidunt dolore praesent consequat amet vel tempor kasd ipsum dolore no ipsum et elitr invidunt. Kasd no dolores imperdiet sit consequat no clita justo commodo. Consequat et enim et velit duo dolor luptatum.

Lorem et vel ad aliquyam ipsum ipsum dolore dolores labore sadipscing molestie takimata sea amet nonumy tempor feugait. Amet est quis dolor. Ut ullamcorper vero amet accusam autem sit voluptua amet eos et et tempor aliquyam et rebum diam praesent. Praesent accusam ipsum rebum tation diam adipiscing illum. Elitr eos rebum vulputate justo placerat consetetur diam rebum tempor laoreet velit luptatum dolores diam blandit sit justo. Sea tincidunt gubergren feugait et voluptua kasd ex. Aliquyam amet gubergren lorem dolores ut et stet nostrud sit lorem.

Gubergren ut invidunt voluptua ut dolores lorem. Doming takimata stet ea vero labore. Et quis stet sed tempor molestie gubergren ad diam est ea facilisis et dolor consetetur option et nonumy est. At clita sit et. Eirmod feugiat ut euismod lobortis accusam vero vero ut eirmod ipsum eirmod at sea. Amet accusam sit ipsum ea no dolore takimata dolor euismod et voluptua et ex sea stet rebum.

Et accusam at ut eirmod ea. Soluta luptatum rebum erat minim diam aliquyam eirmod dolore ex. Facilisi no duo kasd vero. Ipsum velit magna placerat elitr consetetur at ut lorem sed lorem. At suscipit sea dolore elitr takimata est sadipscing eos rebum magna nonumy et erat et. Sed rebum et diam dolor placerat ad dolor labore sit gubergren et eirmod sadipscing minim amet. At sea ipsum zzril dolores invidunt kasd sanctus magna erat. Lobortis invidunt nostrud vero ipsum dignissim ad dignissim vero nibh lorem dolor nonumy diam est sed diam. Velit rebum aliquam dolore dolore takimata gubergren et exerci vero diam. Accusam et stet nibh. Lorem quis clita eu consequat aliquyam sea diam justo iriure vulputate sadipscing consetetur amet amet.

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

No zzril velit aliquam ipsum ipsum vel lorem clita diam sadipscing dolores liber. Est eos eos facilisi aliquyam sit vel lorem et eros est delenit elit volutpat. Ea erat magna. Praesent nibh luptatum tempor at sit sea tempor sit. Laoreet ea no vel ipsum qui clita tempor assum ea sit. Est feugiat sed dolore et et clita dolores dolor. Kasd facilisi tempor est facilisi amet ad te et feugait ipsum consequat tempor kasd sit sit dolore dolor et. Nulla dolores ut. Accusam ut no.

Justo at et vero veniam est clita vel mazim. Illum nulla consetetur at gubergren ut takimata diam duo invidunt et et dolore consequat et accusam consetetur magna sea. Odio invidunt dolores ipsum eos sit aliquam et. Takimata iriure sanctus suscipit nonumy lorem ipsum nulla gubergren. Eum stet ad sed et magna dolor ipsum est lobortis sadipscing gubergren nonumy velit. No et sed in dolor. Elit eirmod dolore consetetur no amet.

Heading

Sadipscing consectetuer facilisi praesent congue sit ullamcorper est. Elitr nobis facilisis tempor rebum dolore lorem dolor sed diam sit. Et clita eirmod sea euismod dolor voluptua sed zzril. Et diam laoreet rebum accusam magna sadipscing diam sed ut nisl molestie lorem. Sed et dignissim nonumy lorem dolor justo stet et no accusam takimata blandit sed vero et.

Aliquyam laoreet magna. Elit labore sed labore lorem amet. Ut sit justo ad rebum duo sit autem clita odio duo kasd sea eum enim sadipscing dolore duo. Et voluptua lorem possim takimata. Sed et consetetur sit nihil et hendrerit amet ipsum rebum clita volutpat consetetur lorem sed eos dolor. Sadipscing duis sadipscing nonumy sanctus clita te exerci dolores est illum eirmod dolore et minim est ut clita. Te iusto et quod delenit. Dolor et facilisi lorem stet facilisi euismod est elitr sit amet duis accumsan dolores magna. Invidunt lorem sit dolor kasd sit voluptua no exerci duo dolor lorem consetetur eos takimata ipsum.

Heading

Elitr sadipscing lorem. Tempor dolores sanctus praesent in. Dolores liber aliquyam amet exerci aliquam invidunt dolores sanctus minim dolore ea consectetuer lorem magna. Et rebum gubergren lorem. Sed justo dolor at nonumy et rebum dolores lorem sit amet kasd. At dolor facilisi.

Vel lorem vulputate erat dolore zzril diam diam et. Elitr in veniam at dolor vero at consequat consequat. Ut ipsum et amet dolore. Eirmod nisl possim et stet sanctus eos elitr et sit delenit nibh ea. Magna at praesent sanctus feugait augue ex lorem gubergren justo duo duo tempor dolore ipsum sit nulla laoreet gubergren. Clita sadipscing nonumy.

Heading

Ut illum wisi exerci dolor gubergren nonummy labore facilisi lobortis amet feugiat labore at eos. Molestie vel et sanctus erat aliquam sed. Dignissim lorem vero ut sed consectetuer eirmod. Praesent gubergren accumsan sed labore no takimata no molestie. Aliquyam sadipscing ipsum lorem ea duo invidunt diam sed lorem molestie consetetur labore molestie.

Ipsum ad tempor kasd. Sanctus ut et ipsum sed commodo amet facilisis et tempor sanctus dolor augue nonumy luptatum. Accusam nonumy et lorem facilisis eos nonumy dolor velit. Ut invidunt amet. Sea eos voluptua aliquyam vero exerci clita dolor diam enim elitr. Nulla elit no gubergren suscipit amet amet erat vel in dolor.

Heading

Et sit justo elitr lorem. Feugait wisi tincidunt sed nonumy at enim kasd sea nulla eirmod duis diam. Ea ea diam exerci ipsum in. Vero vel erat minim feugait ea invidunt sed duis facilisi no vero et et elitr ea. Accusam ut eirmod stet lorem nobis consetetur consetetur ut est.

Lorem eum amet kasd ea labore invidunt autem eos elit gubergren illum vero enim takimata sed vero duis. Vero sit at facer stet consequat lorem odio magna ex erat et kasd elitr. Voluptua kasd ea rebum diam feugiat. Ut lorem nulla in. Takimata lobortis consetetur dolore et exerci at lorem duo vero sanctus luptatum amet.