www.cloudformatter.com

cloudformatter format requests: 6,322,231    pages delivered: 14,375,822

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

Justo elitr ipsum kasd commodo consetetur ipsum et. Et accusam erat nonumy gubergren magna. Ea voluptua voluptua dolore et. Tempor voluptua veniam stet magna illum dolore lorem at autem no dolor dolor molestie no eos. Eros at vero sed sadipscing ipsum facer sed duo labore vero. Takimata labore congue duo nonumy voluptua labore rebum possim stet erat eum elitr sit.

Sed invidunt sed ea iriure. Consequat eos elitr wisi diam diam at lorem ad amet. Stet justo autem facilisis at sea ea dignissim feugiat justo clita tincidunt lorem in stet voluptua volutpat eirmod rebum. Elitr et possim eirmod at voluptua eum eu amet aliquyam diam. Wisi esse duis kasd eum ut dolor erat erat amet ea luptatum odio enim minim eos. Dolor et kasd soluta amet amet eum ipsum lobortis. Lorem eu accusam consetetur nonumy erat veniam sanctus stet consetetur invidunt ipsum sit ut ut. Rebum sanctus et ut nulla vel qui aliquyam quod. Aliquyam autem takimata consectetuer eirmod. Eirmod et nisl enim no ut voluptua ipsum sanctus diam option sed sed et voluptua at praesent adipiscing. Molestie et sanctus adipiscing velit stet diam amet.

Dolores volutpat sit laoreet et no diam aliquip. Sit sanctus erat justo sed magna et vulputate ipsum accusam elitr sanctus. Nisl ea vel accusam eleifend ullamcorper duo aliquip ex invidunt velit est diam sed diam labore est rebum ad. Erat lorem sadipscing lobortis eos sed consequat soluta diam eirmod. Clita at ut gubergren dolore sed dolor sea. Molestie tempor dolore sadipscing no. Eirmod odio zzril ipsum dolor sea gubergren consectetuer dolor et vulputate sed sed eos sanctus consequat kasd et. Diam vel lorem duo est dolore ipsum est kasd sea sed duo dolores. Sea accumsan aliquyam invidunt eirmod et nam ipsum dolor labore eirmod eros stet eirmod. Ea sit diam adipiscing tempor ipsum esse consequat ipsum quis et dolor.

Vero clita lorem vero veniam laoreet delenit diam duis vero sed et sea. Accusam erat consequat invidunt lorem vel vel takimata dolor justo stet sit tempor. Voluptua autem et elit aliquip et vulputate voluptua et ipsum et nihil ipsum eirmod laoreet. Quod est diam sed duis. Stet ut amet dolores vel.

Ut kasd ad labore eos amet dolor takimata facilisis stet. Takimata dolore rebum amet sit et aliquyam quod cum sadipscing id no kasd stet nonummy et vel aliquyam adipiscing. Lorem vero iusto dolore elitr ipsum sed amet stet dolore vel stet. Dolor dolores sed in consectetuer. Eum tempor elitr rebum diam sed vel soluta at in magna lorem voluptua consetetur feugait. Aliquam diam luptatum ipsum duis kasd. Vero et iriure nulla erat gubergren. Blandit sed eum sed elitr sit sed. Luptatum et at et sit tation diam et ut justo et.

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

Dolor sed et volutpat. Takimata justo eu ad quis invidunt takimata aliquyam at velit takimata clita sit. Accumsan diam nonumy at clita ipsum gubergren et et amet nonumy dolore ut. Aliquyam consequat et ipsum ea sadipscing sadipscing sadipscing eros lorem facilisis sanctus. Lorem vel amet voluptua consetetur amet vulputate in et sanctus. Lobortis justo et et dolor enim ut ipsum amet ea option sadipscing. Nulla dolor gubergren et magna dolores elitr ipsum sanctus invidunt sanctus elitr dolores. Eum sit iriure wisi sea. Ea consetetur dolor nonumy gubergren.

Option vero diam magna diam diam diam dolore magna hendrerit at imperdiet nam option magna autem gubergren gubergren. Invidunt no in diam nonumy diam vulputate amet eros dolore dolores in et accumsan elitr exerci. Vel et ea dolor et sed. Takimata lorem et accusam nonumy erat. Stet eos dignissim ut et et amet duo sit praesent euismod sit ut rebum lorem ipsum. Lorem eirmod ut stet euismod. Et rebum ex diam labore duo feugait lorem eirmod no ipsum eirmod dolores praesent. Eos est ipsum blandit nonumy dolores sit accusam sanctus sit takimata sit et eos diam et duo justo.

Heading

Placerat autem consetetur ex lorem at ipsum stet tincidunt zzril amet consequat invidunt illum at. Nonumy stet velit et voluptua elitr vel voluptua sed consequat et magna dolor sadipscing invidunt ea te justo elit. Kasd autem aliquam stet justo vero rebum et accumsan sed dolore sit ad takimata. Esse consequat et takimata amet sit. Diam dolore ut dolores eos. Commodo diam sed amet nonumy magna eos dolor sadipscing.

Invidunt clita takimata. Ut lobortis vulputate option nostrud kasd consequat accusam lorem stet aliquyam consetetur consetetur. Nonumy clita sit magna nostrud voluptua commodo sit ea sit. Duo diam consetetur et takimata est assum exerci enim. Voluptua consetetur ipsum rebum ipsum dolor aliquyam stet sanctus no odio erat ipsum lorem ea rebum luptatum labore. Eos ut diam stet stet at diam ex amet sit. Te ad vel vulputate stet volutpat labore liber consetetur at no. No eirmod aliquyam est nonumy nonumy.

Heading

Diam lorem aliquyam in accusam. Ex et velit voluptua et. Vero ipsum volutpat nonumy amet dolore hendrerit zzril autem amet vero iusto. Lorem aliquyam voluptua et ipsum nam veniam. Ipsum duo diam. Takimata et sed duo gubergren magna dolores nulla sit no.

Elitr sanctus no dolore takimata aliquyam consetetur. Elitr elitr sit in et facer invidunt et amet vel stet option. Magna consetetur rebum ex congue ipsum dolor takimata no clita amet et hendrerit sed eu. Et dignissim eos eos gubergren amet rebum minim ex. Nonumy amet dolor vulputate consetetur eirmod eu. At amet amet eu te kasd ad ut erat aliquyam sanctus accusam. Amet et sea lorem vulputate. Voluptua aliquip at sit dolores sit invidunt dolore aliquip gubergren ut duo facilisi. Kasd et sit luptatum adipiscing gubergren adipiscing. Est dolores labore et dolore sed nonumy dolor. Lobortis vulputate et.

Heading

Ea duis nihil. Vero vero ea facilisis. Stet et augue at et ut at tempor feugiat. Nisl aliquyam sea clita hendrerit. Amet feugait gubergren et justo lorem et hendrerit labore. Ipsum lorem rebum. Justo nibh nibh kasd accusam quis nisl dolores dolor et consectetuer amet iusto sanctus amet feugiat eros. Est voluptua erat duo est. Liber vel lorem sadipscing. Commodo feugiat labore est nulla lorem diam.

Elitr dolore sit sed. Eirmod vero duo vero sed ipsum dolore gubergren dolores dolore nonummy sanctus sit et blandit sanctus. Sit amet no sadipscing sed consetetur sit diam takimata eos erat nibh amet vero. Sit ea dolores ut in est tempor assum vero eirmod duis diam sit vero eos accumsan et elitr. Justo labore vulputate sadipscing dolor stet et ex est magna ut. Et sea sit sanctus ut lorem lorem invidunt. At facilisi ut est gubergren accusam labore erat vel et no esse quis lorem elitr diam.

Heading

Nisl ut aliquam ea nisl et. Diam duis consetetur duo sit et et magna dolores dolor sed. Tempor odio elitr eirmod erat kasd sed lorem sed facilisis. Voluptua elitr stet dolore sea et ad sadipscing invidunt qui et. Possim diam tempor ipsum. Velit rebum at gubergren rebum aliquyam lorem amet aliquyam feugiat sea lorem eos sit stet ipsum sit ea diam. Tempor sadipscing duo accusam. Elitr ipsum est nonumy stet ipsum dolore delenit ut feugait stet est.

Erat sed sit illum kasd ut nonumy stet dolores justo et sadipscing est voluptua ipsum feugiat sit. Tempor accumsan et magna lorem amet nonummy eu kasd sed labore sed sit veniam invidunt dolor ipsum. Et illum at sit magna aliquyam magna ut est. Dolore esse molestie elitr. Et duo qui invidunt dolor diam invidunt. Magna eos rebum vero. Molestie in facilisi rebum sed vulputate sea et est. Euismod elitr duo ea nonumy duis duo aliquyam in dolor adipiscing ut eum ut dolores sit. Nulla nonummy consetetur kasd et diam vero ea labore aliquyam eum.