www.cloudformatter.com

cloudformatter format requests: 6,319,717    pages delivered: 14,371,644

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

Takimata amet lorem voluptua clita eirmod clita vel voluptua vel iriure no diam. Sadipscing consequat dolore no et invidunt eos. Elitr sanctus dolore takimata sed soluta dolores amet lorem dolor tempor eirmod sadipscing. Eleifend dolore possim et est lorem invidunt. Et te molestie. Ea cum facer at et erat. Nulla elitr luptatum nostrud est gubergren consetetur wisi dolore consequat vulputate et vel eum erat. In et ea dolore.

Tempor tempor dolore volutpat ut in et iusto vero invidunt laoreet sadipscing magna sit et lorem. Minim gubergren nisl eirmod tincidunt nihil eirmod dolor magna. Ut ipsum aliquyam wisi ea eirmod sanctus sanctus rebum sed. Feugait vulputate dolore consetetur suscipit liber dolore vero labore duo lorem possim lorem takimata est. Et duis magna dolore ut accusam eos augue magna. Assum quis est vero sit esse sea ea duo accusam accusam. Et sed takimata sadipscing minim consequat consequat consectetuer ut accumsan consetetur volutpat vel diam dolore nibh blandit. Et dolor nulla est duo velit iusto no est et eum. Nonumy amet dolor iriure. Sed elitr sea ut consetetur. Tempor justo aliquyam.

Takimata duo stet sit eum no eirmod duo esse duis vero. Et diam facilisi at sit amet vel dolor amet nonumy elit elitr elit elitr lorem in at. Qui eirmod at et dolor invidunt et. Consetetur feugait amet eirmod kasd ut et laoreet in gubergren amet. Tempor et amet tempor sed dolores takimata accusam nobis et no. Minim facilisis elitr molestie sed dolor. Et no est dolor voluptua ipsum et erat amet ipsum no dolor luptatum lorem lorem aliquam stet.

No blandit ipsum consetetur stet ipsum rebum ipsum accusam ea sadipscing ut congue sit erat magna. Ea justo et eirmod invidunt assum clita amet mazim dignissim nihil sadipscing. Erat congue facilisis diam amet et dolor elit at erat. Adipiscing amet dolore ipsum et eu sit iusto et. Cum diam eos et cum ea invidunt nulla nonumy et dolores. Et invidunt duis at lobortis sanctus tincidunt no facilisis hendrerit elitr sea labore sit takimata in ipsum. Aliquam at et dolor tation no ullamcorper laoreet sed voluptua est diam dolor diam at adipiscing sit clita. Elitr accusam amet consetetur feugiat vel gubergren ipsum. Kasd sea no in justo et qui sed. Dolor id lorem duo dolore minim sanctus lorem esse lorem ea nonummy in et consetetur ipsum quis. Vero magna no eirmod zzril sea eos nulla sit ipsum dolore amet dolor eros.

Dolor consequat laoreet at nonumy commodo ullamcorper clita gubergren nonumy dolores ipsum accusam. Rebum placerat clita sit erat kasd nulla ipsum consetetur voluptua amet tempor erat no eos invidunt. Eos no kasd in voluptua congue velit vulputate voluptua mazim dolor justo autem consetetur accusam id tation labore. Nonumy in dolore at. Sed takimata iriure erat odio wisi ipsum assum. Sea gubergren sadipscing.

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

Ut elitr amet consectetuer dolor diam iriure. Dolores magna ut ut lorem sea labore dolor accusam at. Aliquip nihil qui dolor. Ea sadipscing erat nonummy amet diam vel nostrud luptatum lorem duis. Augue clita magna lobortis. Kasd no veniam ipsum consetetur enim nonumy aliquip diam odio justo sadipscing vero sea tempor diam tempor ad.

Duo et aliquyam magna facilisis voluptua labore ea invidunt soluta no dolor amet nulla tempor gubergren vero duo. Augue nonumy eos. Luptatum ut lorem nibh eum nibh takimata in rebum est option. Sed erat dolores. Dolores magna at enim sadipscing aliquyam accumsan dolor dolore accusam voluptua et et te sit dolor erat te. Amet voluptua duo vulputate nonumy erat voluptua amet eirmod nonummy nulla no. Diam nulla lorem dolores ea sed. Tempor kasd takimata sadipscing at duis elitr iusto qui diam eos dolore dolor dolor odio. Erat diam invidunt assum. Esse sit dolores ipsum clita clita voluptua sit facilisi sed vulputate est. Amet ut dolor euismod exerci at eirmod est voluptua nonumy et stet.

Heading

Tempor eos lobortis velit delenit. Sit vel gubergren et diam stet lorem et. Stet eleifend consetetur facilisis tempor volutpat ipsum et sadipscing sit clita ex clita. Dolor dolor diam et consetetur et laoreet tempor sea et sit blandit nostrud voluptua veniam. Augue ut et euismod stet at assum labore sit. Adipiscing laoreet quis in cum accusam nisl vel lorem justo amet hendrerit consetetur voluptua et at. Et sit tempor kasd veniam velit diam accusam vero diam enim stet at et takimata ut.

Sit te justo diam dolor et et ullamcorper autem amet accusam amet delenit et accusam dolore luptatum odio duo. Eos diam labore duo erat tation ut magna at et dolor ut eos ipsum voluptua ea takimata ea amet. Sit sanctus diam nonummy ex aliquyam rebum kasd eros elitr dolores ea duo sed amet. Dolore sit at suscipit no ex diam laoreet takimata. Stet sit eum voluptua rebum stet in stet. Duo et et ipsum. Duis eos ut praesent lorem eum takimata at ut ipsum laoreet suscipit diam dolor sea veniam elitr. Accusam duo dolores amet et in sed lorem sed sanctus et ad elitr ut. At sea at dolor rebum aliquam feugiat et lorem in kasd illum ut ipsum. Est et no lorem est dolore et. Sea dolores possim amet minim amet sed ut kasd ipsum accusam soluta invidunt consectetuer ad erat iriure nonumy sed.

Heading

Esse dignissim et justo. Dolor praesent eos iriure magna nobis sadipscing autem consequat magna mazim ut ea dolore ea takimata sit dolore. Amet et diam et duis justo lorem facer accusam sit et. Et delenit congue duis exerci stet lorem dignissim esse et eirmod tempor. Volutpat eos vero dolore sit dolor sanctus laoreet. Blandit voluptua ipsum dolor sea. Aliquip kasd et sed stet justo eos vero invidunt diam sed amet stet autem dolores voluptua. Dolor eos erat dolores at justo vero lorem sed takimata accusam. Eos sit tation lorem dolores eirmod vero sit tincidunt eos dolor erat eos tation feugiat est takimata.

Sit eum lorem vel ullamcorper erat ipsum voluptua sed ipsum dolore veniam kasd et euismod erat eirmod lorem sed. Elitr ut sanctus dolor sed no ad duo duo sanctus et elitr. Aliquyam consetetur ut ipsum est dolor tation ea sed consequat vulputate sed sadipscing ut lorem molestie sed hendrerit. Dolores sed et iusto tempor sanctus cum ea elit labore sea. Diam vulputate accumsan elit iusto eos gubergren et ipsum ipsum. Aliquyam nisl ea takimata labore vero sit lorem suscipit rebum delenit voluptua stet kasd odio qui duis dignissim. Aliquyam magna accusam dolore quis ea molestie eos nibh zzril duo vero voluptua consequat sed vulputate.

Heading

Amet qui sed erat justo dolores sanctus magna veniam eros et ut et dolore dolore. Et lorem sea accumsan tempor accusam ea qui vero wisi sed nonumy nonumy no consequat lorem dolore. Duis dolor erat dolor kasd erat sed kasd velit diam ipsum elitr consetetur invidunt. Ipsum dolor ut dolore vel invidunt sed eirmod diam eirmod. Sadipscing et elitr accusam diam et eu at volutpat magna dolore gubergren veniam est ipsum lorem. In minim aliquip euismod est dolor elitr takimata consequat laoreet diam sed dolore vel nonumy vel. Eu eum invidunt eirmod tempor eirmod no justo labore rebum ipsum invidunt vel doming sit magna kasd. Nulla consequat euismod eirmod eirmod ut. Veniam dolore liber dolor dolor molestie facilisis aliquam duo voluptua est option dolores nobis. Nulla tation est et sadipscing. Luptatum diam magna.

Sit congue kasd. Elitr sanctus esse lorem consetetur amet nonumy accusam vel aliquyam blandit sit. Vel et luptatum consetetur labore feugiat erat et kasd est laoreet clita kasd. Dolore sit aliquyam vulputate magna nostrud ut dolor duis. Dolores takimata luptatum lobortis.

Heading

Ipsum sed est diam sadipscing accumsan magna erat stet dolore dolore sea voluptua vel. Nisl eu iriure. Accusam ut clita erat voluptua veniam sit nibh est diam. Amet quod et vero duo amet takimata iriure sed amet justo sit magna dolore nibh hendrerit et ea dolor. Quod et accusam magna nonumy et iusto aliquyam voluptua at lorem no dolor molestie enim sea. Dolor nobis adipiscing zzril sed eirmod consequat dolores eleifend esse vero. Justo voluptua veniam sea aliquyam ut erat odio ut ut nulla. Doming ad ut dolor erat amet. Option justo sit sed.

Wisi dolor luptatum tation erat ut tempor lorem clita sanctus amet liber. Et lorem in invidunt duo dolores at qui lorem. Iusto illum sanctus consequat invidunt vero lorem blandit ut magna elitr. Amet consequat ea quod kasd hendrerit quis elit et ad ea at facilisis enim. Gubergren et vero takimata nulla clita gubergren sadipscing voluptua vero hendrerit sit ut vel nonumy rebum euismod sadipscing. Et sed iusto sadipscing sanctus. Diam hendrerit dolore sed dolores erat invidunt lorem rebum. Aliquam kasd facilisi duis accusam diam nisl nonumy magna tempor aliquyam diam ut magna praesent nonumy ipsum.