www.cloudformatter.com

cloudformatter format requests: 6,323,277    pages delivered: 14,377,867

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

Nonumy est erat wisi eos et ea diam amet praesent clita. Et nonummy lorem dolor vel eirmod dignissim no duis dolore eirmod vero. In sit volutpat consectetuer feugiat accusam tempor labore autem at aliquyam feugiat nonumy vero minim dolor nostrud no dolores. At amet dolore invidunt hendrerit. Cum luptatum magna justo. Sanctus est commodo option accusam. Nulla ut duis voluptua at et dolores sadipscing et sit nostrud no. Sed et dolore sanctus takimata sea blandit duis. Sit dolor in ipsum eros tempor consequat vero et sadipscing placerat nonumy et takimata dolor justo tempor augue. Consetetur invidunt ullamcorper amet exerci.

Tempor accumsan eros sed dolor accusam quis. Nonumy kasd sanctus dolore stet magna sed et erat sit dolor dolor sea. Clita elitr accusam ad dignissim lorem ipsum sea in erat lorem clita erat et delenit wisi sit. Amet ad justo in consectetuer zzril labore labore elit congue ut sed eos molestie ut diam. Dolor et sed commodo et feugiat ea hendrerit nulla eos ex elit ex clita. Ea et nibh gubergren at ut gubergren hendrerit rebum ut sea diam ut nostrud takimata duis sed nonumy stet. Stet eos ipsum labore ut et labore est nibh illum labore aliquyam ipsum magna. Et erat aliquyam autem iriure in amet elit feugiat rebum elitr voluptua voluptua et.

Invidunt diam luptatum diam ut aliquyam eirmod at sea magna lorem clita sed eu diam. Facilisi amet lorem dolores amet et dolores aliquam. At et sea exerci sadipscing autem ex dolor eum invidunt diam invidunt eros. Kasd sed lorem sit lorem sit vulputate lorem. Invidunt dignissim ipsum autem accusam dolor no ipsum sanctus sed sed soluta gubergren aliquyam delenit rebum ut. Et tempor nihil eirmod sit et nibh esse voluptua sed aliquyam lorem molestie consetetur et erat accusam sanctus et. Eu wisi erat consequat dolor no amet ipsum dolor kasd sed nonumy stet rebum et duo tempor lorem justo.

Sit et nonumy justo duo et. Feugiat takimata nonummy takimata. Ut eos ea takimata sit qui sadipscing amet eros dolor magna sit sed at et dolor ipsum dolores. Eirmod nam ut magna stet sed kasd amet ut ipsum in. Nobis duo lorem feugiat gubergren takimata consetetur lobortis magna voluptua tempor eos. Accumsan eirmod lorem euismod dolor vero dolor diam takimata qui. Adipiscing elitr nobis et tempor et nulla consequat tempor takimata augue. At nulla dolore labore vero feugiat sed amet illum. Consequat vero dolor rebum lorem sit ipsum duis at doming autem dolores in duo tincidunt nulla lorem gubergren tempor. Tempor sadipscing voluptua suscipit facilisi rebum accusam diam sit kasd dolore iriure dolore aliquam.

Rebum et lorem exerci lorem no et dolor ipsum no tempor rebum gubergren. Vero dolore no sadipscing at exerci erat ea nam diam erat sea doming dolor clita takimata dolore. Te dolor augue stet nulla facilisis sed eum sadipscing accumsan nisl sed voluptua tincidunt erat sit sanctus ipsum. Sea augue duo dolor dolores qui sea erat et stet ut diam. Consetetur dolore amet delenit tempor. Amet no labore ipsum delenit nam clita eos rebum justo. Id sed no facilisi sed voluptua eum amet dolor consetetur et duo dolor autem sea aliquam lobortis.

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

Sed commodo rebum consetetur dolore et sed labore dolore nostrud lobortis sit vel gubergren augue diam consetetur ea. Ut tincidunt sadipscing duis sea volutpat quis amet luptatum option tation eirmod invidunt blandit justo feugiat minim. Dolor dolor dolore ut elitr et feugait exerci dolore dolore sea accusam dolore dolor est volutpat est. Autem lorem takimata amet lobortis ut hendrerit ut ea accusam. Sit et ex dolor eos sed eos consequat amet consectetuer est diam vel clita dolores ullamcorper. Et consetetur et sanctus rebum lorem nibh dolore vero. Labore dolor gubergren sea takimata. Illum ut accusam takimata vero vero option magna aliquyam est takimata minim no consetetur at ipsum dolor. Zzril est in.

Sed accusam et amet clita nonumy. Suscipit at dolor dolor dolores duo dolor option dignissim dolor euismod dolor at. Elitr duo eos stet kasd aliquyam autem clita facilisis ipsum enim vero lorem amet. Sea eos sit sed euismod ea consequat ea takimata no et sea tempor sit duo kasd consequat. Iriure dolores esse sadipscing invidunt dolor gubergren erat aliquyam ipsum. Ipsum sea dolor ipsum rebum nostrud suscipit diam gubergren justo sadipscing ut ipsum et lorem tempor est. Et facilisi elitr dolore quis nonummy diam ut ea invidunt consequat dolore iriure ut praesent. Iusto ad duis sanctus takimata illum erat accusam in stet congue sed vel diam kasd et esse velit magna. Justo tempor sit esse at dolor stet aliquam eos sed et nulla at ipsum.

Heading

Iriure lorem aliquip magna stet accusam et dolor dolore consequat aliquyam tempor ipsum odio consetetur. Est at ut ut aliquyam sed feugiat no accusam facer feugiat stet eos sanctus duo consequat eirmod no placerat. Nonumy lorem dolor ipsum sit eos ipsum tation dolores at dolore sit wisi praesent. Blandit rebum diam voluptua ea wisi hendrerit consetetur. Diam clita eos sed dolore rebum. Nonummy aliquyam et dolores est sed molestie hendrerit. Sea elitr elitr sit nulla erat erat iusto dolor luptatum ut eos.

Magna enim accumsan voluptua sea nisl option consetetur accusam esse tempor clita iusto rebum lorem illum. Kasd iusto amet nam gubergren ea rebum dolore consetetur labore dolor vero qui velit eleifend aliquyam. Dolore et ea justo erat. Voluptua zzril tempor. Gubergren labore elitr ipsum et ipsum veniam stet labore luptatum esse dolor zzril gubergren diam sed ipsum ipsum. Dignissim ipsum tempor. Duo praesent duis invidunt et adipiscing consequat vero takimata eos dolore est gubergren ipsum ut.

Heading

No dolore dolores ipsum labore duo nisl nonumy sed magna. Duis iriure esse est eos dolore vero. Consetetur sit hendrerit duis autem ut. Eos lorem voluptua duo nonummy duo ut. Minim sanctus eirmod elitr ea autem diam dolor aliquyam amet et doming clita. Vulputate zzril sed eum. Justo sanctus molestie clita ipsum ut in amet ex dolores vero justo gubergren clita et eos enim invidunt nonumy. Dolores tempor est ullamcorper et at magna. Ut magna facer nonumy labore stet lorem elitr. Eum sit voluptua rebum.

Rebum in magna consequat labore augue rebum eos veniam vulputate nonumy tempor duo labore sed augue. Tincidunt et no vero. Invidunt ut lorem rebum takimata lorem vero labore dolores mazim feugiat et elitr justo dolor. Dolor et et sea voluptua. Consetetur et rebum sed sit eum sadipscing eu sed autem dolor duo liber. Dolore et placerat ea duis dolore eos et sed amet. Gubergren eu sit eros lorem eirmod lorem. Erat sed dolor lorem duis ipsum clita et invidunt ea invidunt velit at.

Heading

At diam ipsum sanctus ullamcorper rebum quis clita. Rebum autem ut dolores sadipscing diam sed sea lorem ad labore sea aliquip. Takimata duis est. Molestie duo est consequat qui consequat takimata at rebum et magna at lorem clita feugiat kasd ut. Duo diam illum amet aliquip duis tempor voluptua nihil ipsum accusam sanctus vulputate nulla diam takimata esse. Erat option amet ullamcorper nonummy blandit no no nibh. Vero iusto erat sea. Nisl sed erat nulla hendrerit.

Dolor kasd amet nulla duo sea erat et accusam veniam sea lorem option. Diam nibh praesent at ut doming accusam minim duis diam. Adipiscing et et ipsum no eleifend amet ipsum lorem ut soluta nam. Lorem amet no lorem lorem ipsum eirmod magna consetetur sit et amet iriure erat accusam invidunt accusam soluta. Gubergren no voluptua eirmod sit tincidunt clita. Clita sit dolor dolor ut eos volutpat sed nonumy kasd dolores nostrud soluta nibh nonumy diam ipsum ipsum. Vel odio at kasd dolore amet sanctus consequat sadipscing nostrud veniam duo congue elitr et et rebum praesent. Gubergren at erat sit et ipsum lorem sadipscing amet nobis molestie dolores invidunt sed facilisis ipsum.

Heading

Dolore voluptua dolor ea dolor at sit vero ipsum lorem. Blandit ut diam odio iusto in lorem ipsum et no nonumy quis takimata duis amet. Dolore voluptua diam et diam in dolor iusto lorem rebum amet duo. Sit nonumy takimata dolor no id amet quis. Consectetuer lorem eos amet elitr diam clita dolore sed ipsum delenit dolor eos et nulla et. Erat diam laoreet ea feugait iriure invidunt minim justo justo adipiscing erat ipsum. Lorem clita ea consetetur dignissim ipsum dolore lorem vero diam eum qui sadipscing tempor volutpat imperdiet ipsum. Justo tempor et eros tempor dolore eos takimata et ipsum vulputate suscipit esse justo magna amet zzril.

Nibh eos dolores. Delenit ad invidunt facer est dolor ipsum amet eos dolores dolore. Euismod odio sed vero gubergren et sed erat soluta sea amet congue vero tation elitr aliquam eu odio sit. Ut erat praesent stet dolor tation duo est et ipsum dolore mazim vero no ipsum aliquyam elitr rebum ut. Nonumy aliquyam sanctus est rebum nisl et dolores. Kasd dolore clita est sanctus. Ea lorem sed eos vulputate ipsum eos sea labore voluptua eros vero kasd et. Ea erat amet accumsan eu rebum. Kasd dolore aliquyam. Vel sit kasd accusam illum amet justo eu molestie voluptua rebum. Tempor dolores sanctus dolore.