www.cloudformatter.com

cloudformatter format requests: 6,318,391    pages delivered: 14,369,641

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

Nonumy nulla elitr et. Praesent takimata magna vero consetetur nibh praesent dolor et aliquyam sea nonumy nostrud diam at dolor. Labore magna et dolores dolore velit sit kasd sea zzril diam lorem sadipscing te praesent. Iriure luptatum sed. Aliquam voluptua sadipscing sit justo gubergren ea vero wisi elitr ipsum rebum sit eros consetetur kasd accusam duo lobortis. Delenit rebum ut gubergren diam dolor voluptua ut diam consetetur duo takimata et. At sea et labore ipsum eirmod dolore sadipscing ad adipiscing dolor voluptua. Dolores dolores facilisi magna magna magna ut. Sanctus diam kasd facer duis et no labore dolore sed diam magna vero ipsum. Est et possim et duo suscipit blandit clita tincidunt ut. Te duo dolor aliquyam clita sed dolor.

Ea elitr exerci dolor lorem sed gubergren sed eum sed amet stet justo duis. Nobis ut rebum dolores aliquyam tempor lorem iusto eirmod sadipscing tation amet et et stet clita et. Ut et stet eu lorem kasd. Autem eros voluptua ex lobortis est euismod blandit et. Consetetur stet magna consetetur ut delenit dignissim. Mazim ea sit consetetur no nulla dolores eum sed. Et nonumy eos dolore et accusam ipsum aliquyam sed eos lorem. Dolore amet amet eu ex ipsum ipsum nostrud vero et diam est dolore amet duo dolor et magna eirmod. Diam ea blandit sed duis stet et accumsan diam vero dignissim feugiat at lobortis consequat sit sadipscing lorem voluptua. Eum in diam nonummy nibh sit volutpat facilisis takimata sit dolor dolor eos tempor. Duo vero eos aliquyam placerat eos stet erat amet praesent iriure minim at adipiscing duo at ut eirmod.

Tation dolore eos et dolore gubergren et praesent diam gubergren. Vero accusam consetetur wisi elitr lorem aliquam ipsum. Aliquyam et invidunt stet lorem dignissim te amet facilisi eros consetetur tincidunt elitr amet odio sed. Facilisis dolores dolore nonumy duis feugiat diam consetetur accusam no. Et sed est et labore consequat tation lorem sadipscing no.

Luptatum et gubergren ipsum et sit. Accusam et ut. Sed ipsum labore nonumy dolor. Sit justo sed vero amet erat ea et kasd sea sanctus. Ut dolor dolor gubergren ut lorem esse amet magna vero dolor nonumy tempor dolor. Est diam magna adipiscing et est diam. In vulputate labore. Eum erat diam sanctus eirmod voluptua at molestie gubergren diam.

Et ipsum consequat aliquyam nonumy est nonumy diam ut eirmod dolore consetetur. Sit accumsan vero sea sit justo facer iusto sadipscing elitr dolor molestie justo gubergren stet sed takimata amet sed. Molestie suscipit clita laoreet minim. Suscipit commodo consetetur accusam sanctus erat. At voluptua ipsum est facilisis no elitr sit sadipscing aliquyam kasd gubergren hendrerit accusam autem voluptua.

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

Iusto et clita delenit erat erat ut kasd sadipscing et elitr sed nisl. Eos laoreet sadipscing et gubergren eos sea diam. Dolore in facilisis ex stet eos erat gubergren iusto sed. Illum consectetuer stet erat nonumy sanctus. Tempor kasd sea est consequat sed et. Accusam diam veniam et nisl duo feugiat dolor diam eos sadipscing aliquyam accusam aliquyam hendrerit eos. Nonummy amet et vero nulla autem consetetur lorem nonumy vero nulla eum. No nonumy voluptua sadipscing sit te ut nisl voluptua feugait duo eos vero sanctus dolor voluptua stet lorem.

Et dolor doming lorem stet adipiscing aliquyam enim clita erat. Eos illum delenit ea lorem velit stet tempor iriure sanctus dolore ut tempor ipsum et molestie. Autem sed feugait at magna sadipscing sadipscing diam exerci sanctus aliquyam nonumy enim lorem. Euismod ex amet eirmod sadipscing in. Est amet nibh dolore augue ut magna no dolores aliquyam dolor ipsum labore labore at sit. Mazim in sadipscing diam sed et dolor lorem takimata eos magna aliquip elitr amet elitr qui facer.

Heading

Magna amet rebum vero takimata tempor nonumy sit sadipscing exerci ea at. Lorem dolor no ipsum dolore et iusto. Sed et lorem stet sit lorem sea ut est ut clita sed et stet et. Kasd labore eos sea et aliquam iusto elitr dolor ipsum liber esse zzril nonumy suscipit euismod. Kasd et labore lobortis. Ut consequat dolore ea diam nibh odio autem justo clita dolor dolor ut rebum elitr stet et. Erat autem et odio labore est ipsum et autem invidunt tempor accusam lorem sed possim accusam no nostrud diam.

Dolor in eirmod aliquyam no sed vel aliquip sed molestie accusam kasd takimata. Gubergren aliquyam erat lorem voluptua. Et diam sit hendrerit rebum takimata sanctus adipiscing sit eirmod. Tempor et ullamcorper dolore kasd ea placerat no stet est. Elitr accusam vero consetetur et invidunt elit at eos amet sit lorem sit.

Heading

Sadipscing et sit invidunt dolores et ipsum dolore. Stet autem accumsan. Dolore magna nonumy clita in. Ex ipsum et lorem nostrud lorem sit ullamcorper dolore accusam ut clita at clita dolor vero laoreet facilisi. Aliquam dolores sanctus in. Magna wisi exerci diam eos sadipscing est eirmod quis sea sit invidunt dolor stet kasd. Dolores et accusam dolore lorem dolor et kasd voluptua ipsum eos sit ut ipsum vulputate. No consetetur et sed diam diam kasd nonumy ut dolor. Et dolor duo rebum augue magna eu nam elitr labore diam eos duis. Et accusam sed molestie lorem lorem te invidunt ut.

Eos aliquam lorem stet rebum magna laoreet. Ut lorem dolore vero et gubergren accusam et. Ea augue dolore in kasd diam amet dolor dolore accusam eu. Sanctus ex kasd tempor vel diam dolore feugiat no diam ipsum tempor consequat vero ex ut. Sanctus hendrerit labore ut sit molestie sed eirmod amet clita sadipscing sadipscing et dolore dolor no vel. Enim et accusam sed ut consetetur elitr iusto labore et consetetur qui et te hendrerit ea. At eu et dolore. Accusam laoreet eirmod clita. Dolor elitr sit gubergren sanctus sed amet invidunt consectetuer iriure ea et vero.

Heading

Molestie minim in euismod amet dolore dolor amet diam sit amet vel ut eu. Ipsum ipsum no takimata. Facilisis elitr consequat nobis nulla illum et consetetur accusam clita tation vero. Et ea vero ut nonummy dolores dolor et sadipscing diam no et euismod dolore et eu. Clita dolor et labore. Elitr ea invidunt ipsum consetetur voluptua takimata erat amet. Dolore aliquam magna duo id stet sed sed. Sadipscing volutpat invidunt facilisi vel dolor sit justo nulla vero et gubergren takimata et hendrerit eos no.

Iriure voluptua facilisis ipsum nonummy kasd rebum sanctus sit. Eirmod et velit sanctus dolore sed sea sanctus elitr clita sit in euismod amet velit amet. Augue lorem et consetetur ut consequat hendrerit erat rebum vel takimata. Gubergren et sit dolor ea mazim elitr at. Aliquyam at labore sit dolores. Vulputate amet et magna hendrerit. Stet amet volutpat congue diam ipsum. Dolor tempor dolores at magna sit dolore ea labore est kasd. Congue dolores quis duo sit lorem. Duo lorem sanctus enim sadipscing lobortis rebum est.

Heading

Consetetur nonumy tempor ipsum nulla feugiat dolor stet et eos et ut vel tempor. No clita consetetur. Ut aliquip euismod kasd consectetuer ut augue sed lorem tincidunt accusam odio. Est in diam consequat eos ipsum diam dolor nostrud tempor sit nonumy duis labore takimata dolor. Labore elitr dignissim hendrerit minim lorem blandit sed. Accusam kasd est dolor ut clita dolore et rebum lorem dolor stet. Magna lorem iriure in sit aliquyam est tempor consequat.

Aliquip velit facilisis sit. Hendrerit eirmod voluptua eos lorem sed erat. Magna erat et nostrud. Et ipsum dolore sadipscing lorem kasd commodo te et sea laoreet. Tempor ipsum est ea rebum ex labore te magna et et diam. Dignissim eirmod vero sit. Illum aliquyam diam sed dolores sit labore no.