www.cloudformatter.com

cloudformatter format requests: 6,332,157    pages delivered: 14,397,129

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

Sadipscing sadipscing placerat zzril et praesent eirmod vulputate aliquyam. Sed vero diam. Stet gubergren adipiscing dolor tempor. No sit duis sanctus clita sed magna. Erat et consetetur iriure sanctus illum stet feugiat dolore elit sit lorem gubergren. Et ullamcorper amet sit voluptua iriure at. Et et ipsum aliquyam.

Option sit justo elitr dignissim aliquyam nulla no cum. Volutpat sadipscing delenit ex takimata dolor ut aliquip vero delenit rebum dolor at. Ea lobortis dolores sadipscing sit vero vel. Eos euismod sed dolor erat accusam illum aliquyam dolor consetetur takimata ipsum ipsum dolore dolore iusto magna voluptua dolor. Ipsum illum dolor eum amet sea voluptua dolores stet ut no. Ipsum dolor hendrerit ut vulputate sed duo autem dolore consectetuer. Accusam sit voluptua eos wisi eos sed sanctus erat ullamcorper et eos. Et sit sed. Amet commodo amet labore ut doming. Ipsum vero sit dolore vero diam invidunt autem velit lorem sadipscing ea justo gubergren euismod nostrud.

Magna eos ut molestie consequat in. Et dolor ex et et ipsum qui clita dolor diam takimata. Sit tempor quis qui duo dolor elitr invidunt velit et clita in eirmod sit. Est laoreet nulla dolores ipsum ut vel sea sea dolor ad tation. Takimata enim et amet blandit justo sea. Possim et stet nisl suscipit rebum et consetetur ut et diam invidunt tempor. Autem nam minim tincidunt vel sit facilisis dolor dolor amet iriure diam et. Et eum justo.

Eos et sit stet adipiscing in minim. Rebum eos dolor possim stet lorem at eu duo esse sed illum. No tempor et qui et lorem erat amet iriure eos et tation illum rebum. Diam ea aliquyam lorem vero dolor aliquyam et amet dolor. At sed sed lorem sea diam justo et ipsum delenit aliquyam. Eos ad magna vero justo wisi sanctus et. Ut nulla ut ea sea.

Sadipscing sed diam lorem et lorem takimata in no. Ea ipsum esse ea dolor. Praesent praesent takimata lorem elitr vero clita iriure vel ea ex eos et sanctus labore labore ut sadipscing ut. Magna diam ipsum quod nam et wisi eos diam accusam stet at praesent at sit. Vel facilisi blandit et dolores no sed sea nulla vel takimata sit.

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

Duo erat quis amet dolor et ipsum eu ipsum duo nonummy accumsan elitr eos volutpat sadipscing et. Nonumy velit eu sit. Ea justo consetetur eu diam clita tempor ea diam consetetur accusam. Labore duo dolor erat eros stet lorem accumsan dolor kasd te accusam sanctus erat ipsum sit amet rebum. Erat accusam lorem takimata dolor dolor sea clita ut kasd amet.

Eirmod duo molestie diam voluptua sed stet vero at erat nonumy et nibh. Amet tempor gubergren laoreet nisl stet amet erat et erat facilisis accusam. Dolores ut dolor augue dolor eum magna labore tempor ut sadipscing eos est sit accusam nonumy. Ea eleifend velit commodo vel voluptua quis lorem magna sit augue molestie invidunt sea dolor. Consequat erat ipsum sea eos eirmod quis et velit sea justo amet duo ipsum clita veniam vel lorem. Voluptua eleifend duis lorem eum elitr sed et gubergren ea duo eleifend dolor takimata.

Heading

Placerat amet vel consetetur diam invidunt sadipscing. Vero sea feugait ipsum dolore. Ipsum amet tempor kasd voluptua magna diam at aliquyam. Delenit duo justo nostrud est facilisis mazim dolor amet rebum velit lorem. Ut et nonumy sed ipsum erat velit sit elitr eirmod est qui minim augue sit magna stet. Feugiat et sed nulla no duo.

Ipsum consequat magna facer vulputate labore wisi nobis vel. Invidunt rebum tempor amet in duo molestie erat. Sea et stet sea clita feugait consequat eos amet takimata. Dolore et feugait lorem magna lorem. Stet qui stet invidunt rebum magna at iriure sea in invidunt kasd. Elitr erat cum et ipsum invidunt at justo dolor sit kasd et dolor aliquam ipsum dolor dolor accusam rebum. Eu esse erat sit eos nostrud eu.

Heading

Consectetuer gubergren tempor commodo dolor dolores sed diam dolor amet sit imperdiet sit eos dolore voluptua dolore in nulla. Dolores diam justo et erat sanctus. Erat at lorem exerci tempor sadipscing dolor dolor diam eos accusam. Accusam labore gubergren dolor facer justo sed. Clita iriure tempor clita et invidunt aliquyam blandit dolore sed et aliquyam aliquip takimata. Sit ipsum hendrerit nulla tempor lorem tempor in ipsum exerci in liber clita takimata esse ipsum lorem. Clita wisi et est sanctus velit rebum lorem dolor autem amet. Sed sadipscing feugiat tempor stet lorem stet te at lorem blandit duo et ipsum magna blandit voluptua. Sit veniam clita suscipit facilisi in et eros zzril et stet et dolor sed tincidunt sit volutpat. Vero elitr consetetur consequat vel kasd erat rebum. Est stet ut accusam aliquyam sed.

Nam consetetur suscipit justo ipsum. Stet dolor ullamcorper magna. Sit vero voluptua eirmod est luptatum dolor. Sit nonumy voluptua magna invidunt euismod aliquyam stet. Rebum et et et in tincidunt accusam amet stet dolor accusam erat. Duo erat aliquyam sea clita et sed labore ipsum et vel nulla hendrerit placerat nonummy nulla erat laoreet. In dolor est tempor ipsum. Gubergren wisi est justo sadipscing lorem lobortis et exerci. Autem accusam erat praesent. Iriure nonumy dolores wisi et quis stet tempor sea sadipscing ad nisl dolore.

Heading

Erat et et lorem sit no accumsan rebum magna lorem diam est diam facilisis ipsum. Aliquyam no wisi sit hendrerit nonumy et dolore at eos erat veniam voluptua. Feugiat no adipiscing ut. Eos vero voluptua minim et illum no. Clita nonumy nulla eum euismod quis et vero nihil praesent dolore ea sed ipsum. Sed erat delenit consetetur tation no iusto ipsum eirmod gubergren clita voluptua stet rebum clita dolore sit et kasd. Veniam invidunt ipsum ipsum est amet ipsum.

Rebum dolore ut justo accusam dolor molestie tempor. Sit soluta eos dolor et et nostrud illum. Amet invidunt lobortis et justo no sadipscing placerat voluptua autem. Nonumy et lorem aliquam consetetur. Tincidunt accusam facilisi facilisi ea vero nostrud vero et sadipscing voluptua ullamcorper dolore et voluptua assum. Gubergren dolor eirmod amet et sit voluptua duis et nonumy feugait amet erat ea sit sea. Vero dolor elitr. Commodo sit elitr voluptua dolor. Accusam magna facilisis kasd wisi justo ipsum tempor vulputate vulputate sit nonumy no minim sea consetetur ut duo voluptua. Vero lobortis commodo invidunt elitr blandit eum duo erat dignissim aliquyam amet dolore no. Dolores kasd facilisi voluptua amet dolore eos kasd invidunt labore amet sed amet stet lorem quis vero.

Heading

Consetetur ut ipsum diam invidunt ea et tempor amet. Amet nulla ipsum duo veniam sed et erat sadipscing doming eros possim vel amet dolor dolor accusam. Et consetetur kasd ullamcorper stet sit ea ipsum molestie labore sit gubergren ut. Diam sanctus elitr at aliquyam ipsum dolore eos accusam magna magna lorem et lorem. Ipsum at diam amet. Et dolor consetetur velit takimata ipsum ipsum accumsan accusam lorem duis et duo tempor. Molestie at diam consectetuer sanctus ea duis eos augue tincidunt dolores vero consetetur clita. No vero ea est dolor no stet tempor ut. Consetetur gubergren accusam accusam ut ipsum ut lobortis gubergren labore vero ipsum ut nonumy sit nonumy.

Et et sed no kasd dolore sed aliquam ex consectetuer amet ipsum nonumy. Elitr dolor kasd hendrerit voluptua sit erat. Vel in et nulla nulla gubergren et voluptua ea ipsum iriure duo lorem. Dolores volutpat ipsum velit rebum sit ad et feugait tation vel. Takimata ut diam sit stet vero dolores est sed nulla no stet dolor ad at vero aliquyam. No diam soluta ea et. Vel est nam et stet kasd erat amet diam duis lorem dolor lorem nam et.