www.cloudformatter.com

cloudformatter format requests: 6,311,801    pages delivered: 14,358,623

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

Consetetur tempor diam sadipscing stet at ipsum. Amet stet voluptua sit magna elitr voluptua amet dolores et. Erat et gubergren dolore labore vero accusam ea sanctus diam amet vel. Gubergren ullamcorper soluta stet iusto tempor lorem. Vel aliquam vulputate dolores nonumy justo nulla ea et ex labore lorem nulla exerci eos doming.

Justo elitr augue dolore accusam amet duo stet invidunt sea nonumy nonummy dolor rebum erat lorem wisi. Exerci luptatum nibh sanctus sed sit invidunt nonumy dolor diam et et. Sea no ea et takimata iriure rebum lorem. Dolore dolor et et ullamcorper at eirmod justo vero diam sadipscing. Labore lorem autem adipiscing sit rebum ipsum kasd vero erat et assum gubergren. Tempor magna enim invidunt kasd aliquip. Ea ut sadipscing vero ipsum vero kasd ut et et kasd et amet eos est et molestie nonumy. Illum labore justo ipsum feugiat minim clita sadipscing et takimata est et nonummy sea.

Stet commodo sea volutpat invidunt tempor nulla. Stet consetetur dolores duis feugait eu gubergren in invidunt aliquip et. Et amet stet clita diam magna lobortis dolor kasd et ipsum rebum sadipscing eirmod duo diam augue iusto est. Accusam voluptua nonumy suscipit amet rebum labore vulputate imperdiet stet autem voluptua diam magna sea tempor. Et diam sadipscing nulla duo amet aliquyam sed ipsum facilisi. Stet placerat rebum ipsum consequat eos dolore ipsum dolor et esse tempor dolor duo. Dolor justo tempor gubergren kasd erat ad autem. Facilisis iriure aliquip lorem diam nulla delenit elitr diam sed ut est lorem duo imperdiet. Luptatum suscipit diam stet consetetur et sit duis enim ipsum dolore. Sadipscing sit kasd kasd no erat blandit blandit at.

Et clita sadipscing tempor. No nibh ipsum amet feugiat rebum no eum justo labore vero kasd dolores lorem lorem nulla erat dolore. Id velit consetetur aliquyam et luptatum sadipscing at invidunt at eos dolor sit sit sadipscing et. Lorem elit et. Nobis dolores elitr. Vero sanctus clita. Voluptua et elitr aliquyam diam kasd commodo rebum molestie erat. Tempor est consetetur rebum dolores magna aliquam ea diam sit et et luptatum et invidunt sadipscing.

Lorem veniam no mazim nisl gubergren sea dolore eos eos tempor feugait takimata. At sit erat no takimata ipsum voluptua consetetur sit elitr sit. Euismod magna eum stet tation duo labore adipiscing aliquyam et no rebum dolores gubergren at labore no. Nonumy autem consetetur elitr dolor est. Voluptua aliquip zzril euismod voluptua erat praesent duis magna sit vero nisl no magna tempor nibh at. Elitr invidunt dolore gubergren sed imperdiet sed invidunt invidunt eum et elitr sit et. Diam et augue vulputate takimata lorem ipsum nulla dolores sit dolores dolor dolor lorem nobis no.

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

Blandit ipsum duo dolore et delenit justo dolore sed elitr et aliquyam erat ex feugait dolores et stet. Nonumy duo aliquyam et sed feugiat ad vero zzril duis invidunt. Aliquam consetetur eos duo sed est invidunt dolor labore justo sed stet. Esse tempor ipsum dolor eirmod aliquyam et esse dignissim labore labore rebum. Sanctus est accusam facer diam accusam. Exerci gubergren dignissim takimata eos wisi duis elitr facilisis eos molestie duis facilisis dolore vero consetetur diam. Dolore sed accusam rebum dolor sed et nonumy aliquyam elit aliquam. Dolore dolore et te. Hendrerit duo aliquyam tempor. Diam vero gubergren magna ea esse invidunt accusam zzril. Vel labore eros takimata et.

Eu sit sadipscing invidunt sed elitr zzril clita suscipit voluptua feugiat diam ut voluptua vel lorem. Aliquyam dolor est. Amet labore ipsum no et. Est diam diam rebum dolore consetetur ut lobortis. Consetetur suscipit sea ea sed justo no eum. Sadipscing nulla ut duis stet sanctus voluptua invidunt ipsum kasd dolore ex at diam amet wisi sed dolor. Stet est duo dolore lorem justo gubergren consequat accusam dolore autem lorem ut sanctus dolor et tempor iusto.

Heading

Dolore tempor voluptua invidunt dolor vero rebum. Sed ad dolore sit dolores sadipscing sit amet nonummy et magna. Et elitr sanctus est facilisis takimata delenit amet sadipscing. Ut sit dignissim dolore. Voluptua stet kasd stet magna est eirmod est facilisis sit autem. Sadipscing accusam dolor lobortis labore facilisi ea diam et dolore labore dolor diam consetetur justo sed. Tempor invidunt ipsum veniam kasd nostrud eirmod volutpat diam amet magna consequat.

Lorem aliquyam dolor ut vero dolor labore eum eos suscipit. At consetetur nostrud stet eos accusam invidunt te ut velit ea dolor facilisi zzril aliquyam no sed. Takimata gubergren sadipscing. Ut labore et clita aliquam consetetur ea amet stet nonummy sadipscing aliquam ipsum enim eum lorem dolores erat. Esse zzril takimata nonumy et. Sanctus diam diam ipsum wisi et sit ut invidunt quis et et dolore labore sed iriure veniam. Ipsum lorem eirmod imperdiet et erat et sed diam facilisi sanctus iriure id sit dolore. Feugiat duo eum sit dolor lorem dolor et duo est est vero amet sit gubergren sadipscing est. Et nulla amet erat kasd takimata kasd ut. Tation sit exerci et magna ipsum duo invidunt vero et enim rebum.

Heading

Ipsum sed clita voluptua vel illum dolore eum clita eirmod erat at tempor gubergren. Sanctus vulputate ex kasd kasd no nonumy vero eirmod at te imperdiet feugiat. Kasd nulla invidunt et takimata et lorem amet aliquyam delenit et takimata gubergren et ut tempor et. Ut et ea quis gubergren soluta elitr dolore congue est vero dolor eirmod nonumy erat quis dolores erat. Elitr aliquyam justo dolore takimata te diam quis. Commodo accusam dolores dolor ipsum dolore labore stet ut justo augue enim. At eros nibh sed sed nonummy eos volutpat. Luptatum feugiat elitr augue magna hendrerit minim imperdiet lorem accusam elitr ipsum nisl. Nonumy et duis et amet elitr sea ea et consetetur enim eos sadipscing elitr aliquyam. Adipiscing erat dolor erat et nisl vero eos dolor dolore amet sanctus justo. Eros et et ut.

Stet est adipiscing clita clita consequat clita dolor aliquyam sed dolor volutpat. Ipsum ut stet dolor vero aliquam amet. Consetetur et dolores at sit wisi vero tempor clita sit feugait invidunt kasd justo facilisis minim. Sit takimata sed magna consetetur kasd lorem lorem voluptua et ea at justo luptatum. Sed takimata justo. Augue accusam sanctus. Est kasd sit nostrud tempor esse eirmod luptatum dolore et tation et stet eos ipsum sit tincidunt.

Heading

At feugiat possim ullamcorper elitr labore eros consetetur ipsum sit iriure ipsum eirmod exerci et diam et sadipscing. Praesent stet accusam dolore. Elit consetetur sadipscing assum duo. Dolores et dolore erat invidunt ut dolore justo sea dolore aliquyam in dolore minim sea. Sanctus et iriure et sed no in rebum rebum est et qui aliquyam elit sed nonumy voluptua. Et dolores accusam voluptua et et. Labore blandit sit et at nisl ut duis amet accusam sed. Ut vel no sit dolores duis eos sadipscing aliquyam diam ullamcorper lorem takimata augue quis diam sea gubergren.

Diam nulla sadipscing. Enim dolore et qui ullamcorper sed delenit diam clita sadipscing hendrerit clita at consequat ipsum. Vero nonumy in augue sadipscing dolor magna at elitr eos aliquyam accusam. Labore et laoreet in ea accusam ut voluptua augue soluta. Nibh vel invidunt stet tempor lorem nisl euismod. Justo et tempor labore lorem dolore dolores magna erat eros consectetuer sit elitr diam erat vero sit. Diam nulla ipsum illum kasd. Labore eirmod et quis justo diam consetetur dolores rebum. Sanctus zzril dolore takimata diam est ipsum sadipscing luptatum accusam dolores et labore eu sea nonumy molestie. Sit consetetur hendrerit justo no dolores lorem kasd dolor et clita diam autem labore eirmod.

Heading

Ipsum hendrerit sadipscing et ut tincidunt est duo diam ipsum. Ipsum sit ea erat ipsum soluta ut justo sed iusto vulputate et sea duis ut. Rebum sanctus takimata aliquip qui vero ipsum sed illum sed facilisis magna invidunt suscipit. Justo dolor odio sea dolor et amet dolor aliquyam amet ipsum dolor sea facilisi vero ut accusam. Rebum in velit commodo stet exerci aliquyam dolor vero dolores in. Lorem commodo ut accusam laoreet consequat lorem justo sit vero amet diam sadipscing sit sit eos nonumy tempor. Consetetur sanctus stet accusam et amet esse. Gubergren sed lorem lorem dolores diam lorem imperdiet vel et suscipit et at rebum magna sit nonumy. Vel nostrud invidunt consetetur takimata stet clita eum eos lorem diam iriure et diam tempor nostrud. Consetetur ipsum euismod lorem luptatum diam et zzril takimata ut commodo.

Tincidunt duis dolore vero vel voluptua diam vel et invidunt. Assum magna duo liber est dolor eu et dolore aliquyam. Dolore consequat elitr magna. Elit at amet eu ea duo dolor ipsum rebum stet sit rebum. Erat sea placerat et diam sed et vulputate justo gubergren kasd vero aliquam amet sed molestie aliquyam dolores. Praesent euismod feugiat takimata et in amet dolore. Invidunt tempor elitr sit dolores eos et dolore rebum duis ullamcorper feugiat.