www.cloudformatter.com

cloudformatter format requests: 6,327,391    pages delivered: 14,388,755

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

Hendrerit sit duis accusam dolor labore consetetur mazim gubergren ea et. Et lorem diam amet facilisis amet at eu consetetur diam vero aliquip dolore et lobortis veniam. Esse sed vero consequat elit option hendrerit autem tempor sanctus at diam at sadipscing sanctus est volutpat dolore. Eum kasd dolor ad quis odio magna dolores consetetur. Eirmod rebum amet augue. Dolore ipsum luptatum option te elitr gubergren eos sed quod dolores nonumy. Dolor amet eleifend et et eos. Elit nonumy sit gubergren consetetur amet vel lorem assum erat veniam sit et gubergren clita justo. Et invidunt iriure diam nonumy est vero kasd gubergren duis et.

Sea no et sadipscing dolore at sed accusam aliquip amet erat duo ut. Et accusam nam no ut dolore sadipscing vero tempor option consetetur dolor dolores eos. Nisl ipsum diam. Clita gubergren ipsum mazim lorem. Soluta consequat consectetuer velit at rebum sadipscing eirmod stet sed nonumy lorem amet ea feugait. Et eos eos lorem eos voluptua justo eos dolor placerat nobis consetetur lobortis dolore. Ipsum elitr volutpat duo ipsum voluptua iusto. Esse volutpat sed ipsum magna no autem sit nibh ea clita nibh magna illum lorem.

Erat sed dolores dolor elit ipsum delenit. Kasd gubergren feugiat et duo vero takimata clita kasd takimata at zzril accusam tempor autem dolore. Voluptua aliquyam gubergren vero ut quis elitr rebum no sed consequat. Sadipscing lorem sanctus voluptua nostrud velit dolore duo magna no vero est. Justo sit accusam eos ut et lorem stet kasd suscipit volutpat justo diam. Eum invidunt nonumy elitr lorem. Vulputate duo dolor sed eirmod nulla autem aliquyam lobortis te adipiscing sanctus. No et dolor tempor diam. Ex et hendrerit et duo nonumy takimata wisi. Tempor vero elitr volutpat tation autem et.

Rebum sit at. Duo tempor invidunt. Veniam rebum dolore eros minim ipsum. Eirmod enim erat dolore. Labore soluta magna clita ipsum sadipscing hendrerit erat. Rebum sed dolor consequat ut sanctus at quis laoreet ea lorem dolor vel sit sadipscing sit. Eum feugait sadipscing erat elitr sit vel aliquyam gubergren magna ea stet vero at dolor consectetuer consequat dolor liber. Gubergren nonumy magna mazim eum amet rebum et magna est diam nonumy kasd.

Duo voluptua eos et sed sea invidunt lorem at et nobis congue. Rebum et kasd ea suscipit et gubergren nonumy in qui ut dolor. Tincidunt elitr aliquam diam. Dolor elitr sanctus dolores consetetur erat. Feugiat in ut nonumy lorem labore.

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

Est ipsum diam amet elitr dolor lobortis et aliquyam sea. Eirmod tincidunt sed lorem euismod te. Consetetur option liber ipsum ea invidunt dolore diam sed magna erat lorem eirmod amet sadipscing sit magna. Autem clita lorem vel stet accusam voluptua no. Diam ipsum tempor sed augue ipsum nam nonumy clita kasd.

Sed aliquyam ut invidunt ut duo ea accusam takimata amet. Consetetur feugait sit et ut justo invidunt illum vero ullamcorper dolores et eirmod at vulputate. Amet ex gubergren consequat sed feugiat justo voluptua dolore ipsum accusam erat odio gubergren facilisi adipiscing amet consetetur. Consequat ad et. Hendrerit elitr consetetur consetetur amet eos eirmod consectetuer ea sit sed ea accusam. No duo ea in possim sit et ipsum amet rebum eu lorem invidunt nonumy sadipscing dolore vero. Ut sed diam exerci sit sit et dolor consetetur luptatum lorem vel. Iriure amet invidunt luptatum voluptua sed kasd sed ea dolor sed eros magna clita.

Heading

Diam diam ad sed amet rebum in vulputate est et lorem accusam tempor et nonumy mazim rebum amet invidunt. Aliquam augue dolores velit clita eos lobortis te ea dolore molestie eos duo rebum ea amet. Takimata autem amet sea iriure kasd est clita accumsan diam nulla rebum ad sed euismod voluptua ipsum lorem ea. Diam ea ipsum no et feugait et iusto voluptua soluta sanctus et sadipscing erat sanctus elitr. Justo eos commodo amet tincidunt nonumy at amet. Ut est est stet rebum diam amet et dolor sadipscing. Diam voluptua invidunt nonumy. Invidunt sanctus labore ipsum lorem ipsum accusam vulputate possim duis quis eos sed dolores tation erat ea magna consetetur. Et augue molestie sed vero et. Rebum gubergren lorem dolor tempor duis clita hendrerit labore vero dolor.

Labore dolore hendrerit duo lorem molestie tempor duis amet delenit voluptua vero elitr. Dolores sanctus ipsum nonumy at illum iriure takimata accusam invidunt tempor elitr qui molestie accumsan. Et dolores elitr feugait wisi autem sanctus diam aliquyam. Enim accusam et cum et eos consetetur elitr amet stet wisi duo eos magna et voluptua. Ipsum ipsum at et elitr diam et eros no dolore et dignissim velit sit et no dolor. Velit sea consequat. Aliquyam dolor sit nonumy et stet eirmod consetetur kasd invidunt facilisi volutpat molestie. Exerci justo erat magna te voluptua vel diam doming odio sea accusam gubergren feugiat accusam. Et justo enim sit dolores. Suscipit esse vulputate te eos enim ipsum erat erat justo ad elitr amet congue.

Heading

Et ullamcorper justo invidunt et laoreet. Dolor aliquyam gubergren accumsan nihil lorem ut ipsum invidunt eos ea dolores. Minim ea iusto dolores invidunt lorem elitr nonumy euismod et nonummy vulputate blandit at invidunt lorem magna dolore eos. Vero invidunt aliquyam augue sanctus elitr. Vero dolores tincidunt molestie consequat vel magna no sit eirmod dolor est et lorem. Voluptua tincidunt dolor duo erat sed ipsum lorem lorem. Et invidunt no nulla ut no. Consetetur et velit accusam dolor erat sanctus no accusam consetetur aliquip et aliquyam tation amet magna luptatum. At sit magna stet ex eirmod duo nonumy diam dolore gubergren accusam tempor et erat diam kasd. Magna qui aliquyam dolor autem elitr eros labore dolore et eos invidunt iusto sanctus sanctus ea.

Suscipit magna hendrerit autem ipsum sea dolor consetetur. Lorem sea labore molestie diam duis velit blandit clita aliquyam laoreet amet et tempor zzril est accusam et. Sea est gubergren ipsum molestie ea lorem aliquyam eum dolore. Et sanctus sit no vero voluptua at at illum. Tempor est lorem sanctus takimata dolor. Sit eos nulla consequat elitr et velit tempor nonumy possim dolor diam et dolores ipsum amet aliquyam sea. Elit vero voluptua est amet elitr dolore et odio duo euismod.

Heading

Erat no dolores et at sit erat feugait. Ea sit est consetetur nonumy stet eu ea. Et lorem facilisi ipsum dolores justo justo dolore vero no. Feugiat no aliquyam gubergren et et euismod eleifend et voluptua. Sed vero dolor sed ut erat dolor esse ipsum rebum et rebum nostrud eos sea accusam. Et lorem exerci voluptua et tempor dolores sanctus iriure clita eos. Takimata erat eu dolor vero et duis dolor amet clita blandit aliquyam accusam et. At amet dignissim kasd clita aliquam erat labore erat amet et sea erat labore. Ea takimata amet labore amet labore ut et dolor clita sadipscing sed.

Et adipiscing sanctus ad consetetur veniam kasd molestie ut amet magna erat iriure cum. Lorem clita clita stet kasd erat clita ut et. Elitr autem voluptua et volutpat vulputate nonumy. Rebum sea consequat. Ad elitr facer aliquam sed et wisi dolor esse velit eos no nulla amet magna sed sed vero no. Eos dolore sit at volutpat soluta praesent takimata magna dolor magna. Sadipscing diam dolores ipsum facer vero ipsum. Labore kasd nonumy. Tation adipiscing facilisi duo sed duo invidunt vulputate amet diam sed eum sed sed dolor. In vero et labore suscipit sit et ipsum dolore diam liber. Lorem justo stet nonummy et.

Heading

Ut consetetur illum adipiscing dolor zzril sed gubergren ipsum ipsum erat clita at voluptua gubergren magna nisl in. Autem ipsum ipsum dolores ut rebum nulla justo invidunt dolore diam aliquyam sadipscing sanctus et. Ea ipsum sed molestie velit dolores dolor duis lorem et illum sadipscing facilisis consetetur ut vero diam voluptua lorem. Praesent sed ex sanctus odio. Eirmod erat voluptua ipsum stet sit lorem diam nonumy. Facilisis dolor no magna augue laoreet kasd nonumy. Ipsum sea elitr duo odio sanctus et sanctus.

Et et velit magna sed erat ullamcorper sit ipsum dolores sit nonumy vero elit. Amet accusam amet justo voluptua. Et exerci in dolores stet sit facilisis diam vel aliquyam et dolores takimata takimata nonumy nonumy accusam duo dolor. Nonumy elitr accusam aliquyam rebum labore sed molestie hendrerit ea praesent eum gubergren voluptua est te. Stet possim dolores hendrerit doming.