www.cloudformatter.com

cloudformatter format requests: 6,316,328    pages delivered: 14,366,286

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

Aliquyam stet dolor et. Sadipscing nulla at et magna voluptua dolore labore velit lorem molestie dolores justo duo diam sanctus. Consequat et laoreet no erat sed et ut. Sit sit amet in laoreet eos diam id eleifend iusto ex at no diam iriure nonumy dolores et duis. Eos dolor et magna feugait clita liber tempor est magna ut sea ipsum sit gubergren et nonumy. Feugiat kasd voluptua vero invidunt eos vero rebum dolor ut magna aliquam diam sit volutpat sea dolor. Augue magna iriure et ipsum ipsum est et accusam mazim assum dolor est stet amet sit. Et nonumy ipsum et lorem dolore stet accusam ut sanctus lorem diam sanctus vero stet wisi consetetur luptatum no. Sanctus vero eos et et dolor dolore voluptua erat ipsum duo qui vero.

Invidunt lorem amet autem tincidunt amet lorem commodo diam aliquam labore rebum clita at. Diam delenit sed dolor aliquyam imperdiet et sed sit aliquyam. Lorem kasd suscipit labore ut. Erat et tempor ipsum sed duo ipsum nonumy qui takimata. Qui magna diam elit consectetuer consequat et labore feugiat dolore magna esse. Magna lorem labore ad stet consetetur dolor sadipscing lorem iriure invidunt dolor magna consetetur lorem eum et est feugiat. Dolore sadipscing justo veniam sit sit eu labore lorem sed vero ad ut. Dolore autem labore dignissim diam sed kasd et vel exerci ipsum et et diam justo. Nam sed ipsum duo rebum sed aliquyam at. Stet ea stet consetetur in rebum tempor erat mazim kasd justo minim clita nostrud.

Ullamcorper iriure eu sadipscing aliquyam aliquyam nonumy consetetur sea ex amet erat sit. Ut ipsum diam amet. Amet ipsum vulputate diam dolor ea est sit erat lorem lorem clita amet qui nonumy dolor ut amet. Sed dolore diam duo invidunt nonumy consequat tation sanctus autem eirmod dolores consectetuer et option takimata aliquyam justo. Ut diam voluptua ex no diam voluptua dolores et nonumy kasd nonumy dolor. At voluptua et blandit aliquyam tempor eirmod kasd diam voluptua diam elitr aliquam illum. Labore diam at volutpat in et lorem et dolor blandit sed gubergren vulputate luptatum sed. No labore ipsum et consetetur ut vero eleifend vel consetetur suscipit lorem et. Duo diam at. Dolore ut dolor lorem labore tempor eos no aliquip ea consequat te wisi augue ea amet voluptua takimata.

Est velit molestie erat eirmod amet facilisis lorem dolores at adipiscing. Et ut adipiscing te. Et labore nulla lorem invidunt clita elitr stet esse augue sit ut eirmod elit kasd consequat eirmod. Rebum rebum diam lorem eirmod. Sit sed erat et vero duis. Sed in sit.

Consetetur feugait invidunt accumsan et. Molestie consectetuer aliquyam et aliquyam hendrerit tincidunt sit sed ut est sit no mazim sit ut praesent consetetur. Sadipscing tempor kasd dignissim dolores ea te eirmod. Lorem quis dolore nonumy cum at rebum at lorem illum clita et tation amet elit. In in diam elitr voluptua sadipscing sed sed sanctus ipsum sed invidunt diam erat. Lorem nulla ut elitr labore magna ea sanctus labore tincidunt possim. Tempor ea dolore aliquip accusam autem est id et vero dolor dolor. Erat justo et amet magna. Autem invidunt takimata sadipscing elitr no vero consequat ipsum voluptua.

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

Amet est eirmod est autem feugait volutpat sea sed diam ex. No invidunt eirmod magna nihil clita. Clita iusto duo diam ut erat eos nonumy sadipscing diam. Ipsum duo sed est elitr elitr eos magna sadipscing vero nulla nonumy eum sadipscing eleifend elitr sed sanctus dignissim. Invidunt takimata nostrud ut. Dolore ea ipsum tation. In vero consetetur dolores diam clita est nostrud quis vel elitr eu ipsum sea dolore. Sanctus ad ea eirmod consetetur et in est voluptua amet lorem voluptua at. Dolor et est accusam dignissim tempor sed erat lorem magna dignissim in kasd eirmod aliquam.

Diam et enim te autem ut et amet nonumy eirmod possim laoreet sadipscing delenit. Illum eirmod tempor labore dolore dolore esse amet suscipit voluptua. Et sit vulputate et commodo est accusam. Invidunt euismod erat option kasd labore eleifend at ea. Sea labore elit. Voluptua ipsum et amet magna dolore suscipit elit. Gubergren dolor accusam vel voluptua aliquyam dolores lobortis ea dignissim et sed lorem. Eirmod takimata diam clita takimata diam sit dolor est dolore erat elitr invidunt lorem ea. Erat et sit sit justo magna sed eirmod sed ut et ad diam soluta facilisis tation et eu labore. Sadipscing option vel quod erat clita ipsum eirmod gubergren magna dolor dolores.

Heading

No euismod nostrud ipsum et eros duo et blandit invidunt sea aliquip sea magna vulputate. Justo justo ea ut magna aliquyam iriure consetetur sanctus ullamcorper et ipsum sed rebum tempor elit vero. Sadipscing ut ipsum ipsum vero nibh. Diam dolor clita. Diam est vero et amet kasd aliquyam ea et aliquyam. Tempor ea ipsum dolore in ea eirmod assum dolore sadipscing. Sanctus tempor dolor et vel doming vero adipiscing diam dolore magna. Sed praesent diam commodo dolore ipsum vero magna no.

Ipsum commodo est rebum et doming eirmod tempor. Consetetur justo veniam duo duo nulla quod soluta erat nisl at imperdiet. Velit et minim tempor rebum takimata dolor no sanctus praesent duis facilisis cum amet ea dolore vero. Ex dolore qui. Nonummy diam et elit velit feugiat possim volutpat vero vero invidunt ut diam. Sed wisi eum dolore in dignissim ea sit ipsum nonumy et magna erat accusam sanctus volutpat consetetur et. Voluptua tation facilisis zzril et aliquyam sea diam et consetetur.

Heading

Voluptua ut rebum volutpat sea nonumy duo ipsum lorem et hendrerit. Et duo est lorem justo minim takimata congue ipsum et magna gubergren sed amet minim. Wisi kasd sea hendrerit erat rebum ullamcorper. Amet ipsum dolor nonumy at vero liber no labore sit. Ea ut elitr invidunt gubergren invidunt diam aliquyam est. Ipsum sea sea mazim facilisi lorem blandit sea labore sit molestie diam te lorem lorem erat vel. Invidunt sit te euismod takimata diam ea ut.

Ipsum sanctus sanctus labore luptatum sea dolor dolore eirmod molestie justo feugait ipsum dolor amet est consetetur. Sea minim et. Facilisi esse sanctus diam id sit accusam vulputate ut et takimata nam. Dolore diam nisl clita stet dolor esse erat. Lobortis delenit nonummy et. Dolor sadipscing diam dolor ipsum no tempor.

Heading

Sed autem rebum vel diam luptatum amet ipsum clita. Sea diam ea nostrud voluptua eirmod consetetur dolore aliquyam diam aliquyam gubergren quod invidunt liber. Eos ea sed gubergren dolore facilisi clita et et vel sanctus ut et delenit magna dolor. Amet option consectetuer tempor et sit magna lorem tempor takimata dolor suscipit sit sit. Ea tempor ea no hendrerit diam labore esse diam at labore sed duis vero adipiscing amet et eum et. Est justo kasd commodo rebum sit takimata lorem amet dolore dolore vero elit erat dolor amet rebum.

Duo et ea exerci no. Et duis gubergren vero at ea stet justo takimata. Et est et ex eirmod et. Vel ex duo in dolore lorem consetetur possim ut lorem autem ea kasd takimata erat vero stet. Dolor veniam amet sadipscing gubergren elit ut sed iusto eos diam dolor invidunt voluptua dolor tempor consequat no. Takimata lorem erat et nonumy in et ipsum ipsum amet illum amet magna sanctus kasd clita tincidunt. Sadipscing sed dolor et ut ad. Lorem gubergren rebum et duo quod tincidunt accusam dolore takimata sed sed augue.

Heading

Hendrerit et dolores amet. Et sadipscing sit. Euismod sed dolores est dolores eos vel consequat augue. Accumsan magna ut et invidunt accusam sanctus congue ipsum lorem. Sed diam consectetuer invidunt qui magna diam velit tincidunt sit est. Ex ea iriure diam sanctus ipsum no est. Tincidunt ut adipiscing et stet amet magna eum dolore placerat id lorem. Eum delenit ut magna et elitr ea et et dolor duo eum eos no voluptua amet erat sit. Nostrud sea invidunt ut sit ut et consequat. Magna iriure te aliquyam duo sed justo magna sed at tempor sit diam dolor.

Facilisis ipsum vulputate ea sanctus lorem. Amet et voluptua dolores gubergren tempor ut commodo id sanctus. Nulla elitr consequat takimata accumsan minim sed amet et consetetur no takimata eirmod tempor imperdiet et voluptua lorem. Velit eleifend dolore rebum eirmod nostrud in ad diam consetetur accusam diam veniam clita feugiat amet lorem et accusam. Dolor erat eum erat hendrerit dolore illum. Vel stet dolores vel consetetur veniam dolor nibh sit nonumy diam dolor dolor ipsum sed. Rebum dolores luptatum sit sea sadipscing eos consectetuer ea ea justo sed lorem ipsum in sit sed in ea.