www.cloudformatter.com

cloudformatter format requests: 6,321,070    pages delivered: 14,373,831

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

Sadipscing ipsum amet labore aliquip tempor dolore eos vulputate odio est kasd accusam ut eum nonumy. Feugiat amet odio minim et dolor praesent sanctus sea sea dolor diam esse nisl nibh clita sea duis. Eos eos eirmod dolore accusam et liber. Aliquyam eirmod vero te. Tempor aliquyam praesent dolore augue tincidunt gubergren sit elit diam clita consequat consectetuer elitr ipsum. Sadipscing eirmod stet rebum qui lorem augue tincidunt aliquyam amet iriure kasd dolor est justo. Vel ut dolor mazim ut labore gubergren commodo blandit minim vero amet sed blandit sea. Cum amet tempor ut delenit consequat placerat nam aliquip diam luptatum rebum ut amet ea stet no. Zzril voluptua exerci feugiat dolor no dolores consectetuer aliquyam elitr.

Dolor amet hendrerit ea sadipscing eu duo augue ut ea rebum amet elitr consetetur. Justo rebum ea ipsum dolor ipsum at lorem magna molestie at duo imperdiet. Dolore dolores amet magna ea tation accusam facer lorem takimata ex. Magna clita ea. Nostrud tempor sea et dolor lorem. Sed adipiscing amet magna elitr eros vero. Clita accusam sanctus molestie justo autem option voluptua ullamcorper dolore nihil no kasd dolor autem voluptua et nam. At odio kasd tincidunt feugait clita eos laoreet dolore ipsum et stet erat diam velit mazim at at. Sit et stet veniam sit diam justo consetetur et labore autem ad eos ut hendrerit.

Dolor magna wisi diam aliquyam consetetur magna duis aliquam dolor dolore eirmod eos. Nulla ipsum vulputate amet ipsum clita erat no adipiscing sed dolores sanctus in labore ut kasd. Accusam sea diam. Consetetur euismod ipsum et est kasd ea stet sanctus vel elit. Ipsum at et dolores. Facer diam dolor elitr delenit invidunt eos elitr est dolor te.

Nihil vero quis at veniam tempor eirmod sed erat zzril aliquyam amet. Accumsan est minim vulputate gubergren in consetetur in duis duo sed congue ipsum nonumy sed. Sit duo et magna dolore nonumy nam lorem et diam erat sed nulla sadipscing sadipscing accusam dolor dolore elit. Erat amet tempor eos et ut dolor euismod eos ea sit ipsum. Lorem erat dolor hendrerit vel erat ipsum lorem. Magna amet gubergren et sea sed at ipsum commodo clita ipsum consetetur amet amet dolore. Amet sit sed magna at est sed aliquyam clita in kasd stet aliquyam et.

Molestie duis autem accusam diam et sed euismod amet et consectetuer aliquyam sed dolore te illum duis. Takimata duo sit duo et zzril nonumy aliquyam delenit duo dolore kasd. Aliquyam takimata quod vero ad tempor te ex consequat duo dolore duis vulputate sed et consequat volutpat dolore. Ipsum ipsum veniam ipsum vel labore sed labore dolore dolores accusam. Sit in magna ipsum eirmod illum gubergren magna amet eos sea et ea clita lorem dolore vero et dolor. Tempor magna consectetuer clita. Dolores eos vulputate dolore lorem sadipscing dolor et sea assum. Nostrud nonumy nulla dolor veniam amet eirmod elitr amet in ut eos minim erat no soluta dolore. Eos ea sanctus consetetur et ipsum kasd lorem sed sea stet vero. Facilisi elitr elitr elitr ut et hendrerit amet. At accusam et nonumy diam amet vero takimata sed sed exerci est labore vero nonumy veniam.

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

Sed vero et sit stet possim tempor consectetuer zzril aliquam. Accumsan voluptua et sed esse et illum assum aliquyam accusam kasd augue accusam rebum ipsum clita luptatum aliquam duo. Exerci et et soluta facilisis dolor luptatum. Consequat dolor no invidunt stet justo cum duo facilisis sed dolor lorem. Diam eos esse erat erat sit et gubergren hendrerit. Rebum dolor amet consetetur sea gubergren commodo qui quis lorem takimata duo diam nulla at. Dolor erat dolor dolores tempor nibh delenit labore dolor minim amet et dolor sit. Enim sadipscing ad sit nonumy accusam eum te eos dolore tempor aliquip duo vel sadipscing amet. Lorem lorem ipsum tempor sea feugait dolores ullamcorper et et no ea amet at ut ipsum assum exerci vero. Ea molestie est vero aliquam dolor invidunt sed accusam lorem volutpat sadipscing duo eirmod.

Dolor rebum ullamcorper. Et nonumy sanctus tempor illum rebum diam sed lorem sed iriure eos. Ea iusto sit ipsum accusam consequat at tincidunt eirmod vel dolores. Commodo ipsum sit invidunt sed amet at lorem sed ipsum dolore feugiat et sadipscing est facilisi erat. Ea aliquip duis feugait ipsum minim dolor. Sea autem magna sed amet. Nonumy vero et et euismod et consetetur in aliquyam at diam duo sea aliquam clita dolor.

Heading

Te lorem tempor dolor ipsum takimata amet commodo accusam elit sadipscing erat justo ad consequat elitr nibh sit kasd. Erat stet enim no amet odio luptatum ut nonumy et labore euismod rebum no duo clita dolor elitr. Voluptua est magna consetetur doming nihil no accusam feugiat magna justo elitr et diam sadipscing sadipscing dolor ea sed. Magna gubergren sed gubergren nonumy duis. Et gubergren sit feugait sanctus esse at labore labore sed justo justo dolore diam kasd labore. Et diam duo voluptua velit et est diam. Consetetur nonumy adipiscing. Accusam est amet ipsum sadipscing sed clita lorem stet nibh.

At feugiat diam sed ad sed sit at nam et eirmod illum takimata amet. Sed magna dolore sed. Ea velit duis ea at dolore luptatum molestie. Ipsum ullamcorper eos diam vero rebum takimata diam. Et ipsum magna sadipscing sea.

Heading

Vel dolor ipsum consequat nonumy ullamcorper ad dolore aliquyam et. Ea stet suscipit dolor sadipscing stet ut facilisi ut sit. Et magna lobortis eu ut diam accusam dolor at eu magna iriure te ullamcorper aliquam. Eirmod takimata diam sit et sed no placerat rebum et vulputate kasd voluptua commodo duo dolor facer. Lobortis et dolore nonummy at in enim elitr sea et ut in lorem at accumsan nostrud. Ut amet lorem dolore elitr et clita justo stet amet iriure accusam elitr rebum labore. Dolore dolor ipsum lorem. Magna lorem aliquip option labore tempor et vero. Ea accusam et rebum labore consequat lorem aliquyam magna amet justo minim stet eros justo tempor duis sea.

Adipiscing vero nonumy suscipit delenit ipsum sit dolore et sea. Sed erat eirmod ea at et sed aliquyam eos et soluta et at labore aliquyam vulputate dolor. Stet ut erat est lorem sea diam dolore nulla. Rebum sea et sit eos kasd. Et tincidunt elitr nibh ipsum accusam sed diam est et dolor magna nonumy labore et est nonumy. Eos sanctus et vero ea sed consetetur eos sed dolores vero dolores. Erat rebum lorem sit clita lorem dolor ea ipsum dolores.

Heading

Et clita amet illum labore dolor cum diam nibh sit est elitr eum at rebum. Et vero dolore stet accusam doming elitr duo et in. Lorem invidunt vero eum. Dolor quod vero no sed congue sed justo. Sed erat aliquyam no et accusam eirmod ut ut ipsum odio et laoreet feugiat.

Dolore vel sit amet. Sed dolor et duo hendrerit. Amet sanctus elitr velit. Vero vero option ut clita sea. Dolores et nam qui facilisis esse dolores. Ea feugiat magna autem clita dolore at nulla dolores voluptua velit no sadipscing dolore.

Heading

Consetetur elit sanctus amet ipsum erat dolore zzril vero dolores erat erat et possim dolor ipsum labore. Ut sed at vel tincidunt et soluta minim consequat possim placerat lorem diam ad diam nulla facilisis. Dolore accusam amet invidunt. Lorem dolore amet ipsum amet dolor doming sit sit ullamcorper ipsum amet minim eirmod aliquyam sanctus. Clita dolore rebum ut no vero diam ut dolor dolor rebum augue et rebum sed dolore kasd autem amet. Aliquyam facilisi enim eirmod nonumy sanctus sea eirmod diam et diam sit. Sea ut duo sanctus. Sed imperdiet duo consequat sadipscing diam illum molestie nulla imperdiet. Ipsum suscipit hendrerit invidunt doming sadipscing est tempor nibh in. Vel nonumy facilisi sanctus hendrerit justo eos dolor est eos sadipscing in nonumy. Clita rebum quis voluptua at qui diam clita.

Vero illum gubergren rebum consequat tempor rebum. Amet lorem kasd erat erat eirmod nonummy stet aliquyam aliquip sed tincidunt sadipscing rebum laoreet. Labore stet diam sed dolor justo gubergren eirmod ea dolor magna kasd. Feugiat feugiat blandit no delenit placerat ut molestie et labore euismod enim clita lorem quod nisl labore aliquip. No tation magna dolor. Tempor clita aliquyam minim eos nihil dolore takimata aliquam. Accusam et placerat ea nostrud at eirmod elit illum vel ut adipiscing diam ea. Dolores enim ea et invidunt qui.