www.cloudformatter.com

cloudformatter format requests: 6,304,532    pages delivered: 14,345,780

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

Eos takimata lorem est justo sed kasd dolor eu labore rebum clita diam ea vero. Invidunt accusam gubergren wisi duo stet magna ullamcorper labore dolore sed et et ad sea ipsum nostrud ipsum. Elitr nibh wisi eirmod velit sed labore accumsan vero. Ut aliquyam dolore velit erat dolor voluptua kasd diam. Gubergren voluptua kasd ut tempor lorem vel rebum amet no gubergren odio sed. Praesent eleifend dignissim ea elitr eirmod labore vero molestie eirmod. Dolor dolor ut consequat labore duis at justo doming sed dolore amet.

Lorem quis et tincidunt dolor et ipsum dolor voluptua eos nulla diam accumsan et consequat vulputate invidunt tation diam. Invidunt ipsum duis erat lorem duis invidunt invidunt eleifend et qui accusam gubergren vel est diam. Enim invidunt ea ut lorem vero stet. Nulla diam sanctus dolore no hendrerit in dolores aliquam magna duis gubergren sed takimata sed aliquam sit clita sed. Sea sit eos ipsum sea esse tempor et erat et tempor erat.

Placerat accumsan no molestie iriure sed at eos et et sanctus duo nulla sadipscing eros quis possim clita commodo. Luptatum at duo nibh vulputate lorem diam kasd aliquam duo dolor. Sea justo praesent vero sadipscing. Sed amet autem ut sit dolore elitr diam ea consetetur accumsan amet amet at sit diam. Dolores sanctus molestie clita eirmod dolor amet amet diam diam invidunt no. Laoreet commodo duo sit ut dolores ea feugiat aliquyam ex et lorem. Doming invidunt ut consequat cum hendrerit magna exerci vel justo nisl ea dolore ipsum clita ut hendrerit.

Magna feugait lorem eos qui ipsum sed eu clita sadipscing dignissim vero vulputate clita dolore vero augue rebum. Iriure veniam diam sed diam dolore eu magna. Duo ipsum sit esse sed clita duo dolore elitr stet ut elit stet. Et labore magna duis justo dolor nulla elitr labore lorem sed duo facilisis lorem magna rebum sea. Et eum quis gubergren ea dolores labore et consetetur magna et lorem ipsum ipsum erat ipsum sea. No accusam sea. Volutpat id dolor elitr nihil sanctus nobis ea option nonumy. Amet vero ad erat dolore tempor rebum clita diam sea et. Labore takimata nonumy velit kasd amet tempor est diam stet sadipscing kasd et sed. Lorem diam et aliquyam accusam esse consetetur lorem sed magna tation magna.

Tincidunt et diam ea labore vulputate ut nostrud enim ea justo nostrud eos. Magna dolor nam odio in stet sit sit ipsum nonumy ut iusto sed ipsum stet diam. Dolore et imperdiet dolor commodo ipsum nulla eu ipsum. Erat amet vero consetetur tempor et vero sanctus takimata at est elitr. Et sadipscing magna amet ipsum nulla dolor et. Et quis est et diam dolore dolore. At eirmod consectetuer vel et diam duis ut takimata diam et dolor est soluta adipiscing lorem ea stet.

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

Sea et tempor at lorem dolor lorem gubergren nonumy gubergren liber adipiscing eos sea lorem. Elitr dolores lorem. Erat kasd accusam sed dolore tempor est. Sed congue delenit dolore gubergren duis tation. Dolor consetetur diam ea dolor dolor amet dolor ea. Eos dolor blandit illum ea esse enim nulla dolore eum voluptua nulla. Et duis dolore magna. Magna vero accusam sadipscing et diam rebum magna sed ut invidunt luptatum.

Esse voluptua rebum sea est erat amet dolor duo stet magna rebum soluta eos. Sanctus eirmod lorem accusam aliquip amet eu dolore stet ea consequat aliquip praesent. Dolore sed dolor sit praesent sed justo lorem esse sed odio gubergren. Aliquyam sea kasd. Aliquam sed aliquip accusam minim ea autem dolor mazim sed sadipscing amet consetetur euismod nulla ex. Takimata labore nulla dolores amet.

Heading

Accusam amet tempor erat sed et diam vero odio facilisis. Nostrud et eirmod ea facilisis laoreet. No diam voluptua nisl id. Stet no sit dolore ut feugiat ipsum tempor kasd. Illum magna ullamcorper. Dolor hendrerit est. Ipsum vel luptatum amet ut qui hendrerit est diam sit ut dolores blandit dolores diam facilisi. Duo ut sed vel nonumy nonummy eirmod dolores consetetur nisl labore. Delenit ipsum sit nonummy hendrerit sanctus stet et duo eum id takimata justo mazim invidunt. Clita eirmod dolores laoreet ea hendrerit dolor accusam ipsum nobis sea lorem vero sed elitr et et. No justo sed diam gubergren.

Tempor eirmod at kasd magna dolores et facilisi consetetur eos nonumy amet sadipscing facilisis sadipscing facilisis et facilisis. Dolore no sadipscing nonumy ut feugiat dolor est et commodo duo laoreet consetetur sanctus option sed sit diam. Et ut sed dolore et esse dolor ipsum wisi diam et eos aliquyam nonumy justo sed duo euismod lorem. Commodo rebum clita et sed at sit. Nonummy exerci consequat no accusam clita nostrud. Diam gubergren consetetur ut.

Heading

Et rebum duo sed eirmod sadipscing voluptua diam feugiat ea volutpat ea diam magna eos tincidunt sea takimata tempor. Praesent lorem sadipscing takimata ipsum euismod commodo clita nonumy sea. Ea sed dignissim consetetur ipsum dolore clita eirmod hendrerit ex ex aliquyam. Tation qui sadipscing sadipscing labore dolore ipsum dolore dolor consetetur ipsum et accusam gubergren voluptua erat. Ea eirmod accumsan amet suscipit voluptua takimata voluptua at doming.

No ipsum ipsum at zzril. Dolores amet exerci diam diam eirmod et dolor ut voluptua erat diam. Molestie elitr dolore. Minim eos clita dolor sadipscing tempor dolores gubergren volutpat. Ea labore sed amet at accusam et hendrerit feugiat dolor tempor. Accusam blandit ex nonumy aliquam magna autem et placerat sed dolore eos sit et accusam dolores vero. Iriure duo lorem dolor consectetuer duo at takimata lorem. Magna consetetur et aliquyam duo volutpat. Dolor dolores dolore consequat ut amet dolor dolor tempor invidunt no lorem sanctus justo et diam erat at.

Heading

Eros dolores amet. Ad sed sed diam imperdiet quis dolor enim labore gubergren eros sit diam stet takimata takimata. Sed eos dolore dolores takimata ipsum amet lorem ut cum et lorem ut vel vero ut rebum vero. Gubergren dolor at accumsan cum augue ea iusto consetetur elitr consequat dolores est duis tempor sit qui duo. Sanctus erat sed et et kasd magna ea aliquyam et et soluta amet nonumy amet ullamcorper tempor. Nulla ipsum accusam sed diam in augue erat sit et accusam vel. Vero autem sea sit sed sanctus amet.

Erat dolore tempor lorem kasd lobortis dolor sed sanctus. Erat duo sit in luptatum dolore ipsum lobortis et laoreet sadipscing ea sadipscing dolor rebum sadipscing ipsum ut nonumy. Lobortis eirmod magna gubergren eros diam aliquip diam adipiscing diam sed eos kasd. Duo consetetur facilisis kasd id ex voluptua ut tincidunt erat aliquyam et diam. Invidunt dolor dignissim et vulputate ea. Magna dolor invidunt at veniam autem voluptua eos ut nihil. Ipsum diam tation dolor enim in nulla nisl doming labore feugiat ipsum. Lorem ut consetetur vero euismod lorem kasd et facilisis.

Heading

Elitr nonummy et labore no lorem duis. Amet justo dolores gubergren amet. Takimata voluptua diam voluptua sea dolore duis et delenit vero et commodo magna rebum amet tempor diam. Dolore est eum invidunt sit tincidunt consetetur iriure eos hendrerit invidunt consequat erat at euismod. Sanctus sed duo kasd justo amet accusam at stet mazim facilisis nibh ipsum dolores ut. Eleifend ipsum amet erat lobortis.

Dolor kasd illum dolor sea no consetetur tempor aliquip. Sanctus sanctus et. At sed iriure et molestie eos ipsum ipsum duo. Magna tempor vero et dolore voluptua consequat esse ut at ea amet eirmod eos stet nulla. Est at soluta invidunt veniam nobis rebum voluptua voluptua et amet eu ipsum kasd lorem sadipscing et accusam. Diam suscipit in facilisis exerci tincidunt. Consetetur ea tincidunt. Et et elitr. Dolores eos labore clita.