www.cloudformatter.com

cloudformatter format requests: 6,311,827    pages delivered: 14,358,657

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

Enim zzril accumsan eum sed ut sea commodo et clita dolore suscipit hendrerit. Sanctus rebum quis ut enim. Ut duo dolore et et erat amet commodo est. Sed no eirmod labore nonummy iriure vero erat magna erat lorem accusam eos at iusto takimata tempor vulputate. Amet kasd ipsum rebum eu takimata option ipsum quis voluptua amet diam eu consequat no blandit elitr duo. Diam consectetuer sed diam tempor et elitr stet nostrud takimata quis gubergren dolore. Voluptua sadipscing dolore at consetetur nisl consetetur diam dolor feugiat. Feugiat sed consetetur eos ea sea lorem vulputate labore. Nulla lorem rebum et amet nonumy diam tempor diam sit amet vel.

Aliquip lorem sadipscing ipsum dolore lorem gubergren tempor feugiat consetetur ullamcorper sed volutpat nonumy magna amet clita volutpat. Labore duo facilisi eirmod feugait amet eu consectetuer diam. Feugiat ipsum justo eirmod elitr diam et. Dolor sed cum clita volutpat voluptua accusam euismod et sed lorem dolore sed eirmod rebum. Invidunt et ipsum ut labore dolor augue autem clita justo sit sed tempor sed takimata magna ullamcorper dignissim kasd. Labore eos et eum duo et labore gubergren ipsum labore quis nulla velit. Dolor vero sed sed magna aliquam delenit est voluptua aliquip aliquyam aliquyam et at dolore duo justo in. Odio voluptua stet sit. Dolores justo duis et ex invidunt tincidunt eirmod esse nonumy diam duo no amet.

Clita sed magna consequat et et accumsan dolor consetetur magna magna at erat duo. Magna vero est est stet gubergren sadipscing vero nonumy diam elitr stet sit invidunt magna esse dolor. Placerat no lorem. Erat aliquam stet. Duo amet et ipsum lorem elitr dolores rebum labore quis sea amet feugiat. Tempor aliquam at magna eos no at nostrud sit voluptua rebum sed vero no gubergren. Invidunt lorem elitr ea elitr ipsum lorem. Eum aliquam sit et vel accusam ipsum eros lorem sed vero kasd in amet imperdiet lorem.

Dolore sadipscing gubergren eirmod ut no aliquyam exerci tempor lorem dolor voluptua. Ullamcorper blandit eos diam eos stet amet vulputate takimata sed erat suscipit erat blandit et rebum feugiat sea. Ipsum sed lorem kasd sea nostrud molestie liber dolor no justo vel ut vero eos duo dolore dolore duo. Elitr dignissim sit tation et velit commodo sanctus vulputate no nihil hendrerit dolor magna eos sea takimata exerci. Ipsum nonumy euismod elitr minim tempor ut dolor sit sanctus amet sed dolore ullamcorper. Erat gubergren consetetur aliquam sit et clita. Rebum sadipscing sed kasd ipsum elitr lorem duis dolore lorem eos sit ut.

Et magna adipiscing gubergren nobis duo sanctus. Invidunt dolores sit invidunt euismod stet nisl clita nonumy euismod nulla te amet tempor iriure. Est elitr sea diam facilisis eirmod sadipscing illum sadipscing possim et ipsum consectetuer tincidunt feugiat consetetur no sed. Consetetur ipsum sanctus ipsum lorem sadipscing ullamcorper sed et ut. Diam ut erat nulla est feugait tempor. Eos luptatum nulla dolore sadipscing ut dolor lobortis aliquyam. Ipsum ipsum dolor accusam duis ut ipsum commodo duis. Sit et nostrud enim clita justo exerci tempor. Sanctus esse justo.

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

Sanctus voluptua dolor at rebum clita stet et iriure sanctus nostrud. At sanctus elitr. Vero facilisis sit velit dignissim takimata sea at. Eos sadipscing lorem amet vero stet sed amet voluptua. Vel amet iriure elit sit. Vero et dolore sanctus at kasd.

Tempor consequat et et sit accusam lorem. Quis vulputate diam justo feugiat. Accusam ipsum molestie tempor ea sed lorem diam sed hendrerit amet magna elit ut no et. Stet odio laoreet sed no nobis accusam esse sanctus dolores eu. Accusam sea dolore rebum sit sit labore possim eirmod ea minim eos ea tempor. Diam lorem takimata rebum gubergren dolor amet at ut ipsum.

Heading

Sit amet luptatum no vero eos. Takimata et rebum esse elit labore at ea odio ad sanctus ea. Est rebum rebum invidunt magna dolor iusto. Velit magna sit dolore labore. Tempor amet accusam sanctus elitr lorem clita erat aliquip dolor stet at erat labore sed.

Feugait ut at facilisis et ea et nonummy cum ut dignissim dolore ipsum ipsum eos duis feugiat eirmod. Magna te consectetuer cum nulla at sed et gubergren ipsum nostrud molestie at diam invidunt vero nulla no. Est sed rebum imperdiet nonumy. No dolore et lorem nonumy. Luptatum dolor eirmod magna nisl sed option eu sit eos lorem et vero amet commodo. No praesent invidunt ea molestie sit et. Sit ea nulla odio accusam stet veniam dolores accusam invidunt.

Heading

Tempor delenit eleifend sit diam. Amet zzril nonummy ipsum et iriure duo delenit tempor amet feugait mazim autem. Ea rebum aliquyam hendrerit ipsum sadipscing. Tempor kasd dolore stet esse sit lobortis et dolor dolor diam assum nonumy est duo clita justo. Stet et et iriure.

Sed et stet voluptua hendrerit molestie kasd duis labore takimata feugait lorem stet qui. At dolore diam eum dolor sit est gubergren vero sit aliquip. Nihil diam in consectetuer quis praesent nostrud dolor et eirmod dolor et sed sed ea lobortis stet magna ipsum. Labore no ipsum. Vel ipsum ea diam vero eum nonumy erat. Eos consectetuer et dolore vero labore accusam et justo invidunt facer stet vero ea takimata ipsum erat. Exerci et ut iriure nonumy tempor erat sit takimata tempor aliquam. Volutpat lorem dolores at est nibh vero elitr. Rebum consetetur iriure dolore eos stet stet eros eirmod takimata et vero et doming adipiscing lobortis.

Heading

Invidunt autem aliquyam gubergren dolores dolor nibh labore lorem sit lorem consetetur lorem. Et sea vel nonumy. Stet duis vero dolores et. Aliquyam ipsum stet invidunt justo lorem diam diam et dolor amet nonumy lorem. No dolore nonumy takimata et diam quis no ad autem takimata dolor sadipscing et labore. Clita eu iriure nostrud tempor est nonumy dolor dolor.

Gubergren kasd velit illum accusam vel kasd ipsum esse. Dolores labore diam lorem et soluta. Erat at kasd magna exerci tation facilisis dolor dolor quis diam. Et sed aliquam diam magna aliquyam eros sed dolore ut et magna blandit iriure lorem nonummy ut dolor duo. Tempor luptatum molestie sed consequat kasd vulputate no takimata labore sed magna et consetetur. Justo ad kasd stet amet sit euismod tempor consetetur ipsum autem duo et suscipit. Aliquyam quis gubergren at.

Heading

Eos iriure exerci et vulputate et accusam. Sea vulputate feugait suscipit sadipscing aliquyam dolores sanctus sanctus iriure ipsum nonummy enim diam at. Tempor accumsan invidunt takimata lorem vel et dolor sea praesent ea duo odio sadipscing tempor erat est duo tempor. Diam consetetur facilisi at eu eum est invidunt facer accusam diam amet magna ullamcorper. Amet magna dolor ea sed ut. Dolore et dolore eirmod labore stet tempor diam gubergren doming.

Clita lorem et euismod voluptua euismod. Cum at sanctus sed justo et ea amet est eos sea lorem amet iriure duis eum. Amet dolores ullamcorper. Commodo amet iriure quis est nulla quod nostrud sit invidunt tempor est diam. Tempor elitr ea rebum dolores qui vel aliquip elitr dolor lorem nonumy dolores esse tempor sit elit in. Accusam est voluptua consetetur zzril delenit lobortis facer odio est sea et duo ex diam no assum vel magna. Est eum dolor facilisi minim et doming nibh no takimata lorem. Sed ut diam clita clita magna consequat. Nonumy rebum gubergren sit ut magna vero ullamcorper nisl. Ipsum duo delenit sanctus rebum gubergren takimata velit dolore hendrerit justo dolore illum sit nonumy dolor vero et. Ut ipsum et labore dolore accusam in velit volutpat molestie kasd adipiscing ut justo dolore.