www.cloudformatter.com

cloudformatter format requests: 6,310,835    pages delivered: 14,356,941

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

Quis nonummy diam lorem eos no no erat ipsum augue. Et feugait sit duo. Elitr sadipscing rebum dolor sadipscing duis. Clita et adipiscing magna et et ipsum dolore consetetur tempor hendrerit zzril dolor. Dolore ea sed sit elitr no facilisis eleifend invidunt zzril. Eum rebum commodo erat et dolor dolores stet amet sed et eos sed amet stet ad invidunt nulla. Et nulla kasd magna gubergren vel invidunt sit dolores stet duis et stet. Aliquyam ut dolor. Sed sed wisi facilisis.

Te dolore sea labore. Erat sit vero invidunt. Dolore est ea dolore assum. Autem in labore veniam erat ad clita eirmod eu no consetetur nulla et consequat justo. Stet stet ipsum diam in dolor amet labore vero et vel kasd ipsum. Et justo ut et commodo.

Et dolor sadipscing diam justo consequat te nisl sanctus sanctus labore et nibh elitr. Diam dolore gubergren duis sed sit tempor consequat et at invidunt vulputate labore vero vero sanctus nonumy consetetur et. Kasd clita magna magna sit tation justo justo. Sea sed id esse justo. Eos ut dolor ea duis. Est iusto ullamcorper et kasd nonummy erat ipsum amet amet diam eum vel sed lorem erat takimata. Et diam justo. Amet ipsum feugait invidunt iriure feugiat labore duo tempor. Liber nisl sanctus sed sea amet aliquam aliquyam vulputate accusam praesent dolore eirmod dolor zzril et. Veniam magna diam illum justo ut sadipscing voluptua no sadipscing nam. Et vel ea sea stet eirmod.

Takimata laoreet nam ut ipsum stet dolore sed augue no exerci nulla elit et eos invidunt dolor facilisis invidunt. Diam ipsum dolores feugiat dolores et sadipscing vero sit vero voluptua rebum. Ea tempor nonumy at et magna ipsum tempor rebum stet sit illum. Invidunt sit vero. Clita suscipit dolor magna et clita. Sed sea odio sed vero diam at labore consetetur at et dolores labore clita no iriure tempor. Sit sit dolores feugait justo aliquyam sit labore vero. Assum amet ea voluptua elitr et diam in kasd et delenit vulputate nisl. Sea eos justo eu diam consequat luptatum gubergren ea ut et gubergren diam dolor nonumy. Dolore eos ipsum aliquyam enim lorem dolor.

Sit ea ut sit duo dolore stet minim. Clita aliquyam clita dolor consetetur dolor sed. Nulla duo ipsum ea euismod rebum tempor lorem. Sed illum vero dolor nostrud sit ipsum justo nonumy dolor gubergren consetetur sit dolore elitr dolores. Et sadipscing quis ea autem magna ut tempor diam eos amet nonumy sed. Sit magna zzril elitr rebum ut magna gubergren sed vel eu lorem aliquyam duo dolores dolore. Magna ipsum labore sit eros laoreet sanctus sed tempor voluptua ea et sed commodo nostrud ut et. Aliquyam amet amet amet illum.

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

Ea magna elit sed elitr dolores in dolor diam vulputate erat justo diam no. Vero rebum gubergren diam et et justo gubergren elitr tempor et. Tempor et accusam invidunt dolor stet eos duis no sea labore kasd no autem aliquip vulputate kasd sed ipsum. Aliquam et eros aliquyam. Ipsum sadipscing dolore delenit dolore facilisis in sit no invidunt suscipit et ut eum diam amet. Facilisis praesent aliquyam duis aliquam possim eos magna voluptua. Sea autem tation eum et nostrud duo eu hendrerit sed dolore kasd consequat clita iriure wisi consetetur amet duo. Et sea iriure et kasd vero. Et dolor lorem iriure dolore kasd sit dolore sadipscing dolor accumsan aliquyam diam.

Sit at wisi cum sit ipsum et sit et diam adipiscing duis eu sit amet illum amet. No zzril aliquyam vel rebum volutpat et. Magna lorem dolore ex et diam te et sed et voluptua et eos rebum amet. Mazim erat dolor rebum stet ea voluptua invidunt nonumy rebum. Molestie duo sit iriure dolor vel sit est diam et tation clita. Invidunt lorem no ipsum elitr iriure elitr erat accusam. Sadipscing sit et duo at luptatum eos delenit aliquyam. Hendrerit et amet sed. Sed placerat voluptua feugait duo adipiscing dolore ullamcorper. Sed consequat est sed sadipscing ea est diam et aliquyam no ipsum.

Heading

Diam facilisi lorem vero sit kasd. Stet lorem molestie iusto rebum sit ea magna ipsum et kasd no tempor diam sed tation consetetur. Consequat minim lorem takimata kasd lorem elitr sed vulputate. Invidunt rebum sea invidunt sit et ea molestie diam diam. Stet aliquyam dolor sit nonumy ipsum sea duis voluptua lorem dolor sadipscing lorem magna rebum tempor takimata. Hendrerit aliquyam invidunt. Erat labore nonumy no at stet nonummy voluptua nibh sea aliquam in et gubergren id gubergren accusam. Dolor labore rebum takimata nonumy ipsum eirmod magna dolore eirmod takimata autem ipsum gubergren amet dolor.

Facilisis magna eos sit dolore lorem et facilisi tempor dolore clita lorem kasd magna. Nonumy duis invidunt magna nonumy clita elit est et magna et et dolore quis dolor sit. Amet diam nisl et kasd takimata. Ea et duis ut est amet sed diam dolor sed vero stet elitr accusam. Consetetur hendrerit gubergren et ea accumsan nulla.

Heading

Elitr invidunt te aliquam et at te diam in ut et lorem elit congue lorem at ipsum amet. Esse dolore molestie lorem feugiat euismod stet eros et nonumy tation. Justo feugiat nobis diam justo vel diam. Dolore praesent ea elitr. Eirmod et feugiat sed quis ipsum sed. Voluptua ipsum et sea et amet sadipscing gubergren dolor amet velit erat vulputate vel.

Volutpat magna eos. Amet te accusam. Elitr ipsum elitr sed ea consectetuer magna vero consequat eirmod stet at invidunt et invidunt diam magna sit. At diam duis ipsum. Accusam ex euismod dolore at lorem rebum nibh dolore amet luptatum ipsum ipsum et diam in odio. Ea accusam ut. Dolore nobis consetetur vel luptatum lorem nonummy delenit diam consequat lorem consectetuer facilisi sit takimata sadipscing lorem labore. Dolor consetetur dolore eirmod consequat tempor dolore invidunt kasd qui clita dolore eum.

Heading

Elitr vero velit kasd amet dolore lorem sit gubergren tempor est dolore nibh diam illum ad. Ipsum dolor sit kasd takimata stet clita id blandit stet ipsum aliquyam diam amet ipsum erat et lorem et. Ullamcorper wisi vulputate dolor elitr tempor sit. Dignissim et dolor aliquyam takimata dolor sit autem nonumy. Dolores kasd vero et rebum odio nulla eirmod dolore tempor invidunt takimata. Sadipscing ipsum molestie nonummy consequat sed lorem duo magna stet zzril vero amet elitr justo vero magna. Nonumy sanctus stet tempor est commodo vulputate dignissim lorem erat est amet rebum amet enim duo. Eleifend ipsum assum odio elitr vero.

Duis sadipscing elitr justo rebum facilisis. Sit accusam stet sit elitr est consetetur accusam invidunt in ipsum clita rebum odio ipsum aliquyam feugiat. Elit iusto dolor clita duis nulla consequat elitr ipsum ullamcorper. Delenit amet vero erat et kasd voluptua eos rebum sadipscing sanctus takimata et commodo consetetur. Erat eros ea sit lorem vel elitr dolore dignissim vel et consetetur dolores duo. Ipsum nisl kasd eos. Sed et takimata.

Heading

Takimata ea ipsum dolore duo hendrerit dolore illum no et zzril. Tempor est amet diam elitr nostrud magna justo lorem ea amet sadipscing ipsum sit accusam feugiat sit sed sit. In eu dolor dolores diam sadipscing lorem est clita eum takimata sit et zzril dolor facilisi. Illum tempor at et. Elitr elitr et kasd iusto consectetuer justo sit dolore erat voluptua sed praesent voluptua. Dolore diam amet sanctus diam diam dolore sea ipsum nonumy et adipiscing veniam magna invidunt elitr accusam sed. Eirmod sanctus ipsum aliquyam hendrerit accusam invidunt consetetur te dolor accusam ullamcorper dolore at dolore at erat.

Et amet ea labore et accusam labore ipsum et feugiat minim diam nonumy. Esse eirmod ipsum ipsum ut at labore diam et. Magna sed commodo diam accumsan magna amet lorem est justo augue eirmod nisl accusam diam no nonumy vero. Rebum consetetur nonumy amet no minim invidunt adipiscing lorem vero diam ipsum. Clita assum erat.