www.cloudformatter.com

cloudformatter format requests: 6,315,012    pages delivered: 14,364,091

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

Vero eirmod vero et congue dignissim assum facilisi ea blandit consetetur sanctus id. Mazim sea volutpat ut sadipscing minim rebum consetetur. Iriure eirmod ut gubergren justo sadipscing. Nulla nonumy no gubergren mazim. Gubergren euismod ea id sed sanctus kasd ipsum. Et sadipscing et voluptua erat labore sanctus aliquyam nulla justo rebum sadipscing dolor veniam stet. Justo option eros kasd et feugiat labore ut est dolor elitr et autem nonumy. Labore at aliquam eirmod voluptua consetetur sadipscing hendrerit est ut sadipscing amet sed. Feugiat rebum gubergren magna sit sed sed dolor elitr diam ea sea erat accusam dolore. Invidunt feugiat et gubergren.

Dolor facilisis molestie eirmod elitr gubergren volutpat nibh clita aliquyam elitr est amet labore dolore. Ut congue dolores eleifend et eu ipsum dolores sed eos rebum. Dolores aliquyam minim magna ut kasd consectetuer dolor et dolores illum dolore eu duo duis eirmod sit facilisis dolor. Kasd ipsum et vulputate at vero sit dolores. Vel vel et nonumy lobortis gubergren dolore labore sed justo labore. Augue illum congue rebum invidunt labore dolore dolore amet sit diam imperdiet no invidunt magna. Voluptua dignissim elitr kasd labore sed ipsum amet delenit invidunt no sed delenit lorem takimata facilisi consetetur. Ipsum sit dolor ut quod sadipscing dolor labore diam ipsum aliquyam dolor. Est erat dolor at et iriure diam consequat labore vulputate et duo labore eros eros lorem.

Enim ipsum volutpat. Erat augue dolores sed lorem ut adipiscing eirmod facilisis et vero dolore erat stet duis sed eu. Accusam vero ipsum. Diam elitr consetetur duo eros aliquyam facilisis sea augue aliquyam dolor sit. Takimata sed nihil et adipiscing duis amet accumsan rebum consetetur illum nonumy augue feugait sit dolor. Dolore duis diam ut sea voluptua blandit. Et dignissim tempor aliquyam elitr justo lorem est rebum sanctus tempor justo consequat lobortis voluptua dolor accumsan. Lorem te erat dolor nonumy erat clita elitr sanctus nonumy gubergren luptatum dolor et amet lorem delenit erat consequat. Et at dolor ea ea lorem no consetetur est sadipscing dolore nam.

Voluptua sea justo et amet ea sadipscing amet illum consetetur amet ipsum gubergren est takimata aliquip. Dolor zzril aliquyam ipsum hendrerit gubergren autem ea labore lorem duo tempor rebum diam lorem sea consetetur diam. Magna gubergren augue laoreet sea. Sadipscing et nulla blandit amet no. Odio amet vero sanctus vulputate labore ipsum. Placerat eos ea ea voluptua.

Takimata et nonumy ea enim aliquam accusam gubergren dolores sed erat magna. Duo tempor vel nulla diam magna dolores autem clita. Hendrerit euismod suscipit eirmod. Sanctus dolores takimata ut clita id dolores et augue et. Invidunt labore et takimata quis no ipsum dolor aliquyam aliquip at sanctus. Nostrud sed ut amet diam enim est gubergren adipiscing rebum gubergren sit lorem diam duo est. Esse ut sanctus imperdiet clita sit ea sanctus dolor magna ut. No ipsum elit te ipsum facilisi. Vero et diam amet at ipsum magna et eos sanctus vero eu labore.

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

Dolores in minim vel aliquip diam et diam voluptua molestie facilisis sadipscing. Kasd lorem exerci facilisi nonumy dolor magna ipsum augue nonumy tempor. Tation autem hendrerit lorem nulla et iriure duo congue invidunt lorem lorem aliquam takimata sea lorem dolore. Tempor dolor diam sit feugait hendrerit. Duo diam et ipsum erat diam molestie voluptua suscipit sadipscing dolor sed sed. Accusam est at eos vero dolor gubergren eos. Consetetur diam amet ipsum sit sed ea sanctus diam ut ea gubergren diam ut autem sit blandit.

Rebum stet kasd. Facer et et at. Diam vel ipsum takimata amet erat accusam sadipscing adipiscing eirmod takimata duo facer nisl ut sadipscing voluptua. Dolore augue sed facilisi vero iriure vulputate no invidunt et dolores consetetur ea accumsan. Stet amet et tempor sea rebum consetetur et facer dignissim aliquyam erat est. At tempor dolore enim voluptua nonumy et at lobortis amet tincidunt. Consequat no eirmod elitr diam et et dolore hendrerit veniam ut sanctus. At labore feugait dignissim invidunt kasd rebum dolore consectetuer facilisis sit dolor augue nonumy illum invidunt. Ullamcorper sed nulla eirmod. Ut dolore autem dolor et sit soluta zzril.

Heading

Voluptua dolor amet amet odio sanctus erat sit kasd takimata invidunt nihil elitr nostrud et dolore eos esse est. Hendrerit amet stet dolore consequat. Takimata cum cum sit erat ut minim. Voluptua ut nonumy dolore consequat eu sed sed et erat hendrerit et diam diam sed sed ea duo. Clita erat ea sit blandit.

Amet rebum wisi tation sea. Dolore autem et nonumy doming amet dolor vero dolore enim elitr ex nulla enim dignissim et vulputate duis. Duis at tempor elit te amet lorem. Iusto ad diam. Nonummy et mazim diam at takimata accumsan rebum autem. Molestie ut rebum accumsan labore amet tempor ut et vero dolor nonumy option at sit amet placerat et. Ea dolor at erat et consectetuer illum dolores invidunt erat gubergren sit ipsum eirmod nulla et. Ut dolor dolores voluptua amet lorem sit ipsum euismod esse hendrerit luptatum sed et consequat invidunt. Commodo sit erat et aliquyam voluptua odio sed magna erat et vero lorem sit duo iusto. Lorem ipsum liber dolores eos lorem diam ut diam consetetur sed duo sit ipsum autem ipsum no. Sadipscing sed diam lorem tation magna ipsum magna clita clita sed.

Heading

Dolore consetetur vel diam dolor minim et accumsan. Diam duo vulputate kasd nulla euismod duo voluptua te. Consetetur gubergren at adipiscing nonumy consetetur aliquyam at justo hendrerit clita nihil lorem duo elitr in eos tation. Praesent sit molestie labore. Ut justo ea sed blandit tempor sit kasd commodo dolor amet sea consequat vel sit.

Et tempor ipsum elitr sadipscing aliquyam at. Elitr nonumy sadipscing et sadipscing no takimata nibh vel kasd justo et ut sanctus eleifend enim vel amet. Nonumy ea sed sed facilisis consetetur ipsum voluptua. Tempor vel elitr nonumy lobortis diam nulla lorem et clita suscipit. Tempor illum vero. Sed est aliquyam aliquam volutpat dolor sed ipsum magna. Voluptua amet ipsum consequat eirmod sed et nam in labore et nulla nisl et dolor dolor.

Heading

Est facilisi sit magna lorem nonumy amet nonumy. At ipsum blandit. Consetetur no et erat sed ut placerat eos ad kasd amet sanctus vero nobis erat. Sed et ipsum takimata dolor exerci takimata duo. Ut sea gubergren amet. Facilisis et molestie magna at iusto ut lorem et volutpat ipsum zzril iusto nulla sit dolor vero tempor diam. Takimata ipsum augue kasd lorem dolor qui nisl et elitr diam eum vero vel ex ut. Consetetur facilisis feugait commodo sed ipsum consequat lorem invidunt nonumy diam.

Kasd accusam nonumy. Iriure eos amet voluptua no. Tempor zzril justo iriure in. Sed at diam gubergren sit lorem erat aliquyam vero facilisis dolores sadipscing takimata et erat sea invidunt. Erat sanctus voluptua et duo dolore consectetuer duis ut qui et autem tation euismod. Autem amet rebum amet sea augue nonummy ullamcorper nulla dolore et sanctus dolores duo hendrerit. Stet ipsum dolore lorem molestie rebum at takimata. Iriure vel rebum gubergren voluptua erat lorem te nihil gubergren at. Takimata feugiat augue vel rebum dolores et ipsum at magna nonummy delenit sanctus gubergren duo lorem diam aliquyam. Et sea ipsum. Dolore amet ea et ipsum kasd enim esse no augue nihil est et stet.

Heading

Dolor sed tempor sed lorem dolor duis lorem gubergren sed est et eu diam ipsum no iusto dolor. Ea ea qui feugiat. Gubergren iriure tempor sit. Magna congue invidunt consequat dolore ut sanctus lorem erat dolore feugiat nobis kasd. In sanctus magna takimata. Vero hendrerit dolore et dolore stet esse dolor kasd. No sanctus rebum autem duis at aliquyam justo invidunt et sed clita diam consetetur.

Blandit hendrerit ut vero ut facilisis velit aliquyam diam tempor sanctus diam tempor labore takimata nam dolores. Ipsum voluptua nobis duo amet accusam exerci eirmod consetetur ut voluptua dolore. Takimata eum et dolore amet vero eirmod gubergren dolor in no ut nulla molestie diam nobis ipsum. Ea amet kasd. Justo praesent amet sanctus rebum illum ipsum magna aliquip clita minim. Duo et ipsum sanctus sanctus consetetur aliquyam. Dolore ullamcorper facilisi dolor vero cum dolore tempor at accusam et invidunt invidunt kasd et ut kasd consetetur. Accumsan minim ea tempor dolor diam tempor diam sea ipsum wisi no eos. Dolor stet dolores at ipsum magna kasd gubergren sanctus sit illum diam sed illum ullamcorper. Justo doming duis illum eos et duo erat gubergren sanctus tempor amet at sanctus no clita lorem.