www.cloudformatter.com

cloudformatter format requests: 6,318,164    pages delivered: 14,369,278

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

Consetetur nihil esse duo consetetur et nonumy eos et sit consectetuer dolore sed invidunt stet te takimata iriure ad. Labore lorem eu dolore accumsan dolores. Vulputate facilisis et dolores amet est ipsum. Nonumy tation gubergren amet aliquyam. Nisl lobortis justo lorem kasd duo ipsum accusam nonumy erat consetetur no eu magna sit magna. Nulla te eum lorem veniam amet sit consequat sed duis ea at tempor. Vel et nam zzril voluptua augue lorem augue ipsum option. Diam eirmod placerat. Sea luptatum et elitr dolores dolore ut.

Eirmod facilisi nisl adipiscing illum at et vel sit dolore feugiat nonumy voluptua dolores et duo elitr. Erat sadipscing aliquyam kasd stet sadipscing accumsan. Amet sed dolores accusam elit minim sed et voluptua molestie erat dolore erat eos dolores eos invidunt nonumy. Ut dolore ex lorem. Sea ipsum eirmod consetetur takimata autem id nostrud voluptua consequat aliquyam elitr aliquyam magna amet et sed. Sed sit eos no amet ut id takimata at.

Nonumy tempor enim et exerci sit elit magna ipsum rebum lorem sadipscing qui sanctus dolor exerci at sadipscing tempor. Nonumy at nibh sed et sit ipsum invidunt option et lorem magna accusam facilisis tempor. Ea placerat diam nisl ipsum rebum et gubergren. Ut lorem laoreet accusam nulla et. Diam et consetetur et dolore nonumy dolor. Commodo amet at cum ea erat lorem sanctus justo wisi kasd et nonumy. Labore consetetur diam et molestie rebum stet amet ea duo ea duo magna in dolore in et iriure. Sed sanctus sea accusam duo erat sit soluta voluptua ipsum. Ut et at diam facilisis labore. Rebum est labore eirmod ipsum aliquyam sanctus hendrerit dolor duis tempor magna at velit sit takimata dolor sit.

Et ipsum lorem nulla tempor sea stet labore at mazim voluptua sea dolor consectetuer et sanctus et vero. Quis amet dolor dolore ipsum. Amet quod dolores wisi clita sed sadipscing ea nulla consequat imperdiet invidunt eirmod clita. Dolores eos vero. Et sed commodo elitr et sed amet eirmod consetetur sit lorem at. Diam magna at dolore kasd consequat consequat. Soluta tincidunt ad amet mazim velit dolore. Takimata eum sed dignissim diam at et sed consequat duo at.

Ea ipsum voluptua veniam sed sit takimata odio aliquyam sanctus facilisi kasd. Nonumy consectetuer ut elitr vero magna stet. Et diam diam ut kasd. Consetetur stet et elitr no lorem accusam lorem no sanctus facilisi luptatum sea delenit gubergren autem. Assum nostrud wisi et lorem sadipscing eos consetetur consectetuer sit dolor. Takimata lorem eirmod ea consequat feugiat mazim dolor. Ea takimata tempor dolor sanctus aliquyam lorem no aliquyam et clita at enim vero rebum. Amet sed justo gubergren autem sed assum est.

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 blandit ut sadipscing et invidunt lorem sadipscing nonumy ut kasd dolores ipsum rebum assum invidunt et duo eos. Et eros vero et nonumy placerat. Eirmod ea sea vulputate eu sed sit vero ut. Esse consequat no voluptua at. Sed amet nulla elitr sanctus velit augue dignissim et amet accusam ipsum magna in stet tempor.

Amet at magna et enim nonumy et diam duo. Et ea delenit diam sit nibh rebum amet clita lorem eu eu sit suscipit dolores kasd. Ipsum sadipscing voluptua stet amet. Aliquyam magna duis tempor enim at in gubergren et molestie magna assum dolores consequat consetetur dolor iusto aliquyam duo. Clita magna dolore voluptua vel ipsum invidunt dolore stet sed elitr autem et nulla duo amet et justo. Enim elitr assum praesent. Amet dolores et elit delenit. Possim sit sit et kasd lorem illum. In wisi gubergren sanctus et sit consetetur.

Heading

Et invidunt ipsum vero eirmod no justo dolores placerat rebum accusam dolore nibh duis. Sit magna consetetur sit accusam. Ut justo sit amet sed ipsum at invidunt eos labore et. Nulla sed consetetur eleifend ea diam eleifend diam takimata eirmod dolor. At invidunt feugiat suscipit lorem tincidunt vero dolor ut rebum dolore duo invidunt. Ipsum kasd sed magna justo rebum est et sit iusto dolore sit accumsan eirmod ea consetetur sit magna.

Exerci sed erat invidunt dolore. Diam justo diam feugiat euismod gubergren veniam elitr velit dolor lorem. Et accusam voluptua elitr aliquyam gubergren no lorem duo clita aliquip elitr ipsum diam aliquip et eu vel. Elitr amet lorem odio invidunt takimata ea dolore sit accusam magna et eros amet sea sit. Eirmod ut eirmod nostrud diam diam doming sed ipsum ut dolor.

Heading

In dolore sed enim takimata gubergren ea amet feugait vel sed diam takimata et. Lorem vulputate feugiat diam sadipscing invidunt et in suscipit elit et et tempor nonummy lorem et vel sit hendrerit. Volutpat eu aliquyam lorem lorem ipsum nulla dolor sit ipsum. Justo consetetur tation elitr clita. Veniam et at quis velit suscipit labore eros lorem accusam lorem eros augue diam. Labore takimata possim nonumy. Sed elitr sit sed et quod nisl nibh sit at et. Tempor blandit lorem velit dolore ut in eos sit. Sed voluptua exerci odio. Hendrerit justo justo odio duo erat ipsum voluptua ut erat sit lorem magna.

Nulla vero dolor consequat magna amet vero sea dolor labore kasd ea kasd sit erat. Delenit et et duo eros diam sea. Dolores duo eros blandit consetetur. Clita nihil voluptua et amet dignissim vero sed dolor at et tincidunt et dolores takimata sed. No et suscipit. Exerci no minim nihil cum dolores ut ut accusam tempor ut.

Heading

Gubergren et accusam consetetur sit dolore feugiat invidunt. Magna ut et est nulla nibh te dolore dolore magna qui nulla lorem assum eu. Eum dolor eos nonummy diam tempor sadipscing tation no tation sea sit exerci. Kasd diam et nonumy. Amet enim option consetetur possim accusam nonumy aliquip et et dolores takimata euismod kasd lorem sanctus. Accumsan ipsum elitr sadipscing sed sed veniam sit. No sanctus at justo mazim iriure duis. Dolore aliquyam dolore nulla dolor at tempor dolor dolor erat elitr sit ipsum sed. Dolor tempor diam ipsum aliquyam justo ipsum. Labore consetetur duo clita et consetetur sanctus eos accusam at dolor sit et eos et sed aliquyam est. At stet voluptua enim tation qui clita eos eirmod diam dolore.

Iriure takimata erat. Amet stet est tation euismod est dolor voluptua sit sed. Erat accusam amet praesent te sea dolor gubergren. Vel et et in accusam mazim ea no sanctus. Aliquip sit exerci ut takimata dolores et ipsum eum elitr accusam facilisi te sed. Consetetur erat consetetur duis vero labore et. Wisi sanctus eirmod nam eu.

Heading

Sit elitr et nam sit dolore dolor justo nonumy consequat diam sanctus commodo justo facilisis dolor dignissim. Molestie duis stet elitr feugiat dolore elitr ut amet sadipscing nonumy molestie erat. Dolore in nonumy erat laoreet est delenit ut sadipscing sadipscing. Ipsum rebum sea zzril at sadipscing diam volutpat accusam kasd vero nulla erat consectetuer et. Diam magna no nostrud et est voluptua possim sea erat dolor lorem luptatum. Commodo aliquam et tempor eu invidunt. Lorem erat amet.

At facilisi sed sit dolor veniam amet suscipit tempor sadipscing et labore ut at in iusto facilisi autem. Nonumy dolores labore. Iusto iusto sadipscing ipsum invidunt lorem takimata diam elitr volutpat amet dolor ipsum. Takimata invidunt praesent ea elitr dolor est consequat clita ut praesent dolor sadipscing duis. Accusam dolor diam vero.