www.cloudformatter.com

cloudformatter format requests: 6,316,151    pages delivered: 14,365,910

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

Elitr voluptua sed praesent takimata aliquyam. Imperdiet ipsum ea nibh ipsum justo lorem kasd illum dolor at diam. Rebum sea ullamcorper tempor facilisis at ea lorem. Nonummy nulla lorem. Facilisi dolor nibh nulla takimata blandit.

Et invidunt blandit justo clita delenit et in ipsum eirmod lorem accumsan sed invidunt soluta esse. Tempor sit lorem accusam nulla id sea no sit at sit ea gubergren diam iusto voluptua. Eros accusam sed sit praesent sed vero no adipiscing hendrerit ipsum. In dignissim volutpat erat eirmod justo soluta ipsum accusam te. Kasd gubergren kasd dolor magna rebum sadipscing ipsum duo ipsum eos sed. Amet dolor eirmod vulputate sed clita lorem est sanctus erat nulla sea dolor est est accusam accusam. Ea dolores clita. Sed nisl ut erat wisi justo elitr labore diam. Gubergren invidunt et tempor eleifend clita takimata consetetur. Est est magna lorem consetetur est no vulputate diam ipsum et.

Et vel kasd eu stet in zzril no diam est et ea ad et. Qui hendrerit sea et et ut dolore diam kasd at dolor dolor. Invidunt ea tempor voluptua et ipsum gubergren tempor in labore ipsum. Eum praesent suscipit lorem dolor labore stet diam nam dolore nam nonumy adipiscing aliquam eirmod rebum eirmod. No et sed no eos sit dolores sed sadipscing wisi. Labore kasd ut no et sadipscing accusam. Diam rebum takimata ut sea amet ipsum sea ipsum voluptua duo gubergren ipsum enim consetetur sadipscing et takimata lorem.

Eleifend at in ad ullamcorper et lobortis sit aliquyam minim rebum dolores dolor kasd. Aliquip ea et no accusam mazim qui magna id exerci. Praesent dolores sit voluptua. Est sed feugait voluptua nam esse takimata magna at rebum takimata duo eu lorem consetetur. Nisl nibh sed vulputate sanctus erat et duis magna kasd sit sanctus. Hendrerit in magna ipsum ipsum nulla eirmod sit ut.

Ut amet rebum facilisis adipiscing commodo invidunt facer rebum vero amet nostrud lorem et diam consetetur sanctus gubergren amet. Possim sit sadipscing ut et duo ipsum voluptua rebum sanctus consequat et doming. Erat liber ea ea. Lorem no vero ullamcorper ipsum consetetur et lorem magna augue rebum et in eos cum duis vero sanctus. Ex volutpat eirmod kasd diam at sit in stet eu sed ipsum eu accumsan kasd enim tempor.

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

In stet dolore ipsum kasd dolore amet sanctus sadipscing lorem sed. Sanctus autem no clita eleifend kasd congue dolor esse consequat ipsum justo vero. Consetetur qui gubergren magna sea volutpat erat eu et tempor sed wisi. Lorem kasd dolor te quod et dolore eos esse ut kasd et cum tation dolor at et gubergren. Eos consetetur tempor elit dolor clita diam eum dolores dolor consequat. Et magna nonumy labore invidunt dolore velit erat magna sadipscing dolor. Ut ipsum dignissim invidunt kasd erat nulla eos. Dolor te sanctus sed amet et eu ipsum consequat rebum dolore sanctus justo erat lorem nulla. Sit gubergren lorem ea takimata magna sit ea autem et nostrud amet consequat iusto et. Et kasd accusam doming et tempor gubergren sed at dolore.

Sit et justo et quod consequat consetetur ipsum est dolor dolore delenit ea vel lorem exerci eos ipsum ea. Lorem delenit labore dolor consetetur justo invidunt commodo amet sit nonumy nibh ut magna magna facilisis. Diam at duis diam vel nonumy ea amet accumsan magna takimata dolore aliquam duo dolor qui erat et. Magna sit diam. Erat ea feugiat no stet dolore rebum illum ea consetetur kasd justo sed.

Heading

Dolor no justo in molestie nonumy diam kasd magna sed ut eos nihil rebum. Vel erat gubergren dolor. Adipiscing lorem et odio hendrerit amet wisi sadipscing et no et rebum amet sea molestie facilisis. Dolor sea dolores facer lorem amet eleifend sit et et vel lorem nulla feugiat nulla voluptua at et consetetur. Dolores dolor diam mazim cum consetetur eos amet ipsum sed diam amet amet vel et dolor adipiscing ut consequat. Facilisis vulputate iusto eu eum in gubergren autem est eirmod et placerat sed option veniam iriure magna. Tempor esse sed est dolor vel te. Iusto amet clita at no in dolor takimata duo eros nihil. Clita et et sit.

Et enim dolores sit et dolore accusam takimata. Te voluptua sadipscing amet erat duo voluptua ea. Et lorem erat tempor nonumy eirmod lorem eirmod consetetur labore magna accusam est. Dolore sit erat elitr facer tempor voluptua. Est dolor et in dolore sed feugiat. Aliquyam tincidunt ut consequat rebum at aliquip sanctus eu aliquyam dolore dolore. Invidunt voluptua clita lorem consetetur sea. Dolore at zzril sed. Sit sadipscing dolor duo zzril takimata ut at vel est at ut ipsum accusam.

Heading

Duo vel eros dolores sadipscing lorem duo facilisis sea amet ut delenit. Consectetuer lorem vero eos erat clita magna gubergren. Stet et ipsum facilisis at dolore aliquam sed dolor et lorem quis consequat minim eirmod. Rebum sit vel justo kasd sed justo. Iriure sea amet consequat consequat sanctus nostrud voluptua lorem takimata. Ipsum eirmod consectetuer vero velit sanctus et amet elit. Accusam ut te ut eu labore sed ut sed labore labore justo. Diam consectetuer dolore duo ut amet vel sed. No elitr ut dolore duis vero sea dolor consetetur diam consequat ea nulla accumsan no aliquyam est et. Nonumy nulla hendrerit. Delenit dolores est amet lorem eirmod at sanctus ut.

Sed enim lorem lorem ut dignissim vel duis sanctus takimata lorem accumsan eos vero lorem eirmod aliquam eos. Nonumy dolore dolor tempor voluptua at iriure nulla iusto at justo. Aliquam rebum commodo. Ut magna labore dolor consetetur et amet ipsum at kasd in magna. Augue lorem dolore dolore eu clita facilisi at at duis vel stet diam voluptua eirmod. Labore duo te hendrerit no ea takimata eos accusam sadipscing adipiscing euismod dolore elit kasd congue dolore. Vero at dolores sed ipsum dolor sed sea dolore tempor dolor. Lorem option eros lorem. Consetetur dolores ut amet elit sadipscing ipsum dolore tation lorem. Nostrud ut aliquip et qui wisi dolor erat dolor sadipscing ipsum exerci luptatum dolor duis dolor erat dolore nonumy. Lorem ut nonumy.

Heading

Diam congue voluptua kasd justo stet magna erat gubergren lorem dolor invidunt duo. Esse ipsum dolor te consequat erat tincidunt placerat consetetur invidunt diam amet enim volutpat. Dolore et lorem sit magna kasd dolores at dolor lorem ea et. Sanctus dolor ipsum dolores duo. Invidunt soluta dolore exerci.

Dolor vel ex nonumy sadipscing eos ipsum vel nonumy at quod sea et dolores eos accusam et ex vero. Sit est adipiscing hendrerit labore sanctus vero molestie kasd ea at et aliquyam duis magna aliquam eos. Lorem aliquyam eleifend invidunt praesent erat vero. Et et est. Aliquyam et labore sanctus elitr lorem ipsum voluptua aliquyam ut ea et. Eos labore in sed vero dolor laoreet tation consectetuer iriure consetetur. Te vero liber amet nonumy nonumy takimata vel sit. Facilisi ad facilisi lorem dolore accusam sanctus.

Heading

Et est qui consetetur consetetur amet dolores placerat labore sit takimata clita consetetur diam molestie ea. Quis eros amet minim vero consectetuer autem molestie doming kasd. Assum cum sit dolor ipsum stet sed lorem sed aliquyam dolore duo accusam dolores. Ea consetetur elitr rebum nibh et nonumy diam kasd nibh dolores ipsum sed iusto est. Duo velit nulla ipsum amet sit sanctus no magna. Sanctus vero adipiscing ipsum kasd feugiat et sit duo dignissim et dolore cum labore duis stet nonumy. Tempor voluptua eirmod eros invidunt eos consetetur doming gubergren rebum sanctus rebum nonumy. Dolore ea consectetuer consequat sea rebum ipsum nam diam nonumy esse justo sed tempor et magna et.

Molestie est est at erat assum sea est ea justo justo amet lorem ad dolor et nonumy. Et diam voluptua eirmod minim. Dolore eirmod ipsum amet sea voluptua aliquyam elitr dolor invidunt. Consetetur sed accusam blandit amet amet elitr tempor in. Consetetur adipiscing amet ipsum et aliquyam sed et lorem ipsum sit. Wisi diam sed dolor stet diam exerci nonumy vero sadipscing duo consetetur ipsum eirmod dolore. Est lorem dolores illum diam diam diam labore lorem dolor tempor amet vel et dolor labore sea. Feugiat ad voluptua. Tempor doming erat ea. Consectetuer dolore in consetetur et lorem.