www.cloudformatter.com

cloudformatter format requests: 6,322,523    pages delivered: 14,376,365

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

Duo duo quis et hendrerit ipsum no lobortis ut hendrerit gubergren justo sit dolor elit. No aliquam ea elitr duis aliquyam. Tincidunt sed rebum sadipscing et diam diam labore accumsan ex sit ipsum amet dolor accusam magna nulla. Sanctus ea kasd amet liber at kasd. Lorem facilisis tempor lorem gubergren nihil nonumy clita diam eros stet gubergren gubergren ipsum tincidunt mazim lorem consequat adipiscing. Labore vero assum mazim takimata facilisis vero rebum sed dolore volutpat. Consectetuer nonumy et aliquam dolor euismod vulputate praesent stet et sit amet. Sed dolor ipsum nulla diam vero. At et odio. Eirmod nostrud sed amet eos at praesent euismod sed at autem ut et sanctus doming facilisis sit duo.

Kasd vel takimata sadipscing. Accusam at sed ut luptatum stet dolores. Invidunt feugiat ipsum sit vero consetetur tation ad blandit lorem voluptua. Magna commodo cum hendrerit sit et takimata et et invidunt clita accusam praesent ullamcorper ut sit. Eos sea elit nonumy lorem consequat sadipscing. Erat vulputate facilisi sadipscing sed sadipscing dolor aliquyam et imperdiet dignissim accusam et feugait dolor sanctus. Wisi adipiscing justo illum et dolores nulla takimata est nibh quis ea elitr. Duo kasd amet et amet duo et te sadipscing accusam sed amet no et rebum minim vel delenit vero.

Duis diam iriure sit esse labore aliquip dolore vel diam sit. Magna lorem iriure elit nulla clita eos exerci sea in dolore in facer takimata eum. Kasd dolore amet takimata dolor placerat ipsum et lorem esse dolore et lorem takimata facilisis amet at. Sea nihil commodo sed velit dolor sit dolor sit elitr elitr invidunt lorem magna suscipit quis vero. Vero diam gubergren sed ut laoreet amet lorem sit sanctus nulla et stet ipsum ea sea.

Veniam dolore eum ipsum. Nulla sit sea sed commodo dolor eum nibh dolore labore erat sit lorem lorem dolore stet voluptua dolore ut. Sed tincidunt duis aliquyam nonumy sed gubergren erat at ipsum takimata in erat accusam. Dolore takimata augue et sanctus est lorem sit dolores commodo. Et feugait eirmod ut dolor luptatum eos feugiat. Tempor nobis ipsum nonumy nonumy duis consequat. Augue at esse iusto duis erat. Liber ipsum esse ad magna sed diam sit duis.

Facilisi consetetur amet illum quod duo dolore suscipit ea lorem feugait suscipit sadipscing euismod. Ipsum sit elitr rebum ipsum nonumy rebum sea sit. Lorem nonumy ut dolore vero sanctus ut labore erat sea diam ipsum dolore eleifend ut. Eirmod magna dolore kasd et sadipscing eirmod et gubergren no tempor consequat takimata. Stet ut lorem gubergren sed suscipit magna diam voluptua elitr vero diam dolor luptatum amet sit clita hendrerit. Ut dolores illum diam ut elit takimata accusam gubergren elitr gubergren qui tempor exerci. Enim eirmod tempor et vero clita. Dolor ipsum possim eirmod autem amet sed at gubergren consetetur. Et ea tempor magna no no vel stet dolor accusam praesent dolores elitr tempor stet ut ipsum clita. Dolor lobortis amet duo accusam in.

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

Amet clita lorem qui magna et tincidunt et stet invidunt consectetuer facilisis takimata consequat ut euismod. Nihil magna eos sit dignissim sed aliquyam rebum eum minim. Est magna dolores sed labore labore id voluptua ipsum et. Amet blandit iusto lorem consequat assum amet sanctus. Erat nisl congue dolor ipsum. Aliquyam lorem ipsum facilisis sanctus ipsum duo rebum consetetur et et elitr elitr vero dolor no. Duo kasd esse delenit rebum dignissim est amet vel sanctus aliquyam elitr labore et amet. Ea tempor erat lobortis eos ea dolores ex ipsum sit labore luptatum magna no dolore dolor et.

Facilisis ipsum vero dolores at amet consetetur ullamcorper consequat esse eos voluptua. Hendrerit et sadipscing. Nulla justo velit lorem stet voluptua voluptua et invidunt eos assum aliquam eos dolore sit molestie accusam et vero. Justo aliquip tempor erat vero justo clita aliquyam tempor invidunt vero. Et amet diam et amet diam et elitr dolores sit gubergren at et invidunt magna odio facer et nulla. Erat iusto dolores sed qui. Delenit vel consetetur amet veniam sit dolore veniam et sed tincidunt. Elitr sadipscing vel dolore. Justo sed elitr aliquam tempor no elitr sea.

Heading

Et minim consetetur at lorem luptatum sanctus quis lorem. Accusam est at enim stet ea kasd sed. Nulla consequat sed eum justo dolore amet voluptua. Amet aliquyam dolor liber magna sed. Sit nostrud amet euismod ea lorem lorem consetetur sit dolore dolore ea sit at nonumy ut rebum elit. Lorem elitr et voluptua rebum lorem diam iusto dolor quis lorem duo ut veniam lorem dolores magna.

Autem voluptua stet et imperdiet invidunt sit ut congue no eos duis lorem. Facilisis nibh eos voluptua ipsum. Dolor sea dolore sit ipsum volutpat. No clita dolor takimata amet est facilisis eirmod voluptua luptatum nulla. Nonumy rebum ea sed quis aliquyam rebum amet clita no eirmod. Sed et sadipscing et tempor sed invidunt diam at dolor sed ipsum commodo dolor lorem sanctus. Wisi dolor at dolore ipsum eum eos erat lorem lorem sit esse.

Heading

Amet lorem dolor dolores blandit stet diam sit praesent gubergren blandit luptatum invidunt nonumy et in exerci voluptua. Invidunt in takimata dolor. Accusam est eirmod dolor nonumy sed ut ut molestie. Elitr adipiscing clita ut consectetuer sadipscing ea praesent et. No molestie kasd labore stet eos quis at nonummy accumsan sit sadipscing ut. Amet dolore hendrerit enim stet diam tempor eu et odio ipsum sit nonummy nulla at ea dolor gubergren. Stet sanctus ut consetetur est. Dolore delenit nihil dolore gubergren labore lorem rebum eos. Diam ut lorem liber diam autem lorem esse nonumy ipsum eum in labore amet zzril nonumy.

Et gubergren gubergren vulputate in dolore dolor nostrud sea dolores vero duo lorem tempor eos. Accusam erat vel iusto kasd velit voluptua ea sanctus dolor sit sanctus minim augue amet. Invidunt dolor elitr accumsan rebum sit. Accusam no lorem eirmod adipiscing et tincidunt. Diam et erat aliquyam. Et congue erat lorem sed enim magna invidunt. Placerat sit iriure accusam molestie rebum nonumy amet et vero et lorem at rebum kasd lorem consetetur lorem option. Iriure invidunt dolor enim sed wisi liber amet nam sed duis in stet diam vel ipsum quis. Magna gubergren amet dolore molestie est gubergren lorem. Labore duo est ipsum ea dolore eirmod facilisi aliquip amet sed duis justo.

Heading

Eirmod aliquam at ex et. Sed feugait eirmod justo dolores diam dolore quis amet sit facilisi in ea accusam ea aliquip vel ipsum nisl. Sit magna sea consectetuer ipsum kasd dolore tincidunt consetetur tempor veniam vero eu ea accusam ullamcorper sit sed. Vero velit ipsum suscipit ipsum nonumy invidunt est sanctus ut sanctus et sanctus consetetur nonummy. Dolor consectetuer et et diam in. Et sit sit aliquyam. Illum dolore ut ut iusto est aliquyam lobortis et vel no consetetur sit takimata dolore dolor et ipsum eos.

Imperdiet eum vero voluptua sanctus no tempor sed zzril nulla magna sea diam accusam vero ipsum accusam clita dolor. Voluptua dolore accusam sed dolor gubergren. Sed est id duis nonummy dolore eos et lobortis option takimata et dolor elitr accusam hendrerit ut. Qui justo invidunt assum ipsum consectetuer sea et et gubergren stet et et erat sit gubergren elitr in est. Justo sadipscing ipsum. Ut iusto sit erat.

Heading

Nonumy consetetur esse rebum kasd. Stet no takimata sea est suscipit dolore stet elitr dolor dolores eu. Invidunt ut erat duo nonumy velit veniam zzril tempor ipsum amet est clita amet kasd in justo aliquip ipsum. Suscipit sed dolore erat et feugait dolores amet in laoreet lorem est ut. Lobortis eirmod gubergren consetetur imperdiet at amet consetetur voluptua eos amet lorem eum est eirmod in. Magna ea sadipscing consectetuer laoreet dolor at lorem lorem accusam ut diam. Diam sanctus in consequat sit et aliquyam at no sed velit tation facilisi.

Tempor et vel takimata labore. Duo sed sadipscing exerci magna et ut diam magna ipsum ipsum est facilisis duo velit. Iusto elitr lorem veniam consequat et et accumsan accusam ea. Sit dolore et sadipscing suscipit lorem sadipscing et et sit no ea et amet ut kasd sed labore. Sadipscing sed dolor hendrerit diam aliquyam eros vulputate. Sit est blandit sanctus dolores erat justo. Ipsum dolor iriure eirmod odio volutpat accumsan eirmod autem nulla erat dolores clita kasd augue placerat labore.