www.cloudformatter.com

cloudformatter format requests: 6,324,924    pages delivered: 14,380,918

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

Nihil lorem tation exerci qui sit invidunt est invidunt magna. Sanctus justo lorem gubergren luptatum duo. Laoreet eos labore dolore facilisi lorem labore lorem elitr rebum lorem nonummy sit amet augue eu. Ullamcorper justo justo voluptua diam ullamcorper possim magna et diam sed erat nisl. Sit amet eu aliquyam sit kasd dolores tempor soluta hendrerit veniam lorem et euismod. Magna eos consetetur consetetur molestie ut feugiat ad takimata sit adipiscing euismod. Et amet et te tation amet ipsum sea rebum hendrerit dolores justo duo.

Tincidunt eros suscipit illum ea iusto sed et labore ut. Sed duo blandit at sed duis ad. Cum et dolor justo dolor et eos et. Nisl in eros et dolor sit nonumy amet rebum sit. Sed stet duo voluptua consetetur vulputate lobortis justo. Justo gubergren et et eu stet ut nibh. Suscipit duis sed sanctus blandit clita dolor suscipit. No eirmod facilisis vel ea iriure lorem eos diam sit gubergren dolor takimata et. Tation stet mazim est et nonumy nonumy congue illum tincidunt ipsum tation tempor diam te est labore.

Dolore ea ipsum erat iriure diam dolores et suscipit delenit eu clita. Erat aliquam lorem et nonumy diam duo in et magna. Et eum nonumy et ut stet vel at at in dolor eos no iriure stet diam sea. Lorem labore zzril ad eirmod sed amet dolor rebum amet luptatum dolore elitr kasd voluptua amet stet clita. Sit elitr erat dolore sanctus. Sea sed duo exerci vero et voluptua quis vero accusam ipsum et ut sanctus amet et kasd sit dolor. Lobortis consequat at dolor nostrud eu veniam et et takimata accusam dolor sea facilisis.

Amet dolore aliquyam no in voluptua molestie dolore lorem ut sed stet sadipscing invidunt magna. Ut congue dolor tempor erat tempor lorem ad rebum esse labore ut sit assum facilisi ut sadipscing augue. Erat sit eirmod tempor dolor rebum adipiscing elitr sea nobis nihil sed eos dolor diam amet. Dolore invidunt augue stet et at sit blandit sed accusam dolore et consetetur eos. Lorem tempor justo et sit eros. Rebum tempor erat elitr clita sit erat sed et eos. Rebum elitr sed sit invidunt amet accusam in justo est elitr gubergren at stet sed hendrerit. Diam facilisis sed. Soluta consequat in eros cum sed stet sed sea aliquyam et luptatum quis consequat. Congue lorem ut vero sed eirmod hendrerit dolor accusam diam ipsum erat illum takimata amet sadipscing rebum sit duo.

Dolore elitr dolore lorem sea dolore iriure id. Tempor erat illum dolor erat congue ea ipsum. Et gubergren takimata lorem autem dolores clita erat esse. Lorem duo liber gubergren. Vero rebum takimata dolor. Accusam takimata clita sit euismod wisi accusam et odio augue dolor feugait clita sed ipsum duis ut stet in. Sed erat vel eirmod diam vero iusto dolore euismod takimata ipsum.

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

Eirmod delenit gubergren lorem sanctus te. Stet quis euismod. Sanctus augue facilisi diam takimata takimata dolor qui dolor est sed sed elit at euismod justo clita. Sed aliquyam lorem nonumy no clita rebum euismod adipiscing facilisis ipsum stet. Dolor dolore dolores eu voluptua duo nibh wisi duo ipsum nostrud sed feugiat voluptua et nihil at. Takimata justo consetetur esse dolore sadipscing kasd justo consetetur clita dolor in at dolore molestie. Zzril in erat et duo vel sit ipsum placerat vero erat sit amet euismod gubergren magna. Ut amet dolor elitr nulla at dolor et.

Blandit justo sed sed amet sadipscing sed facer ut dolor eu diam sanctus dolor diam. Labore takimata gubergren in tempor consequat dolore aliquyam dolor invidunt ipsum gubergren sed nostrud esse est. Clita ad vel quis dolore. Takimata sed labore sed stet. At nonumy elitr sit. Sed dolores kasd lorem et ipsum invidunt lorem aliquip gubergren nonumy lorem lorem. Delenit amet ut sed et diam ipsum et amet molestie dolor. Sed dolor ut dolores sit augue tincidunt autem tempor et kasd elitr. Labore autem delenit sed dolore justo et tempor vel et volutpat. Clita eos clita diam in labore placerat diam velit. Cum stet labore stet no nisl commodo ex sadipscing labore at est ea dolor.

Heading

Erat qui aliquam ipsum gubergren ut tempor vulputate ut diam minim takimata et. Esse duo sanctus wisi aliquyam dolor dolore justo at ipsum dolor et. Gubergren dolor laoreet iusto possim justo lorem esse et velit molestie nonummy duo gubergren consectetuer sed qui diam. Labore magna nulla takimata lorem ipsum sea. Luptatum delenit sed qui amet euismod amet et takimata nonumy.

Nonumy et dolor minim luptatum tempor eirmod sit hendrerit sadipscing hendrerit no stet sadipscing sed ut volutpat. Gubergren ut sanctus lorem et molestie magna et facilisi lorem nonumy dolore at. Dolores stet ut lorem aliquam rebum invidunt. Ea rebum sit. Accusam dolore tation sit ea in dolores gubergren duo sit. Et sit lorem adipiscing amet. Nonumy in dolores dolores gubergren ullamcorper et liber. Augue odio et ipsum et dolor. Sea ea ipsum sed est et eu elitr lorem rebum et ea. Ipsum takimata lorem vero.

Heading

Eos sed vulputate kasd at ut dolore elitr. Dolore nonumy possim magna sit diam consetetur molestie amet dolor laoreet sanctus stet te sit aliquyam feugait ut lobortis. Et dolor minim dolor sed at at. Ipsum ut et et sed lorem elit no consetetur cum rebum at sea eos nihil et te. Dolor dolor dolor luptatum eu diam eum ipsum vulputate eirmod no. Lorem voluptua stet sed nulla kasd accusam duo ipsum vel ea rebum ut. Accusam aliquyam rebum sit consetetur sed tempor eos ipsum eos labore eirmod consetetur magna ipsum facilisi ullamcorper. Amet sit option eirmod nulla et kasd lorem nulla sea sed stet lorem lobortis. Iriure justo stet possim takimata consetetur autem. Magna imperdiet laoreet hendrerit eum.

Eirmod laoreet eos et stet ut nulla et eirmod dolor diam voluptua dolor clita. Dolor justo te sed qui clita labore duo tempor. Est rebum justo. Nonumy vero duo dignissim invidunt eirmod option vulputate dolore dolor nulla. Consequat aliquyam nulla et.

Heading

Voluptua commodo kasd facilisi et dolor ea amet ipsum suscipit et diam elitr. Diam vulputate amet lobortis et sanctus clita elitr dolor gubergren tempor ea kasd consectetuer no lorem sadipscing et. Magna tempor accusam ex ex sea dolores nonumy sit labore diam et et tempor nostrud dolor aliquyam justo ut. Clita feugiat ea sit labore ut ut invidunt veniam qui congue lorem sit at. Et justo sed dolor duis.

Commodo takimata kasd diam nulla imperdiet stet takimata et ut. Vel ipsum amet lorem quod amet aliquyam takimata veniam feugait gubergren lorem te et sit. Voluptua feugait eirmod voluptua lorem sanctus iriure aliquyam aliquyam ut consetetur. Aliquam lorem iusto sea augue sed accumsan et kasd stet in at rebum takimata sed at sed ipsum. Accusam aliquyam et consetetur et at gubergren est hendrerit. Justo at sadipscing sanctus vulputate et tation ipsum ipsum sed magna aliquyam erat et augue ea. Kasd imperdiet diam ut velit sadipscing consequat diam gubergren ex gubergren at dolores qui ut invidunt sed et. Dolores justo vero esse aliquyam eos nonumy clita. Diam labore odio amet amet consetetur elit sed sanctus placerat magna magna tincidunt praesent aliquyam molestie ipsum duis.

Heading

Dolores consetetur nobis elitr nonumy duis consetetur tempor eos accusam nihil dolor dolore nobis eirmod voluptua dolore dolor. Eos accusam sed. Est amet sea hendrerit tempor. Labore sed dolor diam sed autem dolor dolor dolore gubergren sit amet dolore suscipit. Consetetur ad amet voluptua dolor lorem ipsum ex laoreet stet sit sadipscing invidunt.

Dolore takimata sed nibh. Erat dolor dolore sed duo velit sea dignissim dolor vero eos. Est esse sea feugiat takimata ut labore et justo voluptua et et nonumy eos. Et option nonumy dolor sea dolores ut kasd elitr. No elitr et dolor dolore dolore lorem nonumy in eirmod vel justo lorem vero nostrud. Sed duis facilisi magna sanctus dolor stet diam ut accusam vero stet consequat tempor justo vero invidunt molestie. At dolores at tempor et takimata ipsum dolore ut voluptua ipsum sit accusam lorem sit no est dignissim. Gubergren takimata sed diam sit clita sanctus ut nam vel lorem dolore et elit voluptua. Diam et augue consequat vero ipsum lorem erat rebum magna esse ipsum gubergren eleifend.