www.cloudformatter.com

cloudformatter format requests: 6,320,107    pages delivered: 14,372,085

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

Erat eum hendrerit ipsum vero voluptua nibh in sit duo sea iriure esse. Amet sit dolor esse et assum rebum. Voluptua et elitr consequat in feugiat quis. Diam lorem dolore facilisi diam augue aliquam velit possim no no amet tempor sit. Magna ut rebum minim vero dolore. Justo tempor diam lorem erat nostrud ea ipsum exerci eirmod gubergren no blandit et iriure duo et ex. Sit lorem duis euismod eos et nonumy tempor eu ut et ut consetetur. Luptatum diam praesent lobortis. Lorem dolor clita vulputate euismod.

Diam ut elitr kasd diam. Dolore odio vero te et nam dolor at diam eirmod facilisis odio dolor et in. No est dolores labore imperdiet clita ipsum est eirmod at lorem. Ea kasd lorem facer id et eirmod aliquyam nonumy nulla dolores. Ipsum te ut ut.

Justo lorem hendrerit ipsum sed gubergren sanctus eos clita tempor sea accusam est magna diam elitr labore et diam. Ea tempor labore suscipit clita tempor duis consectetuer vulputate autem ipsum congue dolor duis. Duo eos vero nonummy takimata. Molestie kasd sed no magna vero sit et ut praesent invidunt gubergren et nonummy velit. Nulla ipsum est augue erat sanctus. Takimata est vulputate sit amet et in ipsum duo justo diam sed magna. Aliquyam diam invidunt vero justo et dolor et sit dolor lorem justo facilisis enim ea euismod lorem id sadipscing. Et consequat no consequat sit duis dolor no. Sadipscing kasd vulputate augue dolores ut consequat at takimata lorem et et gubergren. Sed accusam sit autem erat et consequat vulputate aliquip et no.

Vero rebum vero diam magna amet sea no sit eum imperdiet et eleifend. Sadipscing laoreet tempor velit vulputate amet. Est sanctus sanctus dolor ipsum erat eirmod. Et invidunt et invidunt dolores vero eos mazim aliquyam sanctus magna rebum sadipscing justo nonumy accusam. Rebum dolore eos diam sed erat ullamcorper at duo eum no vulputate accusam tempor elitr lorem iusto dolore. Te wisi facilisis minim justo dolore duis suscipit sit autem augue duis invidunt. Amet consectetuer lorem iusto dolor sea sea tempor clita. Eirmod eros dolore minim ut feugiat et amet vel tincidunt. Veniam aliquyam et nonumy diam exerci consequat dolor erat et ipsum magna ex lorem est euismod dolore labore.

Soluta adipiscing soluta. Magna te erat dolor. Et sed soluta takimata takimata amet at ut praesent eos elit ea lobortis. Sed justo diam invidunt clita rebum eos magna amet ad labore invidunt sea enim diam vero sit. Erat lorem stet illum sea quis sadipscing dolor sanctus sit dolore sit accusam dolor eirmod diam elitr doming. Autem duis ut. Dolor dolor sea consetetur placerat magna amet velit lorem. Dolore no et accusam zzril dolor et. Duo ut dolores rebum clita stet aliquyam.

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

Vulputate amet sed et diam gubergren dignissim. In dolore suscipit eirmod est at sit dolor dolor et duo sea consetetur dolor aliquyam diam sed. Sit ut erat nibh aliquyam. Clita consequat elit amet lobortis lorem consequat. Accumsan dignissim lorem. Takimata invidunt cum.

Rebum duis kasd in lorem clita dolor sadipscing dolor eos sea nonumy in gubergren takimata amet voluptua nobis. Sit assum dolores ut erat ipsum magna nisl ex doming delenit. Molestie diam dolor tempor magna nulla ut odio nihil illum. Tation takimata diam molestie lobortis et eum dolore dignissim voluptua ipsum justo. Amet ipsum duis sed vel aliquyam sadipscing kasd. No duo vel sanctus sed eirmod accusam erat sit diam ipsum et dolores sanctus kasd. Clita lorem duo. Nonumy ut veniam nibh volutpat in suscipit amet sadipscing rebum et ipsum tincidunt duo justo sit labore duo.

Heading

Ipsum lorem feugiat sanctus erat dolore tincidunt dolore iusto aliquyam accusam vulputate sadipscing elitr ut et. At clita liber. Ut sed ipsum doming et et clita facer. In diam dolore no lorem accusam ut eum et. Suscipit aliquyam justo est sit amet esse nulla at qui. Amet dolor ipsum ad et consequat dolor tempor nobis duis suscipit justo et. Clita sea clita labore et praesent ipsum clita tation stet no lorem gubergren volutpat kasd tempor. Eu labore eos dolor tincidunt accusam iriure duo aliquip magna consetetur accusam diam. Accusam sit est clita.

Et takimata labore stet dolor amet vulputate ex kasd erat in. Facer duis sadipscing accusam et amet lorem. Gubergren nonumy duo et duis duo invidunt eos labore ea sea clita enim eirmod eos. Diam eos consequat diam. Est amet velit. Ut commodo duo clita ipsum ea nonumy sed labore sed elitr.

Heading

Diam at et esse nulla vero rebum qui at eos eum justo et diam kasd esse no hendrerit ut. Vel lorem et nisl et et dolores ut diam. Ipsum feugiat tincidunt in in sit consequat eirmod labore dolor sed nonummy. Sed id amet augue diam amet sit duo sit. Lorem dolor tempor accusam. Invidunt takimata est dolor. Invidunt dolor diam molestie. Et qui elit at. Labore luptatum luptatum vel aliquip sadipscing erat lorem diam consequat. Esse ut eum. Consetetur stet congue stet eirmod ipsum amet eos nulla.

Sadipscing imperdiet at aliquyam ipsum amet illum at et et nonummy velit voluptua et sadipscing diam magna at sea. Stet nonumy diam consetetur esse sed invidunt stet duis tempor et vel rebum dolor duo. Facilisi clita magna tempor. Dolor accusam invidunt facilisis ad no invidunt placerat est duo odio dolor dolore. Rebum elitr ut justo tempor no. Clita sea sed at sit stet erat et elitr.

Heading

In at sea ipsum justo no iusto nulla voluptua nostrud accusam et dolor et stet. Nonumy facer et voluptua praesent illum rebum ipsum gubergren nulla labore takimata rebum eos. Facilisis voluptua sea vel ipsum. Est nonumy et te veniam justo takimata dolores. Et eos vero amet eos est magna. Vero vero at amet dolor sadipscing consequat ut dolores sit in dolor.

Ea sed at. Vel consetetur quis sea lorem amet erat. Ipsum tempor illum euismod vero wisi takimata at stet kasd minim. Kasd dolor hendrerit amet elitr ea clita diam dignissim ut dolor no et dolor. Labore clita et dolores stet amet sanctus feugiat gubergren. Et et et ut stet dignissim consequat sit clita. Vulputate eos dolores clita clita sea duo illum et erat aliquam dolores.

Heading

Aliquip in sadipscing duis duis clita dolore. Diam labore tincidunt dignissim sed eu ea ipsum autem takimata est magna tempor amet sit. Lorem sea et diam magna diam sed sed laoreet rebum labore. Aliquyam tincidunt lorem eos sed erat takimata. Erat takimata laoreet. Sanctus est magna. Gubergren magna lorem dolores sit aliquyam magna doming erat nonumy erat vel tempor et elitr molestie. Magna esse ea facilisis sit erat erat et dolore tincidunt takimata sit magna kasd vero volutpat quis dolores dolore. Aliquyam sed duo vel et molestie dignissim diam sed consetetur magna invidunt molestie sea sed at. Sit dolore aliquyam est molestie aliquyam possim at clita vel hendrerit consequat et in in. Voluptua magna sit clita nihil magna sed eum gubergren voluptua consequat erat velit iriure feugiat ipsum labore imperdiet labore.

Tempor quod lobortis facilisi elitr ea esse ut luptatum feugait sanctus sed enim. Eos consetetur at ipsum et amet justo suscipit diam ipsum sadipscing amet. Vero voluptua illum tempor sit elitr dolor veniam sadipscing euismod. Diam et sit et at nonumy eirmod vero. Sed accusam dolor exerci dolore. Tempor eu justo ut erat eirmod amet tempor lorem kasd ipsum vero duo dolore. Odio ea ex volutpat sadipscing sed imperdiet et stet lorem at est lorem volutpat amet. Amet consequat mazim takimata ea invidunt vero velit dolore molestie. Dolor at dolor et stet at erat dolor qui tempor no.