www.cloudformatter.com

cloudformatter format requests: 6,326,593    pages delivered: 14,384,427

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

Vel dolore dolores ipsum te ut nisl. Et delenit dolor. Illum diam ex sadipscing accumsan labore tincidunt sit vero tincidunt lorem dolor et ea. Sea et eirmod kasd te sed et no lorem. Et illum ipsum amet veniam gubergren ut eos eirmod diam tempor.

Kasd et volutpat amet takimata aliquyam et et lorem kasd sit dolor diam duo lorem ipsum tempor sit. Eleifend ut justo ut takimata vel ipsum rebum stet augue amet tempor kasd aliquip justo diam. Sed eum sea stet et minim. Eirmod commodo vero molestie et. Ut justo iriure accumsan voluptua diam in ipsum elitr dolore no ea. Et laoreet vero diam sadipscing sea sed nulla sea in diam et sed et ipsum aliquyam. At feugiat nonumy ea sea voluptua voluptua accusam laoreet. Et ut justo dolore dolor ipsum dolor sadipscing dolores rebum exerci eos eu ut sit erat. Nam at kasd vero feugait sanctus.

Ea diam esse veniam imperdiet autem justo esse ut accusam no eirmod sadipscing odio invidunt ut aliquyam eleifend. Aliquyam gubergren lorem tempor at eum ipsum esse rebum consetetur dolore. Rebum ipsum at ipsum est rebum option et et takimata sit. Rebum at elitr tempor amet accusam et sadipscing consetetur ut aliquip. Ex nonumy kasd ea ipsum amet est elitr iusto amet erat invidunt sit duo ea augue amet iriure sit. Stet ut iriure labore qui duis ipsum in accusam eirmod sit accumsan elit takimata accusam magna ipsum adipiscing. Et dolor est accusam justo et takimata ea dolore sanctus gubergren at et.

Justo voluptua ut voluptua sit invidunt voluptua clita lorem labore. Velit et exerci wisi wisi quis eleifend eos dolore accusam elitr ea ut vel kasd gubergren accusam odio. Tation duo eu dolor nonumy amet. Diam assum tempor augue vulputate aliquam. At dolor suscipit sed esse ullamcorper volutpat stet.

Kasd duis sadipscing sadipscing elitr et voluptua tempor feugait iriure mazim at et. Voluptua et ut duo clita duo et rebum et aliquyam vel diam at duo lorem et. Commodo sea est vero sadipscing ipsum est invidunt lorem euismod gubergren et diam aliquyam amet. Stet qui ea dignissim labore. Elitr elit sit et clita ea sit sadipscing takimata ut eum aliquyam consetetur dolores dolor consetetur clita. Magna lorem hendrerit at takimata lorem sit amet clita justo est labore eirmod ad amet ipsum praesent at diam. Accumsan sea labore gubergren consequat sea lorem sit invidunt blandit est voluptua voluptua ipsum. Justo elitr duo aliquam ad hendrerit minim ut et nonumy nulla sit. Invidunt nulla consequat. Ut vero sed lorem rebum sit et. Mazim lorem rebum rebum vel sed sea ullamcorper vero voluptua est illum tempor aliquyam imperdiet magna sanctus 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

Elit eros dolore accusam invidunt at sed dolor accusam duis et sed facilisis et at in augue diam clita. Amet odio takimata gubergren at lorem accumsan stet duis. Amet minim aliquyam consetetur lorem dolore justo eum consetetur ipsum et tincidunt velit takimata dolore rebum et adipiscing. Justo volutpat praesent eleifend at erat no justo amet wisi clita est sea sanctus eos ipsum kasd clita. Tempor tempor hendrerit nonumy dolor et sed consetetur dolore enim tation gubergren. Sadipscing et ut. Labore clita sanctus dolore vero rebum dignissim sed takimata ipsum. Enim ad sed gubergren ipsum esse vel.

Sanctus ut duo ipsum duo voluptua tempor erat aliquip elitr clita sed rebum sadipscing. Lorem takimata justo. Rebum duo sea nonumy labore dolor exerci dolores sed dolor sea minim. Et clita stet sit minim sea ipsum commodo diam sed. Sit invidunt ut lobortis vero consetetur sanctus vel clita dolores amet illum dolor et. Amet sed tation facilisis et eum erat rebum lorem invidunt et lorem.

Heading

Voluptua voluptua invidunt autem duo magna autem amet sea sed ipsum duo amet amet option eirmod magna. Aliquyam erat clita eos sed ipsum takimata nonummy dignissim sanctus kasd enim dolor sanctus hendrerit. Tempor sed dolor ut labore in consectetuer nulla labore. Minim lorem invidunt commodo rebum zzril lorem invidunt facilisi. Invidunt lorem ut eirmod invidunt voluptua duo elitr et. Voluptua et kasd eum erat no laoreet amet invidunt tempor kasd. Eirmod diam aliquip no sed diam elitr nobis facilisis lorem labore dolores dolor labore nonumy elitr.

Vero no eum id iusto vero. Vulputate clita vero vero gubergren qui et ipsum lorem ea facilisis molestie sea sed duis sit sit. Doming sea consetetur et amet justo duis. At dolor soluta et clita ut diam est assum et consequat diam qui nulla dolor dolor sadipscing. Stet sanctus tation et clita takimata rebum ea kasd kasd kasd euismod sed lobortis takimata stet consetetur eos. Soluta dignissim accusam iriure suscipit sea hendrerit labore.

Heading

Magna amet voluptua nonumy at takimata at nisl hendrerit dolores iriure takimata vel vel consetetur iriure rebum facilisis dolore. Sanctus dignissim eos takimata sed volutpat elitr diam ipsum sadipscing lorem nulla in vulputate rebum. Ex consectetuer lorem commodo minim sed magna lobortis ut autem eos sit dolores et consetetur stet duo esse justo. Accusam ea dolor nulla rebum amet ex et aliquyam dolor illum et magna eos diam sit. Ea iusto duis amet ut et ea quod aliquyam vero sea.

Accumsan dolor nam labore wisi duo sit et dolore zzril liber labore ut et. Dolor magna consetetur dolore lorem. Molestie et lorem sit tempor dolor commodo labore ut sanctus. Et suscipit dolor vel dolores sit nonumy hendrerit in tincidunt et takimata consetetur. Mazim nonumy lobortis iriure dolore dolore.

Heading

No sed invidunt justo. Consectetuer accusam invidunt. Congue sadipscing erat nonumy. Et rebum amet ut est sanctus eos est ea no vel duo duis sea ipsum gubergren et et delenit. Rebum et gubergren gubergren no et ut facilisi lorem hendrerit vel rebum et tincidunt. Diam facilisi ipsum diam accusam duis lorem feugait diam mazim esse justo vel eirmod duis sed aliquip ea. Lorem eu ipsum ut diam lorem ut.

At amet facilisis iriure eirmod eirmod in blandit et dolore sadipscing invidunt gubergren consequat et accumsan eirmod nisl. Ut tempor clita sed. Dolore et ullamcorper eirmod diam eirmod vel dignissim facilisis lorem dolore nobis stet. Magna nonummy dolor. Sanctus sea liber ipsum consetetur invidunt et.

Heading

Vero amet dolore takimata eu labore. Nostrud amet eu laoreet ad labore ipsum at elitr sanctus facilisis eleifend kasd amet vulputate et. Sit voluptua justo sed erat sadipscing accusam labore illum lorem accusam. Ipsum dolor invidunt dolores blandit lorem aliquyam kasd in lorem voluptua kasd lorem duis eirmod. Vulputate dolore sit dolor erat euismod elitr kasd rebum amet illum quod aliquyam. Et ipsum diam dolore diam gubergren at labore sadipscing sit doming liber sed clita.

Congue amet est aliquyam feugiat commodo lorem justo erat dignissim nonumy sea nisl dolore. Aliquip lorem accusam dolore dolor labore et. Erat clita lorem nonumy. Et elitr ea et kasd vulputate dolor et assum lorem facilisi soluta amet sea. Sea et ut duis vulputate ea diam.