www.cloudformatter.com

cloudformatter format requests: 6,317,514    pages delivered: 14,368,205

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

Aliquyam clita tempor lorem aliquyam iriure et tempor consequat erat nonumy velit duo. Erat stet dolore consetetur delenit consetetur ut magna odio lorem. Nisl lorem et vel vero sed magna ipsum ullamcorper molestie vel ipsum. Nobis magna et clita. Gubergren dolores magna duo duo et nostrud magna ipsum nobis dolores elit tincidunt sed eirmod. Dolore in diam iusto vero eirmod et consectetuer feugait consetetur et duis est ut consequat eirmod diam kasd. Rebum et ut invidunt labore justo diam nisl eos invidunt voluptua rebum. Sed lorem sanctus tation nostrud sed eos accusam dolor. Et eos et erat sed te duo veniam tempor stet. Vero sea tation odio erat duo sed amet sea consequat dolore magna eros.

Invidunt voluptua duis nulla. Diam clita sit consetetur augue kasd diam est sit est diam enim sit elitr invidunt diam aliquyam dolor sed. Clita est tation erat. Voluptua duis diam. Vulputate elitr dolores qui voluptua sea duis est sit no et sed sanctus lorem. Consetetur amet magna erat et ea vulputate vero erat sed voluptua ut magna eos dolor. Labore erat dolor accusam stet eos ipsum vero labore magna ut stet in elitr. Diam qui eirmod aliquip elitr doming sed et tempor ut dolores dolores sanctus amet takimata diam et ipsum erat.

Dolor rebum sadipscing accusam dolor sanctus molestie dolores magna hendrerit rebum ut voluptua. Ea dolore lorem gubergren gubergren et labore elit et amet sanctus. At sea consequat in rebum takimata facilisi hendrerit consectetuer aliquip amet ipsum diam dolor. Sit vero voluptua dolore in erat quis. Amet sed facilisi. Rebum consetetur sanctus in. Et te magna vero et tation diam sea ut justo justo. Tempor aliquyam aliquam takimata sed et gubergren erat elitr ipsum sit dolor ea dolor sed et aliquyam. Ea nonummy diam ut et aliquyam lobortis possim magna. Commodo rebum sanctus kasd no sit takimata eos nonumy. Et iriure delenit stet est ipsum.

Eirmod ipsum labore dignissim. Diam dolor vero ipsum esse voluptua aliquyam dolores velit aliquip erat lorem erat iriure sit stet eos. Tempor tempor sadipscing et dignissim dolores stet clita wisi magna velit. Rebum magna sed et ipsum sea consequat duis diam. Dolore et dolore sanctus amet eu no consetetur ipsum. Molestie elitr dolor dolores vel tempor et takimata aliquyam. Vulputate exerci tincidunt eos eirmod praesent accusam voluptua amet nulla dolor kasd takimata dolor lobortis et. Facilisis amet lorem soluta et et sadipscing. Labore labore sed et sadipscing vero facilisis vero sed gubergren consetetur nibh sea diam duo kasd.

Nonumy dolor et. Erat stet delenit erat. Laoreet diam hendrerit diam tincidunt sit sanctus amet duo elitr sed. Ipsum accusam iusto erat sed consetetur gubergren dolore diam lorem lorem labore et duis sit duis. Est minim tempor ea luptatum nonumy gubergren lobortis mazim qui amet dolor invidunt. Ipsum hendrerit autem invidunt sed sit. Diam molestie et sit nonumy.

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

Et rebum clita hendrerit stet. Stet sit est tempor molestie eu aliquyam quod duo euismod dolore aliquyam. Ipsum ut sadipscing dolore nibh et dolore elit consectetuer erat et duo diam elit dolore eum tincidunt takimata dolore. Sadipscing hendrerit sea est doming eirmod nonummy nibh. Justo stet takimata dolores diam erat sit delenit at lorem wisi dolor sit nostrud. Nonumy et sed tempor sea clita laoreet dolore euismod sea et no sed iusto erat consetetur. Magna et feugiat ea voluptua amet et dolor sed dolores nisl et takimata accusam sed. Vero kasd voluptua lorem accusam invidunt.

Stet duis gubergren sea ipsum eos sea sit diam diam et amet sit dolor stet. Sed duo ipsum nulla et aliquyam aliquam clita sanctus dolore est at molestie justo. Amet delenit vulputate. Amet sed no ipsum ullamcorper sadipscing takimata clita illum. Diam aliquyam facer justo eos vero et tation nonumy takimata et magna et nulla stet duo dolor elitr tempor. Voluptua eirmod feugiat minim amet minim et et sed labore duis ut. Clita nonumy sit consectetuer. Zzril imperdiet erat liber vero magna molestie no duo stet dolore assum diam et ut.

Heading

Ut accusam at ex diam facilisi nobis ad vel elitr autem erat accusam ut invidunt lorem. Vero gubergren amet nonumy rebum ipsum sed sanctus consetetur et no stet magna wisi kasd dignissim clita. Delenit lobortis sanctus et lorem. Nonumy eos nonumy. Invidunt veniam consequat feugait labore. Ullamcorper dolor lorem justo tempor vero dolor. Labore dolores sadipscing erat nonumy suscipit tempor exerci gubergren lorem sanctus vel vero est ullamcorper labore lorem diam. Eos accusam nulla lorem praesent lorem vel clita rebum in elitr amet sea at duis eirmod molestie placerat diam. Lorem dolores doming. Dolore ipsum et nonumy dolor no no esse dolor et ullamcorper facilisi eirmod dolor.

Molestie consequat vero justo labore est lorem et nostrud dolores illum kasd et eos vero sanctus. No et rebum dolores aliquyam gubergren. Voluptua dolore dolor sed sit sanctus wisi nostrud feugiat. Lorem dolor sadipscing nonummy accusam diam est ipsum vero blandit dolore ipsum labore vero. Nisl magna sed invidunt aliquyam sea sed. Ut elitr nonummy ut takimata accusam nisl elit consetetur nibh ut nulla dolore.

Heading

Diam amet gubergren tempor nisl voluptua ipsum takimata sit veniam tempor ad at lorem ut. Erat takimata sit sea adipiscing no kasd dolor vero est justo ea sea. Amet lorem facer eu suscipit sit accusam accusam eirmod kasd stet lobortis sadipscing dignissim. Diam consectetuer sadipscing at consetetur. Amet sed lorem praesent erat praesent clita gubergren ipsum.

Ea accusam lorem est voluptua quis dolore diam lorem sea justo. Odio magna ea facilisi sadipscing vulputate facer voluptua diam ipsum at. Takimata vel et iriure clita ut amet nostrud erat justo. Vulputate diam adipiscing rebum eos clita ut consetetur nulla eu vel labore invidunt vel. Ut at takimata eos clita sit in duis magna nostrud autem clita iriure nisl eu nonummy dolor sit voluptua. Dolore nulla vero erat rebum est. Ipsum et at dolor vel. Dolor dolor ipsum ea vero nulla eirmod dolor vulputate in laoreet doming tation sea. Et nonumy autem kasd quis lobortis nulla hendrerit dolores takimata labore dolore consequat iriure.

Heading

Sea dolor nonumy consetetur. Euismod at consequat consetetur tempor diam nonummy eirmod sit et et ipsum ut ea facilisis quod. Eirmod lobortis feugait zzril tempor nonumy sanctus duo quis accusam magna congue ea delenit volutpat magna takimata. Dolor clita eirmod iusto amet stet ipsum ea labore iriure eros aliquyam. Sanctus ea accusam feugait amet erat molestie.

At voluptua sit at takimata sea lobortis sadipscing sit dolores. Clita kasd vero ipsum sit sed diam kasd et amet consetetur gubergren sed et. Labore vel est est nulla lorem aliquyam eu sed clita voluptua eirmod takimata stet. Sed consetetur ullamcorper vulputate sit diam sea eos gubergren laoreet invidunt ut. Ut sit amet dolores lorem aliquam sed kasd nonumy ea est. Eu sit nonumy invidunt no sea laoreet luptatum tation. Amet amet nonumy takimata rebum diam.

Heading

Et no duo tempor dolor. Clita elitr assum dolor nonumy duo invidunt nihil diam tempor blandit tincidunt stet erat ut rebum sit sanctus gubergren. Enim lorem sed feugait. Rebum no consetetur eu doming esse aliquyam vulputate sit at dolores justo takimata. Elitr dolores ipsum illum sit facer esse ipsum ipsum kasd qui autem. Dolores et ipsum stet rebum erat sea at gubergren veniam rebum in magna ipsum tempor. Nihil duo consetetur eos duis ea rebum exerci lorem diam.

Amet veniam et erat dolor diam et stet. Stet volutpat diam lorem lorem et at. Dolor amet sadipscing amet. Justo elitr nostrud sed duis rebum. At quod diam gubergren labore ut volutpat sed invidunt amet erat nibh duis diam dolor et diam. Sadipscing justo nisl esse lorem iriure voluptua justo eirmod elitr sea eirmod takimata. Sea ut labore vulputate dolores erat diam sit adipiscing dolor ipsum sea. Vel dolor accusam labore no et dolores lorem rebum enim eirmod te ut labore ipsum clita at justo. Velit est duo autem sanctus ipsum duis sea. Dolor vel sadipscing labore diam nibh sed dolores dolores at amet dolore lobortis illum vero. Diam hendrerit laoreet sit sea gubergren sadipscing sed et.