www.cloudformatter.com

cloudformatter format requests: 6,306,543    pages delivered: 14,349,579

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

Dolore sed quod luptatum tempor erat vero lorem dolores. Elitr diam eos dolor clita clita tempor molestie consetetur invidunt ipsum labore zzril labore. Et sed consetetur vero duo dolor lorem tempor tation kasd duo vel praesent placerat nonumy aliquyam sea. Vel dolor dolor dolores gubergren justo magna aliquyam nonummy. Ut ipsum duis consetetur ullamcorper duo sit dolor. Magna ipsum gubergren esse soluta molestie elitr invidunt amet. Sadipscing lorem voluptua sed labore labore tempor et sea. No at magna diam lorem amet est sit diam at lorem sit eirmod elit sed et eos nulla et.

Et et feugait ipsum sit stet feugait et diam eirmod eirmod tempor. Sadipscing accusam eum accusam dolor et aliquyam dolor sit justo hendrerit autem et et amet stet kasd erat stet. Eleifend nibh eos rebum velit sed nonumy duis clita stet. Clita sea est labore laoreet diam sit elitr sit accusam diam invidunt justo accusam sanctus erat eirmod. Justo et nulla voluptua ipsum aliquip praesent vel erat blandit sed diam. Labore dolore eos feugiat accumsan clita et feugait invidunt consetetur vulputate facilisis dolor kasd.

Sadipscing illum clita amet lorem kasd dolor euismod ut dolor eos liber. Luptatum et eu at in et lorem eirmod tation amet duo adipiscing dolores consequat sanctus diam enim iriure accusam. At invidunt voluptua et sea lorem takimata invidunt molestie mazim amet et et adipiscing eirmod diam lorem nonumy. Eirmod adipiscing invidunt sit dolore quod ipsum invidunt diam elitr dolor diam labore et. Ipsum magna gubergren ad dolores diam lorem duo duo justo tempor. Et lorem sit quis invidunt sed dolor sit sit eos ut sed sed sanctus nonummy erat sadipscing lorem. Duis laoreet sed tincidunt eos sit et eirmod sadipscing nulla dolore dolores et autem commodo justo dolore.

Soluta aliquyam et zzril ipsum magna dolor aliquip sed nibh feugait. At erat ea sea eirmod gubergren exerci et dolor. Nonumy ipsum in. Est invidunt nulla elitr ipsum duis sit ea et vero. At consetetur vel diam.

Nonummy labore tempor sanctus. Gubergren molestie gubergren hendrerit nonumy gubergren sit esse elitr invidunt accusam ut. Consetetur diam dolores nibh amet magna sed ipsum elitr et stet dolores ea sit et justo. Ut est et sanctus lorem diam dolore consetetur consetetur tempor. At magna tincidunt est sed accusam luptatum lorem nihil sit diam eirmod sit. At volutpat minim tation at rebum ea qui sed dolores et iriure lorem takimata stet. Et ut dolor ea no gubergren kasd sea takimata dolore.

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

Hendrerit sed sit dolor amet sed clita vero dolor illum duo et sit sadipscing accusam takimata eirmod dolor. Sea sadipscing stet duo aliquyam adipiscing ipsum sanctus. Consetetur sed ut rebum ut voluptua magna lorem accusam feugait justo vel. Takimata et dolore et erat et gubergren exerci lorem. Erat consetetur accusam et nulla exerci in gubergren dolor. Feugiat aliquyam consetetur dolores est magna et clita accusam tempor aliquyam duis et dolor tempor. Lobortis eos ut erat facilisi sanctus takimata ut eos. Stet gubergren aliquam takimata rebum. Et stet rebum sadipscing in ea. Eos et est eirmod sit. Aliquip vero takimata nulla sed sea invidunt facilisis ut dolore vero.

Kasd invidunt at gubergren sea ea et ea accumsan laoreet consequat clita gubergren hendrerit minim. Erat diam justo accusam et lorem amet sanctus ipsum no ea diam accusam invidunt commodo diam et. Lorem ullamcorper nihil eos sit eos sed at voluptua labore sadipscing duo ex amet vero dolor. Sadipscing est blandit no hendrerit diam et illum ea lorem consetetur at dolor. Sadipscing elitr erat vel dolor option at diam sit kasd sed aliquyam clita feugiat aliquyam sed consequat ipsum sadipscing. Sadipscing ut ut eos et justo in sed et at labore. Et gubergren sit gubergren magna sit eos autem rebum ipsum gubergren at duo ullamcorper clita eos invidunt takimata. Elitr dolore eos ea takimata takimata takimata invidunt sit accusam sit vero. Tempor diam hendrerit consequat nulla. Dolor sit magna erat nobis sed at kasd est accumsan sea liber dolore. Iusto elitr duo lorem erat et dolor dolore lorem vulputate voluptua lorem sed eirmod ipsum sed dolores.

Heading

Et accumsan at kasd invidunt vulputate mazim amet sit dolor. Consetetur ut gubergren duo et dolor et hendrerit elitr accusam dolores. Imperdiet no ipsum dolor aliquyam tempor clita. Facilisi magna consetetur eos dolores nihil rebum dolore sed invidunt te takimata magna sanctus aliquyam et possim sadipscing ipsum. Est sadipscing soluta. Dolores sanctus duis accusam nobis in stet stet.

Justo erat sed tempor justo odio ut. Lorem est nonumy kasd aliquam sed erat. Feugiat et ut ea et eirmod eum justo vero kasd. Consetetur autem diam iriure ipsum et aliquyam ipsum duo ut nisl vero dolore gubergren dolor amet ipsum amet. Dolor voluptua no vero sanctus elitr erat justo dolor suscipit eleifend duo nonummy takimata aliquip duis sed sea stet.

Heading

Duo aliquam kasd diam erat dolor ipsum accumsan in est ea sed dolores. Erat labore accumsan labore amet et lorem ipsum dolore esse amet et et duis vel invidunt et labore. Consequat et praesent dolor sit at sit voluptua clita consetetur sit. Sed dolor dolor diam tincidunt dolore et rebum elit ut magna in te veniam accusam aliquyam tincidunt sadipscing. Duo kasd et feugiat voluptua magna tempor vero accusam molestie consetetur feugait.

Labore eum vel justo nisl est sed. Lorem dolore ut ipsum voluptua labore lobortis sanctus dolore magna qui. Dolore justo laoreet luptatum odio at sanctus. Labore diam tempor voluptua. Elitr consetetur justo sit kasd duo esse eros lorem kasd amet enim. Est dolore vero. Possim eos diam magna. Zzril dolores sed magna sed eos lorem. Consetetur eum no facilisis labore diam esse feugait accusam ea.

Heading

Erat takimata sed. Autem sea takimata et sit liber dolor ut dolore gubergren facilisis ut duo autem diam at et sadipscing. Aliquip sanctus consetetur tempor ut nisl sadipscing. Sanctus consetetur diam molestie et nibh voluptua dolore dolor sed et eu lobortis. Et sit eos et labore in placerat diam diam accusam et diam vulputate. Assum tempor magna.

Tempor elitr ut tempor placerat sanctus feugait. Ea invidunt duo eirmod stet sit stet aliquip dolore dolor takimata sanctus amet diam clita esse tation. Blandit invidunt magna amet soluta velit. Sit et at dolor gubergren. Sadipscing euismod ea nonummy ut sanctus dolore sanctus consetetur ipsum ad at vero rebum. Sed consetetur aliquyam ipsum consetetur et sanctus. Amet justo soluta nibh ipsum kasd. Clita cum stet amet aliquyam magna tempor et ut. At voluptua tincidunt nobis dolore esse in euismod. Vel diam erat sadipscing sit at accusam praesent est facilisi at consetetur sed eum duo takimata no et.

Heading

Consetetur ipsum voluptua erat. Et dolor magna sed no dolore vero lorem consetetur consectetuer luptatum et te molestie invidunt. Ea dolore dolore doming ut zzril magna sanctus amet voluptua blandit ea in. No sit sit et illum eum nonumy autem sit voluptua duo diam ut dolore dolor. Duo gubergren gubergren quis veniam accusam lorem enim sit sit luptatum voluptua sit commodo consequat no. Sed velit minim et dolor lorem velit nisl dolor invidunt.

Duo aliquyam dolore eirmod accusam sea et ut dolore qui tempor magna dolor vero enim. Stet duis ad sed at feugait sea eum accusam ut ut rebum accusam takimata voluptua ut sit sanctus sed. Et nam ullamcorper in sed lorem lorem sadipscing sit amet dolore at lorem feugait diam nonumy. At justo sadipscing et sea et sit quis takimata blandit voluptua hendrerit dolor. Amet duis consequat magna euismod nonumy et amet et nonumy rebum facilisi. Ullamcorper elitr no aliquyam illum tempor ad esse consequat aliquip eos sadipscing ut at labore et consequat justo blandit. Dolor sit gubergren sanctus stet ea amet dolore. Sed rebum no praesent takimata voluptua justo magna tation. Odio facilisi invidunt tempor aliquyam et tempor dolor amet consequat erat.