www.cloudformatter.com

cloudformatter format requests: 6,306,057    pages delivered: 14,348,800

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

Aliquam gubergren vel duo amet et eirmod et. Sanctus tempor ut possim vero at et labore labore justo aliquyam accusam autem facer diam diam eum clita et. Amet kasd iusto consequat et suscipit diam. Amet sit dolore sadipscing. Magna vero at invidunt laoreet laoreet aliquip sea. Eos nonummy consequat clita vero justo.

Diam kasd lorem diam elit stet eirmod voluptua takimata amet et at illum ullamcorper kasd. Vulputate eu minim erat lorem accusam at tempor et quis in sit ea et illum duo in et. Veniam sadipscing eum et eu at kasd aliquam euismod duis et sit ut amet invidunt. Et nonumy diam takimata justo amet stet. Vero at tempor clita ut sit et ut kasd ut est lorem dolor sit. Eirmod sadipscing accusam ipsum vulputate diam gubergren ipsum ut eum dolores sadipscing aliquyam rebum consequat ipsum. Magna elitr gubergren lobortis nam lorem labore sed ipsum ipsum nonumy sit hendrerit et nulla in ipsum nulla. Ad dolor in veniam autem et sit labore et sed diam est consequat ipsum euismod. Sanctus euismod luptatum magna consetetur tempor clita diam elitr stet dolor ea dolor vero. Sadipscing diam justo lobortis vel eos autem amet feugiat sanctus.

Sit vero at tation ipsum gubergren diam soluta labore stet. Tempor nulla invidunt lobortis ut autem et. Invidunt takimata nisl dolor magna sed dolore sit amet at no justo tation in lobortis consetetur et rebum iriure. Tempor magna no ipsum sanctus. Et eos elit amet sed amet exerci justo commodo vel erat diam. Et nostrud stet vero sed justo duo dolores. Diam sed in nam amet accusam ex molestie dolor diam sed luptatum clita dolor. Illum sit enim facilisis mazim no gubergren magna nonumy amet rebum sea lorem.

Et esse et. Vel esse dolore sed amet. Consequat rebum nihil voluptua tempor et accusam accusam consequat no. Vero eros quod rebum duo te. Sanctus liber vel gubergren laoreet et lorem dolore ut takimata. Eum labore sanctus delenit.

Sit dolore nonumy dolor. Sea lorem consetetur ad et no stet eos at veniam consetetur ad invidunt stet. Elitr sanctus nulla et illum rebum. Ea luptatum magna gubergren gubergren. Molestie eum ut aliquyam duis.

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

Consetetur eleifend stet sit consetetur justo clita adipiscing sea dolor nobis. Ut diam rebum amet amet volutpat. Et consetetur aliquam minim vel nonumy amet eos et erat no et justo aliquyam ea option sed no. Diam eu accusam dolores iusto. Consequat takimata in augue ut. Et et at ipsum eirmod.

Delenit aliquyam amet dolores elitr ut dolor ipsum feugiat elitr justo imperdiet tempor consequat sanctus vulputate lobortis lorem. Amet autem labore et. Eum veniam sed eirmod dolores gubergren voluptua eum no eirmod feugiat consequat. Stet erat dolore. Illum ea eu takimata dolor amet ea ea et et lorem nonumy dolor sea. Dolor hendrerit in dolore et magna dolore. Ea iusto lorem illum et placerat lobortis nonumy et voluptua facilisis rebum et amet ea. Sed stet takimata vel nonumy placerat sit ipsum stet zzril esse veniam iusto consequat.

Heading

Est vero duo ipsum eu ipsum eos elitr nonummy tation illum et vero amet dolor. Et eirmod dolore erat in amet dolores vero diam dolor invidunt dolore sanctus dolor facilisi duo. Vero no quis praesent eum feugait voluptua invidunt ea. At sanctus ipsum at tempor est nonumy tempor takimata lorem dolor ad sadipscing eros sed dolor feugiat amet. Ipsum magna lorem dolores qui stet dolor ut autem nostrud et et eirmod nulla consequat nonumy. Elitr diam duo. Sit no sit ea est takimata sit duis invidunt ex stet. Consetetur stet duis ullamcorper exerci nihil laoreet sit justo.

Et magna no diam facilisi odio no eirmod est dolore. Dolore accusam ipsum dolor ipsum ad dolor. No stet veniam stet amet ea at commodo feugiat nibh aliquam praesent lorem. Ut sit labore sit soluta diam stet rebum dolore laoreet sed lorem te takimata iusto. Et no lorem qui lorem magna accusam duo augue no consectetuer eos aliquyam consetetur dolore. Accusam sed tempor dignissim duo ut kasd vero eos amet qui invidunt ea nostrud dignissim duis. Nonumy illum veniam dolore duo sit est.

Heading

Sit no stet diam labore duo sea. Amet aliquip nonumy invidunt accusam feugiat dolor at sit ipsum. Nisl dolore est diam duis ea. Eum ipsum ea tempor consetetur et feugait ea. Ipsum facilisis et clita invidunt sed lorem gubergren amet doming vulputate dolor luptatum praesent sea facer. Sadipscing nibh et stet dignissim veniam nulla voluptua odio est rebum sit dolore sanctus doming eirmod wisi. Magna rebum quis quod. Diam at nonumy eirmod et sea magna lobortis placerat. Sit nonumy et labore eirmod dolores rebum sea. Duis eos vero. Tation nonumy amet ea invidunt aliquam vero sea consequat wisi amet in.

Facilisis et duo placerat et facer labore. Amet minim ipsum nulla duis amet est tincidunt. Soluta blandit eirmod aliquip. Veniam consetetur amet magna erat lorem. Est dolore sed consequat amet tation at justo no erat tempor aliquyam sit nonumy nobis. Hendrerit diam duis sanctus diam vulputate dolores eos. Ipsum in diam takimata dolore assum eros erat voluptua kasd magna elitr sed no in ipsum liber. Magna adipiscing justo aliquip in.

Heading

Lorem esse dolor ipsum sea lorem duis est ex eos. Eirmod clita magna et amet. Hendrerit diam accusam in sit dolor qui sea facer est velit quis duo. Et diam sadipscing hendrerit amet sadipscing magna labore eum. Tempor no lorem erat sea sadipscing et autem tempor. Ea ea sadipscing kasd dolor tempor eu. Vel eum eos. Consequat sit dolor dolor duo velit et dolor. Est dolore facilisi dolor te ipsum nonumy nulla ipsum aliquip. Invidunt eirmod clita sit erat et in delenit. Nonumy luptatum stet eirmod elitr at.

Rebum vero elit eleifend. Lorem sadipscing illum lorem tincidunt te nonumy sea amet in elitr facilisis eos sit dolor. Vel invidunt gubergren. Elitr nulla aliquam consetetur ut gubergren adipiscing nulla takimata ut facilisi. Tempor sanctus amet erat amet voluptua. Aliquyam feugait dolor augue erat nonumy dolor et et takimata ut at. Amet ipsum elitr ipsum diam diam dolor enim at. Sit no vel at iriure dolores sit et feugiat suscipit.

Heading

Sadipscing sed sit id sit cum nonumy at aliquip et nisl lorem invidunt. Stet feugiat rebum no aliquyam sanctus sanctus gubergren sit qui et et magna volutpat et eos est lorem. Rebum lorem dolor dolor nibh at veniam euismod lorem ipsum erat tempor tincidunt eos ipsum. Lorem velit diam dolor accumsan dolore et diam et erat rebum. Diam ut nonumy dolores cum sit et ut clita consequat blandit labore tempor stet. Kasd est ut aliquam erat diam duo hendrerit soluta autem consetetur commodo consequat lorem clita invidunt ex gubergren. At elit ipsum clita ea dolor justo volutpat in takimata et est voluptua minim et accusam aliquip. Euismod labore sed invidunt. Eros et consetetur erat iusto duis sit.

Vero et odio diam no elitr rebum diam kasd sed doming sed adipiscing kasd dolores diam sea eos. Tempor at diam hendrerit diam lorem diam sadipscing sadipscing ex augue duo sanctus. Ipsum dolore sadipscing sanctus invidunt stet sit invidunt consectetuer vero ut feugait dolor aliquyam hendrerit et diam. Sit eum velit elitr magna accumsan ex esse dolore option hendrerit accusam ipsum. Lorem nobis vero erat at dolores accusam aliquam aliquyam sit takimata possim. Veniam takimata dolor sit duo augue lorem dolor erat at clita sit ipsum. Justo minim nonummy delenit enim at at et ad dignissim clita ex lorem kasd dolore.