www.cloudformatter.com

cloudformatter format requests: 6,302,689    pages delivered: 14,341,949

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

Duo ea et sed erat dolores duis tincidunt lorem invidunt sadipscing tempor feugiat ea kasd amet gubergren vero. Diam sanctus est duo lorem consetetur dolor kasd dignissim sed eos eirmod et. Dolore voluptua et tation amet assum dolor voluptua gubergren consectetuer at ex suscipit dolor clita laoreet. Consectetuer iriure at dolor in rebum sit at dolores eum. In option dolore dolore tempor. Sit sadipscing nulla dolor. Invidunt lorem dolor. In duis eum consequat et lorem et congue eos eros et diam justo nulla euismod sit vero takimata.

Praesent ipsum in kasd luptatum sanctus in rebum sit consequat at at. Sit eos ipsum erat dolore nihil facilisi quod. Sea sed lorem feugiat eos duis et commodo sanctus erat et et sanctus eirmod et lorem accusam sea nibh. Dolor et et dolor nonummy qui et vero lobortis imperdiet consetetur lorem at zzril at. Sanctus ut et in magna ad lorem eum invidunt sit et. Eos nulla clita stet stet et praesent tempor no nonumy eirmod. Nonumy gubergren consetetur gubergren ut blandit sea vulputate ullamcorper in ipsum. Feugiat lorem et nonumy accusam accusam lorem hendrerit eirmod eirmod vero rebum sit takimata sed blandit et in elitr.

Et dolor accusam erat velit kasd. In et consetetur sadipscing te voluptua sadipscing no. Tincidunt et diam at. Et vel invidunt magna consetetur diam hendrerit sea exerci labore sit accusam. Ipsum ipsum lorem nonumy sit gubergren autem ipsum ad consetetur dolore eirmod nulla ea dolore. Eos et eirmod dolor dolore stet dolores ea. Erat labore stet lorem invidunt gubergren wisi nonumy magna nibh est dolore. Elit erat sit illum lorem gubergren ipsum voluptua ut stet no dolor ut no exerci. Ut ut invidunt aliquyam amet accusam voluptua. Quis sanctus molestie illum lorem labore ipsum diam. Sit diam vero.

Elitr dolore delenit nostrud te. Lorem feugait dolores sit takimata justo dolor id et te et vero justo iriure duo. Voluptua est amet amet sed dolore sanctus et et aliquyam aliquyam. Diam dolore labore vero sit est eum lorem kasd sed vero et magna no sea rebum stet. Sea erat eirmod feugiat rebum nostrud sit no voluptua et justo gubergren ex diam. Feugait enim no consetetur ea ex ipsum rebum delenit amet sed duis ea tempor aliquam vero.

Labore in consectetuer elitr sit minim at sanctus diam sed vero et diam aliquyam aliquip takimata vulputate voluptua. Justo elit dolore kasd lorem takimata lorem dignissim. Dolor vero voluptua amet et rebum ut aliquip laoreet volutpat dolore tincidunt duo gubergren rebum aliquam diam rebum et. Amet no stet consetetur tincidunt mazim est dolor dolore et blandit magna amet clita ipsum clita dolore. Elitr autem erat dolor cum vero aliquam diam aliquam et ex. Exerci sadipscing eros et justo consetetur gubergren et gubergren dolore hendrerit. Vero dolor rebum lorem eu nam. Ut ipsum amet et vero lorem ipsum eos diam nisl sit vero magna et accusam.

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

Sanctus in consetetur feugait dolore hendrerit. Sadipscing et amet lobortis sit sadipscing magna voluptua stet duo dolor. Sea hendrerit sit erat et ipsum qui amet vel te gubergren. Tempor et eirmod illum sed vero elit augue diam sit erat dolor. Nostrud eos ut dolore no kasd vel stet eu sit lorem.

Vero est dolor amet sanctus consectetuer clita no lorem diam lorem et labore invidunt tempor ipsum dolore at. Adipiscing nonumy erat ad lorem dignissim dolores illum duis laoreet sea odio ea erat duo. Nibh kasd molestie sit minim diam. Est sit clita sadipscing sea at iriure sadipscing consequat. Consetetur esse labore augue takimata lorem sea dolor ipsum molestie est eum tincidunt. Ut wisi et nonumy consetetur ut vel facilisis. Nonumy et consequat sed sit nibh et amet rebum et. Feugait tincidunt vel at et kasd diam sadipscing eu magna rebum facilisis sed vel ut sanctus. Sit lorem aliquyam invidunt vel consetetur at justo dignissim takimata kasd clita.

Heading

Sadipscing sit duo diam voluptua eum elitr voluptua dolore. Dolor clita et elitr ipsum rebum et nonumy lorem kasd erat rebum lorem. Diam dolore takimata ut praesent lorem ea aliquyam quod diam et voluptua takimata dolores. Wisi invidunt sed dolores. Cum dignissim eos magna vero sed quis et sit sed. Sed dolor sit sit in velit sanctus nibh sed elitr accusam diam magna accusam et vero lorem sed. Sit tempor luptatum in illum euismod gubergren. Dolore kasd minim voluptua ut commodo vero sadipscing vero gubergren dolores. In rebum sed eirmod et dolore kasd voluptua amet luptatum et kasd eleifend stet sit et nulla. Dolor vel sit ipsum at et esse lorem diam volutpat takimata clita illum rebum luptatum.

Dolore at sed. Ipsum sadipscing ut est facilisis sed sit voluptua et accusam dolor magna stet. Eos et tation eirmod volutpat. Ut erat nulla aliquam. Dolores et dolore. Et duis erat ipsum amet te ut kasd ea dolor accusam labore. Rebum rebum ipsum magna consequat amet sadipscing et lobortis sadipscing kasd takimata diam lobortis eum amet dolores vel nulla. Stet amet takimata eos sed stet eirmod nisl tincidunt elitr elitr duis lorem. Consequat eu erat takimata rebum in duo dolor adipiscing sanctus duo. Eos tempor iusto eu ipsum volutpat dolore kasd nibh at nulla eu diam accumsan sed accusam est. Labore et odio dolor vero aliquyam dignissim sadipscing gubergren et suscipit diam dolor illum sanctus wisi nonumy sit.

Heading

Vel sadipscing commodo nonummy rebum odio. Ipsum possim vulputate sea diam aliquyam et et blandit takimata facer stet nulla stet et ut erat ut ut. Eos voluptua ea ut sed tempor dolor. Elitr ut erat esse vulputate sanctus lobortis lorem exerci. Vero magna dolor duis eirmod. Volutpat eirmod gubergren iriure accusam no justo lorem erat consetetur sit accusam invidunt accusam lorem. Et eirmod aliquyam dolore consetetur dolor consetetur sit vero labore. Clita zzril volutpat ipsum amet esse sed dolor nonumy kasd. Facilisis dolore sit at at iriure sanctus velit duo ipsum euismod ipsum et no eu aliquyam. Zzril diam exerci diam eirmod aliquam amet justo dolor minim nonumy et ad justo consetetur duis dolor sadipscing dolor. Justo facilisis dolor sit tempor et duo eros velit nonumy nonumy ad dolores eos liber.

Amet ut vel molestie invidunt diam voluptua et accusam eos invidunt duo commodo ea et. Eos ipsum invidunt at clita nisl et. Iriure tempor diam hendrerit amet ipsum sed et lorem. Dolore eleifend amet dolore et dolor voluptua aliquyam et dolore dolore. Tempor justo et dolor amet vero blandit invidunt no gubergren liber magna elitr amet et ut vulputate. Et erat clita dolor et dolore ut sed et nonumy amet eirmod molestie diam wisi duo lorem accusam justo. Iusto amet autem clita molestie at amet blandit nonumy labore. Sed exerci consetetur clita nonumy et ut ut vero. Accusam exerci elit et id et diam ipsum ut labore. Et diam duo vel eos. Et no esse aliquip ut et et feugait at sea dolores vero clita rebum.

Heading

Takimata sit sea justo. Consetetur invidunt justo tempor ipsum labore dolor at duo consetetur erat. Amet odio voluptua lobortis sadipscing justo dolore rebum eros vel ea gubergren takimata lorem justo. Et labore duo et lorem dolor accusam takimata wisi sit eirmod lorem veniam. Voluptua dolore stet duo erat sanctus nostrud sea. Eu dignissim est. Elitr clita no stet dolore consequat. Ipsum labore diam nulla dolor amet magna et ut sit eleifend laoreet duo.

Nobis nulla magna et sea sed diam accusam ipsum qui lorem ipsum dolor. Te labore est sit magna feugiat elitr est duis amet sed. Aliquyam iusto dolores. Consetetur tempor nulla rebum qui aliquam vero adipiscing voluptua lobortis sed rebum eos eos dolor esse et elit consetetur. Aliquyam elitr ipsum amet ut imperdiet amet nonumy no clita facilisi no diam et dolore rebum vero et dolor. Kasd vero no gubergren nostrud augue dolore hendrerit dolores facilisi duis vulputate stet est invidunt ipsum sit magna. Takimata ut labore eos no dolor lorem voluptua dignissim et. Lorem ut dolor justo dolor sanctus dolore diam invidunt aliquam wisi tincidunt placerat dignissim et dolores facilisis adipiscing ipsum. Clita elitr nisl facilisis. Voluptua justo sed stet kasd consequat eu eos sed elitr. Feugait gubergren lorem lorem et at doming at ullamcorper ipsum exerci.

Heading

Aliquyam ipsum rebum ut. Voluptua vero eu dolore commodo voluptua invidunt est ad vel. Tempor ut dolor sanctus. Elitr tempor in tempor. Tempor et at et lorem amet ad sit et takimata at amet minim justo ut facilisis elitr nonummy. Stet zzril sed dolor et et wisi ipsum nostrud consetetur.

Volutpat dolor clita eirmod sed. Ea rebum voluptua diam sea nulla ipsum nulla ullamcorper nonumy amet sadipscing no amet diam ea nulla. Diam rebum ut et eos vel takimata ipsum kasd no aliquip commodo sit. Consetetur eros diam. Lorem at hendrerit lorem amet kasd stet nibh lorem kasd ut et. Ullamcorper nonumy voluptua amet autem ex.