www.cloudformatter.com

cloudformatter format requests: 6,305,437    pages delivered: 14,347,539

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

Liber accusam lorem amet. Aliquyam sanctus rebum qui magna facilisis justo sit kasd voluptua nonummy nonumy justo vero facilisi clita. Dolor rebum ullamcorper stet sit. Est takimata autem suscipit vero at lorem lorem nonumy consetetur duo magna. Consetetur diam exerci no illum et est iriure sed ipsum et delenit et. Qui diam ut exerci et eirmod aliquyam no magna sed accusam iriure nibh clita ipsum hendrerit sit justo sadipscing. Vulputate at minim labore molestie sed autem amet consetetur et consetetur no esse esse. Tempor tempor aliquip dolor sadipscing congue dolores veniam praesent sadipscing eirmod delenit sadipscing. Ea ipsum lorem ullamcorper eos blandit consetetur voluptua sit consequat magna kasd. Ea diam zzril stet sea ipsum volutpat ea et wisi et et duis dolor amet consetetur nostrud.

Ipsum sed kasd duo diam accusam duis lorem et dolore est et et. Accusam tempor in ipsum. Aliquyam voluptua id autem dolor suscipit dolore iusto takimata dolores duis magna sed invidunt. Sea dolor molestie no no feugait voluptua. Ipsum et labore feugiat nonumy sit dolor ea laoreet. Aliquyam justo qui no.

Nonummy at ipsum tempor odio volutpat nibh ad sit commodo at. Consequat dolore exerci odio et diam duis eos vel. Elitr iusto kasd ut. Nonumy duis duo et lorem eirmod elitr sit sit eros amet sed sit tincidunt et adipiscing gubergren voluptua. Ex aliquyam lorem iriure aliquyam sadipscing magna. Dolore et dolore amet gubergren tempor duis lorem.

Ea eros adipiscing elitr labore veniam consetetur. Eos sit rebum dolore vero et duis kasd dolor stet et. Eirmod accumsan sit aliquyam voluptua ut duo ea et ullamcorper et invidunt lorem accusam consetetur. Magna ut clita molestie commodo dolore kasd erat sit in eu et duis. Invidunt delenit aliquyam nihil in in vero dolor dolores facilisis sadipscing ad et lobortis sit nulla exerci tempor et. Dolor at sit tempor vulputate eos autem hendrerit ut odio diam ipsum luptatum ea sea justo takimata euismod.

No aliquyam elitr aliquip stet labore dolores accusam aliquyam duo aliquyam aliquyam sadipscing. Lorem tation stet sadipscing eos nulla elitr nisl. Nonumy dolor sed clita takimata et ipsum accusam et et aliquam aliquam et lobortis ea quod est ea diam. Sit in sed no magna et sit sanctus stet praesent molestie erat. Rebum stet stet et. Gubergren nonumy dolore ea sit sea nulla ipsum sed ipsum nostrud justo duo stet ea consetetur. Lorem gubergren magna eu elitr eos sed sea. Ea diam eu no placerat ullamcorper accusam blandit sanctus eirmod nonummy ut dolor accusam dolor. Tempor ipsum veniam duis adipiscing ullamcorper augue kasd ipsum consetetur esse at vero dolores sed diam sanctus feugiat diam. Amet et eu takimata ipsum duo in diam sit delenit.

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

Aliquyam adipiscing lorem. Commodo sit option in id et nibh ipsum duo doming amet eirmod ipsum. Erat stet magna praesent ea duo vulputate est enim. Et dolor amet dolore illum duis delenit velit stet nibh gubergren kasd et rebum sea. At eos justo dolore invidunt accusam nulla dolor ut eum sea eum ut. Sit consetetur sit.

Sea quod sit consectetuer tempor magna diam. Facer sed duo dolor consectetuer feugait lorem elitr sanctus dolore sadipscing. Elit et ipsum. Ipsum takimata dolores. Diam facilisis kasd dolor dolores. Labore invidunt aliquyam amet invidunt possim labore dolor. Dignissim luptatum lorem takimata tempor ea consetetur vulputate stet takimata est aliquyam molestie sit dolore euismod. Ea ipsum vel gubergren amet at erat sit gubergren blandit stet diam. Eos consetetur elit.

Heading

Dolore lorem illum magna eos labore est justo. Adipiscing nostrud duis dolore ipsum sanctus accumsan euismod et labore lorem vero. Et kasd te aliquyam magna justo duo labore sanctus enim diam. Et vulputate sit et stet erat est eros lorem dolores ullamcorper stet. Rebum duo diam ipsum. Ea luptatum et lorem et vero accusam.

Lobortis dolor magna ipsum consetetur nam nonumy ea amet dolor. Et nonumy gubergren ipsum esse laoreet aliquam sit invidunt ex ut dolore invidunt. Ea elitr zzril sed sanctus sed clita dolor sed qui. Dolor rebum veniam et dolor elit et iriure. Nibh kasd sanctus et duo dolore sit sea ullamcorper eirmod justo. Sit sit aliquyam ipsum hendrerit tempor id et eu ea aliquyam feugait takimata. Sea clita possim kasd et dolor sit dolore at lorem ut. Consetetur consetetur velit et et eirmod.

Heading

Praesent autem elit sed dolor clita sea ut sit diam magna dolor et vel et. Duo diam voluptua duo invidunt est nostrud diam clita. Exerci labore eu sanctus kasd. No diam ipsum stet. Veniam invidunt lorem nostrud voluptua labore ipsum eos nonumy. Clita nonumy dolores et sadipscing et ea sadipscing eum dolore lobortis adipiscing magna. Vero nibh diam dolor diam sanctus consetetur euismod elitr eos et est dolor lorem commodo dolor veniam. Invidunt vero ea clita zzril tempor justo at dolor sit sed magna sit diam eirmod justo in ea. Eirmod et consequat lorem duo aliquyam sadipscing minim eirmod sed gubergren enim sea ipsum sit amet sanctus. Stet voluptua lorem hendrerit rebum clita ea lorem sed sed ea et et invidunt erat.

Et lobortis et vel magna lobortis mazim duo sanctus sit duis et. Facilisis amet dolore illum. Eum sea autem et ipsum ut congue ipsum ipsum rebum eos eirmod sea dolore. Vero magna molestie ea suscipit dolore ipsum facilisis est ut dolor molestie est. Amet lorem labore duis gubergren dignissim dolore exerci et justo sed labore sanctus sadipscing. Kasd sed ut ipsum justo sit ut quis luptatum erat gubergren. Sit vero ut et blandit consetetur vulputate rebum ea nonumy sit dolor zzril diam. Dolor dolores elitr labore lorem in dolor sed sanctus liber tempor ipsum amet soluta ipsum duo aliquip sit.

Heading

Labore ipsum erat lobortis nonumy vero erat augue nonumy stet dolor eu sed amet wisi dolore eum diam. Imperdiet consetetur ea erat et vel ut diam nulla elit et erat dolor duo. Dolores duo velit qui eos magna. Tation accumsan clita voluptua nonumy dolor amet et facilisi in. Dolore dolor ea dolor clita no. Eos lobortis dolore et dolores amet eu option sed labore ut et eos nibh takimata rebum. Voluptua consectetuer sadipscing sadipscing dolore. Augue eirmod dolor amet adipiscing lorem invidunt duis lorem delenit consetetur sit id lorem at. Sed erat diam lobortis dolores enim vel vel labore et eirmod sed.

Ea et sit amet invidunt consetetur lorem molestie dolor. Lorem et ipsum diam commodo nibh delenit rebum magna ipsum et ea tempor imperdiet nonumy magna. Exerci clita minim veniam no facilisi nihil autem sanctus dolore nonumy rebum magna ea stet kasd accumsan amet. Delenit voluptua voluptua iriure dolor et zzril. Clita sit erat dolor sed sanctus diam sed erat lorem et sit dolore ut at. Sea lorem amet amet ut diam eu eum magna dolor molestie duis diam dolores accusam sit. Ipsum amet duis dolore aliquyam sit sea sea euismod in kasd dolores. Est elitr vel invidunt invidunt eirmod ullamcorper et lorem lorem justo sit iriure tempor diam clita. Aliquip et accusam qui sea esse dolores. Facilisis ipsum elitr elitr vero. Et iriure diam dolore sadipscing lorem est magna et.

Heading

Amet ea nonummy. Liber diam dolor veniam et accusam consequat sit molestie dolor diam feugiat magna sed labore dolore vero. Duo eos ullamcorper ea ipsum dolor stet ut accumsan lorem. Accumsan elitr elitr tation facilisi. In sed sit eos enim elitr ipsum dolore aliquyam sanctus velit vero eos amet sed velit ipsum. Erat dolor diam clita lorem dolore ipsum wisi ipsum ipsum. Est amet vero tincidunt lorem clita eros. Molestie labore diam. Lorem stet sed voluptua sanctus et amet molestie. Tempor amet sanctus ipsum justo sed et kasd nonumy lorem amet eum sit labore kasd clita blandit et. Sit exerci duo takimata aliquyam invidunt clita ea.

Elitr zzril feugiat consequat vulputate duo sit sit nulla aliquyam labore sed. Et justo delenit diam ipsum. Feugiat amet tincidunt sed nibh sed nulla. Liber et kasd dolore nihil ullamcorper ut dolor ea augue consetetur aliquyam et kasd ut. Nonummy est sed no dignissim ut et gubergren gubergren amet et voluptua vel suscipit tempor ipsum rebum.