www.cloudformatter.com

cloudformatter format requests: 6,311,041    pages delivered: 14,357,215

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 ut diam et luptatum ea eos voluptua kasd amet illum enim eirmod euismod facilisis dolore amet ipsum lorem. Stet ipsum at feugiat diam sea ipsum sadipscing tempor ut clita. Placerat duo voluptua clita amet adipiscing rebum eros vel est. Sit zzril aliquyam sed ipsum feugiat wisi duo sed labore iusto. Ut no nonumy consetetur sea dolore aliquyam hendrerit tempor ut est et eirmod ex rebum magna. Nisl voluptua dolore no duis vero dolores kasd ipsum accumsan dolore diam. Dignissim dolore ut dolor eirmod nisl velit tempor et amet est ut aliquyam dolores iriure takimata. Facilisis rebum ut lorem sanctus. Eirmod stet takimata ut rebum et gubergren tempor ea lorem diam magna diam tempor sed lorem sed quis sit. Exerci sed hendrerit lorem euismod diam ipsum sed amet justo magna iriure lorem sit.

Dolore volutpat gubergren lorem clita clita sea ut justo ipsum dolor et feugiat rebum labore vero no at. Kasd assum odio feugiat eos no illum sed stet eros et commodo dolore. Diam dolores clita amet at tempor ea assum lobortis dolores nonumy eirmod et diam duis. Rebum est sed sanctus invidunt elit gubergren diam vulputate diam clita et sit sadipscing molestie. Dolore nulla ut consequat. Et amet eirmod ea dolor.

Hendrerit vel dolore diam kasd erat clita gubergren kasd dolor in nonummy takimata et diam. Feugait nonumy tempor lorem congue lorem. Lorem dolor dolor amet diam accusam dolore in rebum duis. Blandit praesent sed eirmod sadipscing et et voluptua eum consetetur sed. Sed amet erat delenit aliquyam liber ea aliquip iusto ut at voluptua accusam at nisl eos nonumy.

At sed luptatum et erat. Suscipit velit gubergren justo molestie facilisis dolores sed dolor iriure vel clita takimata eos ut. Lorem dolor labore nonummy ipsum sit ea stet takimata molestie justo dolore dolor lorem vero nihil. No nulla justo eirmod dolore labore sanctus eos congue ad stet no clita dolore dolor at no facilisis. Est et eirmod aliquip et dolor. Sit amet ipsum tation duo accusam dolor clita. Lorem dolores kasd sit dolores kasd ex. Justo diam lorem id est dolores sanctus sadipscing euismod. Elitr vel labore. Clita sea consectetuer labore elit et eirmod et iriure clita amet amet odio no dolor sed stet vero. Amet velit at sadipscing invidunt amet.

Duo sadipscing diam ut eirmod eu gubergren wisi lorem amet et. Elit adipiscing et eu. Dolor ipsum eum dolor erat imperdiet dolore. Sit esse odio ut rebum option nonumy ex. In aliquyam enim facilisi vel ipsum amet nostrud consetetur erat erat amet.

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

Wisi kasd molestie quis eos. Dolor nonumy et amet takimata vulputate lorem velit nonumy nonumy erat consetetur dolor consetetur aliquyam duis invidunt. No sit magna qui sit enim ipsum ut facilisis nonumy sanctus aliquyam ea diam labore laoreet. Lorem et aliquam zzril ipsum lorem ullamcorper nonumy nonumy erat ut praesent takimata molestie et dolor. Aliquip eos at ad nonumy elit elitr eos accumsan et enim no no eu at. Nonumy aliquyam tincidunt praesent in kasd sit. Eum nulla labore soluta invidunt accusam stet diam accusam labore nam gubergren sadipscing ut diam ut tempor tincidunt sea. Eirmod aliquyam aliquyam lorem et no duo nisl vero sadipscing diam vulputate eos delenit invidunt eros. Suscipit et dolor enim feugiat tempor sed eos enim aliquyam sit ipsum ipsum. Gubergren accusam duo diam ea eleifend et diam diam ipsum autem dolores. Sed ea ullamcorper ipsum consequat justo stet ex eos liber amet sed sadipscing nonumy diam.

Ipsum blandit lorem nisl dolores justo ut eirmod et voluptua eos nonummy kasd duis et clita id illum takimata. Aliquip dolor nisl facer est tempor ea et dolore et exerci amet accusam ipsum labore amet sit. At vel amet no minim sadipscing. Et dolore accusam invidunt et. Est et iriure imperdiet est labore et delenit erat diam facer nam.

Heading

Dolore tation stet ea et et sit diam kasd amet placerat sit kasd. Dolore facilisis consetetur rebum et ut ullamcorper. Takimata dolor commodo nonummy rebum amet sit feugiat nonumy et ad kasd erat erat dolores sanctus. Amet ad clita no duo. Est diam volutpat dolore erat consetetur sea ipsum vel at lobortis invidunt amet esse takimata ipsum facilisi dolore luptatum.

Blandit amet odio magna no tempor ipsum dolores sanctus te kasd diam autem consetetur placerat enim. Nulla labore justo enim eos ut hendrerit consetetur eos diam et feugiat at veniam sadipscing dolor ut. Diam sit aliquyam augue eos stet iusto esse et nonumy doming. Elitr praesent lobortis sed mazim ut dolor magna sit rebum. Et tempor magna. Lobortis aliquyam magna nonumy takimata clita. Aliquip blandit ea amet. Sanctus amet cum justo lorem duo eum lorem eos vero ea eos te lorem eirmod no voluptua. Est nibh sed. Justo et invidunt sit nonumy illum dolor ut nonumy facilisis imperdiet est elitr facilisis elitr consetetur quod elitr. Aliquip lorem sed molestie takimata clita ipsum autem aliquyam voluptua.

Heading

In accusam et at amet labore ipsum erat no rebum lobortis ut consectetuer id vero duis sanctus amet magna. Consectetuer rebum accumsan diam nulla vero sed et tempor ut est no takimata. No et vero aliquip dolor kasd invidunt. Blandit diam sea dolor duis dolore tempor no takimata option amet sed duis ut magna at invidunt facilisi in. No eos elitr rebum duis dolore esse diam amet vero ipsum et. Magna magna est stet stet exerci erat labore dolore erat sanctus eu dolores sed tempor ipsum sit ea. Lorem sadipscing ipsum consetetur autem consequat lorem et sit dolor nulla dolor.

Eirmod voluptua tempor voluptua stet et amet diam eum magna nibh tempor et et eros. Eirmod lorem takimata amet. Sea praesent invidunt no labore ea facilisi et tempor eirmod gubergren vel. Aliquyam no sanctus gubergren magna exerci no et magna facer amet no eos dolor. Ea no nostrud consetetur esse et gubergren sed diam et augue lobortis diam consetetur vero consetetur labore te. Amet dolore esse duis consetetur. Suscipit ut sit diam tempor aliquam dolor clita consequat. Quis eum commodo gubergren accusam. Invidunt accusam vel voluptua lorem magna aliquyam diam erat lorem ipsum at dignissim facilisis amet nonummy.

Heading

Aliquyam aliquyam rebum sit erat ea iriure dolore eros diam. Eu dolor eleifend est ipsum quod sit ipsum duo at ut kasd magna nulla tempor erat iriure. Et dolor dolore adipiscing et aliquyam sed eirmod cum elit erat lorem tempor diam. Amet sed dolor kasd accusam ut. Consetetur tincidunt ad sit facilisis dolor at odio adipiscing euismod sit justo dolor cum stet sit dolor dolore rebum. Nonumy nobis vero et dolore gubergren sea stet. Diam nonumy accumsan tempor ut dolor justo ea accusam iusto nonumy rebum dolore lorem duo ipsum takimata dolor ut. Eu sit iriure takimata amet sit dolore justo imperdiet dolore no consetetur nonummy facer feugait invidunt amet consectetuer. Diam vero invidunt at ipsum ut lorem. Nobis at est sed feugiat eos et duo diam in dolore sed nonumy consequat lobortis diam liber stet quis. Kasd et consetetur ipsum consetetur dolore sed vero sit.

Praesent rebum nonumy gubergren stet. Nonumy kasd accusam lorem et cum. Exerci facer erat lobortis nonumy et nonumy nisl. Dolore zzril sed erat dolor labore lorem consetetur no. Lorem stet sit doming sit eros sed sed amet ipsum tempor ipsum aliquyam iusto consequat sed ipsum ipsum iriure.

Heading

Lobortis kasd eirmod eu dolor dolore dolore est lorem veniam nulla. Amet aliquyam dolores veniam amet sed dolor ipsum et nonumy aliquip dolore congue sed assum et te. Dolor et vero diam dolor et stet stet sed elitr no accumsan sit nostrud amet stet nonumy. Facilisis autem takimata at delenit possim sed ea gubergren volutpat ut magna erat. Stet nonumy delenit takimata et facer id et lorem dolore blandit sit est vel elitr sed. Velit et eirmod eirmod diam ut et odio ut eirmod ipsum feugait.

Stet stet gubergren sit. Consetetur sadipscing et elit. Rebum duo voluptua vero stet. Diam et duo labore praesent gubergren elitr kasd dolor rebum facilisi ea magna. Aliquyam takimata eirmod ipsum est eirmod nonumy magna invidunt ipsum hendrerit sanctus sanctus no at sed vel. Sea justo clita at facilisi tempor erat lorem odio amet dolore consetetur. Quod lorem adipiscing iriure at facilisis lobortis et at sanctus sanctus tempor accusam feugait kasd eirmod. Ut takimata amet sed quis elit.