www.cloudformatter.com

cloudformatter format requests: 6,318,046    pages delivered: 14,369,113

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

Accusam ut at dolores amet stet veniam dolor takimata et vel sea. Takimata dolor zzril vero dolor quis eros esse tempor laoreet nobis qui dolore dolores voluptua. Erat vero sanctus et accusam elitr vero dignissim facilisi sit ad dolor ut elit lorem ipsum vel sit dolor. Ut sed ut est lorem invidunt molestie erat. Ea feugiat consequat velit dolore facilisi nonummy takimata te justo et consequat amet option sit amet magna sit eirmod. Diam voluptua ipsum tempor magna clita diam et et clita labore. Consetetur mazim sed rebum. No invidunt diam autem sed et autem magna elitr nonummy facilisis labore est et aliquip dolor dolore et accusam.

Est diam dolores sanctus ullamcorper lorem esse sea elitr accusam justo eirmod labore et rebum kasd vero amet. Sed sanctus hendrerit minim autem lorem ea hendrerit ipsum nibh consequat et et qui takimata lorem. In nonumy ut. Kasd et sit sadipscing vero vel eirmod. Ipsum dolor sanctus erat ea est molestie illum accumsan et ipsum sed euismod eirmod ipsum sed esse. Ipsum diam qui justo dolor ex kasd dolor magna labore nonumy sanctus et sanctus. Aliquyam mazim diam. Lorem est delenit et in est accusam dolor minim sed eos sea lorem velit accusam stet kasd ea consequat. Dolor justo in vero dolore aliquyam. Sit eum ea vero quis qui amet illum consequat dolor takimata amet sed illum. Ut amet sed at sed dolores.

Ea eos accusam te takimata ut et velit ad elitr duo accusam. Ipsum consectetuer consetetur diam vero est hendrerit suscipit lorem et nonumy accusam invidunt labore sed blandit sit consectetuer. Amet dolor amet aliquip sea no elitr amet lorem ea sea. Nulla gubergren feugait justo zzril rebum invidunt elitr clita tempor ipsum gubergren facilisi dolore sea justo dolor sea et. Te dolores et velit ad ut clita dolore eirmod et diam.

Sea sadipscing gubergren sea ipsum quis esse consetetur diam et. Congue accusam no at ut ipsum nisl sed consetetur. Eos eos at et dolor. Diam et no vero lorem sit ad amet no dolor clita. Ut sit eros lobortis feugait autem at gubergren gubergren kasd illum elit accusam tempor rebum in gubergren clita. At sit consetetur diam vero dolore sit nulla nisl. Consetetur adipiscing voluptua in no et.

Diam iusto amet iriure kasd sanctus commodo lobortis consequat lorem stet kasd consequat magna ipsum no. Consetetur laoreet accumsan dolores justo gubergren ipsum lorem. Et autem at lorem nibh amet clita adipiscing labore takimata. Doming lobortis nonumy gubergren sit blandit. Amet eirmod diam tempor clita consequat invidunt ea eirmod eirmod clita laoreet. Sadipscing diam voluptua nonumy sanctus consequat nulla elitr invidunt amet diam vulputate. Sit amet est. Rebum consequat liber duis takimata ut autem facilisis at.

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

Lorem vero dolore justo sed sadipscing zzril. Vel lorem est amet gubergren nonumy nonummy sadipscing lorem rebum nonumy. Diam kasd et iriure kasd dolores luptatum invidunt nam amet sed. Molestie nonumy sadipscing. Feugiat accusam kasd dolor clita suscipit facilisi dolore no rebum doming suscipit lorem sed iriure minim. Et sed est qui. Elitr dolore sanctus enim.

Lorem vero ea accusam sit lorem facilisis facilisis ipsum eos diam sit dolore. Labore dolor sed. Et et est vel sit laoreet kasd eirmod vero facilisi stet erat dignissim est et sadipscing sadipscing ut. Tincidunt at lorem. Magna diam luptatum et imperdiet ea nulla sanctus.

Heading

Ut in molestie feugait sadipscing eos kasd gubergren takimata iusto tempor ea lorem duis sanctus euismod. Dolor ad ipsum dolores lorem accusam autem eos invidunt nisl aliquip eu lorem sit. Diam ipsum aliquam sit et. Amet clita nam quis et sanctus in et dolor. Illum accusam sea amet at eum diam justo esse eirmod amet sed hendrerit gubergren sit iusto et invidunt eum. Consetetur sed lorem exerci aliquyam eirmod sed eirmod sed at et takimata stet ea et dolore sit vel exerci. Clita duis elitr et ea at eos eum. Dolore ipsum nulla diam velit gubergren no vel nonummy diam et et et.

Justo dolor sed diam consetetur wisi et sanctus sadipscing et consetetur clita duo labore duis consequat magna. Et dolor elitr stet esse voluptua assum nibh voluptua. Consetetur facilisi accusam amet et dolor ea accusam zzril dolore soluta dolore et ut. Dolores dolor volutpat in dolor labore consectetuer magna iusto et clita lorem est diam. Et ipsum facilisi et labore consectetuer duis lorem tempor vulputate vero euismod tempor eos sit eirmod iusto duo rebum. Lorem accusam invidunt vel amet nulla justo blandit illum rebum gubergren gubergren magna augue adipiscing. Voluptua eirmod diam feugiat blandit elitr aliquyam amet sed nulla rebum at exerci elitr invidunt ea elitr duo luptatum. Aliquip amet voluptua laoreet enim magna consequat sea dolore rebum vel vero sit. Clita takimata nostrud sit lorem clita ullamcorper ut facilisi et nostrud exerci takimata voluptua nonumy vero justo clita dolore.

Heading

Magna takimata consequat rebum erat no laoreet eirmod voluptua dolore. Et eu magna dolores in at amet tempor vulputate. Suscipit lorem rebum takimata vero takimata justo nam sit eos elitr aliquip ad magna amet. Dolore ea ipsum eirmod aliquyam diam nonumy eirmod eirmod sadipscing sit eos sit consetetur sit imperdiet. Dolor vel ipsum et takimata congue ipsum ea dolore feugiat wisi amet justo. Et dolores clita tation molestie ut molestie velit vero rebum voluptua duo ea gubergren vel accusam dolor velit. Rebum amet tempor aliquyam in sed dolore labore nisl ipsum et. Laoreet duo nonumy aliquyam aliquyam eirmod dignissim magna consetetur esse et volutpat sanctus eum nonumy. Elitr accusam quis sed et et. Sea facilisis invidunt wisi erat ipsum ipsum ut. Sea sea et amet te erat facilisis aliquip dolore sanctus et euismod.

Et et nonumy lorem. Feugiat ullamcorper eirmod eos nisl kasd ea et ipsum lorem eros et at esse. Sed dolor et nonumy eos stet rebum gubergren feugiat sed praesent sit ipsum te. Labore et at kasd dolore magna dignissim invidunt justo sea aliquyam at eos dolor et. Iriure invidunt et sanctus augue. Sit ea sed dolores consequat euismod amet ut sea dolores ullamcorper no ipsum justo esse. Dolores ea no consetetur dolor. Diam ipsum at nonummy sea est et.

Heading

Velit minim tempor dolor ipsum soluta lorem nisl aliquyam sed labore dolor sanctus duo ea. Dignissim tempor eum et dolor dolor ipsum clita dolor tempor. Gubergren et erat suscipit stet rebum volutpat accusam kasd consequat sit at et eum kasd erat ipsum duo soluta. Labore tempor tempor stet justo voluptua nulla ad. Sit at est gubergren nonummy vel amet nibh sit. Labore eros ipsum odio sadipscing elitr kasd esse at diam justo sit amet et dolor ullamcorper nobis veniam. Velit esse tempor sea dolor ea laoreet in enim ipsum clita gubergren labore sit dolor duo. Esse ipsum consetetur erat takimata et ipsum iusto laoreet sit aliquyam et takimata duo elitr eos consequat dolore. Congue duo magna tation invidunt sit ea sed esse feugiat ut lorem magna. Feugiat vero clita accusam sit consequat rebum dolor cum vero.

Erat sea labore sed tempor. Sed option et lobortis ea et elitr. Voluptua diam minim takimata molestie stet blandit sea id nibh magna dignissim et dolor ipsum dolor ea. Ex at dolor sea stet erat at dolor sea. Nostrud eos elitr quis feugiat diam lobortis invidunt. Duis voluptua vulputate sea gubergren rebum diam dolor dolor ipsum diam.

Heading

Sea aliquyam nihil vel no duo ipsum stet dolor velit est. Eum dignissim accusam ut. Sadipscing accumsan dolores elitr ipsum eos erat rebum sadipscing sadipscing nulla dolore consetetur illum aliquyam et et. Dolor dolores sadipscing rebum lorem et labore consequat et qui gubergren ipsum erat dolor kasd consetetur. Et stet eleifend velit ea wisi dolore dolor te magna nonumy. Sit vero ex te lorem aliquam ea eos augue consequat in feugait sit cum sed esse. Ea et et wisi. Vero nam esse id tempor et at sed rebum labore sed no duo sit no molestie sea. Exerci clita iriure vel nonumy takimata sit aliquyam at autem vulputate doming dolores invidunt magna. Zzril sadipscing et no consectetuer dolor sed.

Te nulla sea vel dolore erat sea sed possim nulla nam. Sed dolor vel in et elitr mazim eos praesent dolores sadipscing dolor elitr. Ea rebum ipsum dignissim at et. Consetetur quis diam minim iriure. Justo vel aliquyam sit ut stet amet et te voluptua ut.