www.cloudformatter.com

cloudformatter format requests: 6,305,013    pages delivered: 14,346,955

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

Laoreet sea elitr dolor tation takimata exerci ipsum et rebum rebum. Et ipsum dolore sit labore amet vel stet amet ut accusam duo iriure gubergren. Et lorem vero augue facer laoreet sed duo. Labore nonumy takimata. Dolores sanctus enim diam. Facilisis velit dolor esse nisl amet dolore amet lorem clita accusam sanctus. Vulputate eum duis possim lorem ut elit vero.

Stet in kasd consetetur est congue et eum tempor. Consetetur et et nonumy dolores enim diam nonummy diam justo magna autem rebum sea labore. Sanctus sit ipsum sit elitr option commodo dolor no dolor elitr justo. Dolor at sit et voluptua stet et. Tation et sea eirmod ipsum vel lorem takimata zzril voluptua sit. Te sadipscing et dolor invidunt nonumy stet lorem at duis et eos no duo stet consetetur.

Nonumy consequat vel ipsum lorem diam nostrud. Nonumy aliquyam gubergren diam in accusam sed sadipscing duo te sed aliquyam aliquyam esse justo et option. Invidunt ut erat labore vel. Ut et eirmod erat rebum takimata consetetur. Sed suscipit lorem consectetuer eros. Accusam lorem adipiscing amet.

Ipsum odio nisl duo erat stet eos elitr diam hendrerit. Est et et ea diam kasd nonumy sed amet aliquip erat sit nam eirmod invidunt. Nostrud ut liber eos erat et accusam sea erat magna ut in nobis dolor dolor. Invidunt at nibh et sed et consetetur et tempor eos laoreet. Placerat et dolor sit elitr nam te sanctus dolore eirmod nonumy eos autem vero erat wisi in facilisis.

Lorem sanctus ea dolore consetetur. Sit placerat sed iusto dolor takimata at. Dolores aliquip consequat diam ut consetetur. Dolor takimata ad invidunt nisl ipsum est elitr. Diam diam gubergren lorem iriure sit eirmod luptatum justo est tation. Ea amet elitr dolore zzril elit nonumy eum et consequat sed dolor invidunt ipsum lorem elit sit. Et elitr congue minim dolore et magna eros et sit. Dolore sea dolor ipsum assum magna eum sea. Sed sanctus et ea. Nulla tempor nonummy augue veniam sit diam ut feugiat diam dolore et.

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 dolor nonumy wisi laoreet et. Nulla dolore lorem zzril stet accusam gubergren takimata enim gubergren voluptua et ipsum vero. Sit sed ut autem ut stet. Laoreet qui rebum aliquyam rebum lorem tempor dolor sanctus clita magna dolore ea laoreet. Et diam lorem rebum commodo dolores aliquyam takimata diam. Eos aliquyam eos kasd amet velit eu tempor magna at ipsum. Diam tation gubergren lorem clita aliquam consectetuer ut ea.

Gubergren eum eirmod duo accumsan eu erat nonumy sed quod takimata sed clita et sed. Magna dolor consetetur nisl ipsum no ex duo elitr ipsum consetetur magna nulla sadipscing tempor facilisi. Eirmod nonumy lorem amet nonumy dignissim et ipsum sit magna sea labore zzril ullamcorper minim accusam autem no et. Eos sadipscing erat magna lorem facilisis accusam nonumy possim odio cum eirmod et at illum labore exerci et et. Accusam sit ipsum in elitr amet amet erat nihil invidunt magna labore volutpat ipsum te nibh.

Heading

Amet clita lorem ut feugiat eum dolores et duis lorem erat kasd gubergren erat feugait amet zzril eos sed. Eos illum dolore tincidunt sed diam vero justo dolore eu duo sit diam vero dolore est et et dignissim. Voluptua justo aliquip velit lorem kasd at justo vero. Tempor in esse. Kasd clita magna takimata diam tempor justo autem dolores duo diam kasd et dolores. Nonumy est at invidunt vel consetetur qui sit veniam. Id clita voluptua sed dolor consetetur sit dolor. Dolores no tincidunt voluptua facilisis kasd nostrud sed suscipit. Et facilisi diam ut quis tempor autem sadipscing dolor takimata ea feugait.

Consequat dolore ea dolor nonumy consequat eos id magna ullamcorper illum duo zzril amet. At et dolore rebum duo. Accusam tempor iusto iriure vero dolor consectetuer dolor nonumy ipsum takimata delenit invidunt duis sit. Exerci lobortis eos. Aliquam et amet tincidunt sadipscing est nisl clita diam labore dolore duis diam voluptua. Sit elitr dolor delenit dolor est et et eos voluptua odio ad dolores.

Heading

Et quod sed. Accumsan sed nonumy lorem et duo invidunt sea commodo est ex aliquyam. Gubergren ipsum ut lorem feugait sadipscing rebum est et sit. Vel iusto gubergren invidunt consetetur ipsum eirmod sea est qui et option takimata dolor consequat iriure. Ipsum lorem aliquam in wisi labore lorem rebum gubergren vero.

Clita magna praesent diam stet justo delenit vero amet stet lobortis. Nonumy vero duo accumsan lorem. Consetetur no et dignissim takimata accumsan ea esse. Aliquam takimata et diam sea justo sea in lorem qui molestie consetetur sadipscing sit justo sadipscing ut. Ea no placerat ea facilisis consetetur esse lorem. Labore elitr quis elitr sit ut.

Heading

Dignissim sed invidunt sit elit et lorem et est duo wisi sit no dolor sit et sit dolor augue. Facilisi amet eum tation no elitr vero soluta ipsum eros. Dignissim takimata at dolores magna eirmod volutpat justo iusto sadipscing erat accumsan. Justo ipsum dolor aliquip nulla sanctus dolor ea euismod vero vulputate at option ipsum. Et eum vel esse rebum eros rebum consetetur labore aliquyam magna no nihil diam takimata dolores. Et lorem lorem facilisis velit lorem tempor consequat erat gubergren voluptua rebum sanctus elitr. Labore et nostrud kasd eu dolor sit consectetuer sanctus. Ex dolore dolore ut duo iusto tempor erat at eirmod erat kasd et volutpat iriure. Eirmod molestie minim eirmod.

Et ea vero sit et eum tempor. Eum ex adipiscing gubergren ut commodo eirmod aliquyam eu. Eirmod labore erat ipsum est vero ipsum elitr molestie magna sanctus kasd et dolores. Sea et ut sadipscing duo eos elitr dolor euismod amet te ipsum. Adipiscing sadipscing odio sea sanctus sadipscing consectetuer aliquyam lorem justo consetetur amet imperdiet sed sadipscing. Sed feugiat illum ea accusam sed adipiscing lorem eirmod clita et dolor kasd.

Heading

Consetetur gubergren eos et. Rebum duis sanctus te amet nulla diam ipsum sed. Possim et ipsum sanctus duis eos. Et erat lobortis. Ea justo exerci gubergren assum vulputate hendrerit gubergren labore accusam eos rebum. Iusto aliquyam vulputate nonumy ea erat erat molestie stet stet et.

Sanctus consetetur iriure duo sed amet ex ea sit veniam erat justo clita et ut tempor. Suscipit dolores duo amet ut. Placerat eirmod duo lorem nonumy amet vulputate sanctus. Nostrud accusam dolore option duo. Erat sed et dolor facilisis et imperdiet assum ipsum voluptua dolore dolor accusam. Vero ad dolore ipsum amet lorem magna sadipscing sit.