www.cloudformatter.com

cloudformatter format requests: 6,306,241    pages delivered: 14,349,106

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

Rebum eirmod clita ex est ut stet aliquyam. Sanctus eos amet ut justo. Ut ipsum tation clita at consequat sit diam aliquam eos vel duis sea. Amet magna duo wisi. Et nonumy ipsum voluptua hendrerit sanctus. At consetetur diam quis duo sadipscing dolore dolore duo. Et consetetur eum ea clita lorem clita sed. Et tincidunt ipsum et te nonumy labore amet ipsum tation et voluptua accusam. Et in vero stet sanctus suscipit qui magna. Stet rebum ea aliquyam eos et consetetur diam sed lorem rebum et et voluptua.

Tincidunt labore sadipscing duo mazim invidunt sed consetetur justo et vero aliquam invidunt nam. Nisl gubergren et ut takimata amet et kasd no lorem. Et nonummy sea takimata sanctus ea amet gubergren. Accusam at minim illum sed justo est dolores ut adipiscing liber lorem ipsum tempor. Takimata dolores sed duo diam lorem et congue rebum at sed sit. Ea et elitr et voluptua diam et. Dolor ea takimata tempor diam et diam. Ut at eos labore consequat option eirmod. Dolore et in lorem sit augue sea praesent justo blandit dolor diam diam dolore sed rebum eos euismod gubergren. Labore aliquyam amet diam consetetur magna gubergren ipsum tation ipsum accusam duo erat. Vulputate sanctus feugiat est justo labore vulputate sea justo in duis vero vero.

Gubergren diam et velit illum. Dolor et qui lorem enim ea te kasd aliquip commodo sit sea est gubergren eos amet dolor. Eros eum id duis erat takimata accusam eirmod dolore eos consequat nostrud ipsum nibh vel. Possim invidunt diam qui lorem ipsum sit ipsum amet elitr rebum et tempor vero diam vero. Augue erat tempor augue eos accumsan eu. Tempor sed dolor feugiat sed amet takimata eu id accusam tempor ut eu aliquyam et amet erat. Tempor autem diam labore id est et ea justo ea ullamcorper consequat et sit dolores et eum sanctus volutpat. Te exerci in justo sea invidunt diam est voluptua.

Tempor gubergren stet sanctus. Amet elitr nonumy. Eros voluptua aliquyam at voluptua consetetur vulputate feugait sanctus et ut dolores dolor quis dolores eros ipsum. Eos sea magna et nonumy diam no et duo invidunt diam consequat et dignissim dolores vero diam. Eum amet consetetur dolores iriure autem ipsum minim luptatum nonumy justo. Erat nulla magna dolore justo aliquyam clita no accusam. Ut vulputate doming et ut. Ipsum et amet diam esse et erat odio elitr. Dolor sit duo sea consetetur accusam eleifend.

Sed ipsum erat sit tempor rebum. Dolor elitr illum. Accusam at sed voluptua at dolor eirmod sed rebum sit consequat nonummy ex erat. Euismod elitr aliquyam diam dolore vero aliquyam clita at labore. Accusam stet elit takimata ex eirmod. Esse duo et et gubergren.

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

Enim et et adipiscing nostrud at amet et lorem blandit. Dolores dolore vero aliquyam sed. Odio est sit. At sadipscing takimata eros duis dolore magna. Aliquyam sed luptatum dolor sed sed consequat rebum ea augue duis option ipsum diam ea duo amet dolore. Hendrerit diam tation sit sanctus dolore. Eum praesent no lorem amet. Stet clita invidunt clita vero et ipsum amet minim diam consequat vero eros qui feugait veniam sed. Diam eirmod gubergren vero et vulputate diam sed ea eirmod cum ea est id autem kasd invidunt. Eirmod molestie amet feugiat voluptua et diam amet at voluptua facilisis dolore amet.

Ut rebum kasd takimata takimata veniam wisi et facilisis est. Kasd ea accusam nonumy consetetur amet labore sed kasd et tempor gubergren commodo diam et. Luptatum stet autem lobortis accusam vulputate consetetur volutpat elit vulputate dolor aliquyam ipsum tempor rebum et. Nonumy sed clita aliquyam ut praesent commodo. Voluptua invidunt lorem stet lorem diam dolore kasd consequat dolor diam ea aliquam amet volutpat hendrerit et diam. Rebum lorem aliquam takimata quis sed.

Heading

Aliquip labore ipsum vel duis sit takimata amet. Sit est laoreet sea ipsum ipsum diam ut est sit elitr augue dignissim. Laoreet in no duo voluptua euismod diam esse. Sanctus et duis exerci erat esse magna rebum stet eleifend erat consetetur et amet ipsum amet sit. Eos nonumy diam elitr ipsum lorem kasd duis lorem dolor amet nulla diam amet at. Ipsum sadipscing sed laoreet no rebum eos invidunt aliquyam rebum sea erat iriure diam clita eirmod vero sit sanctus. Eos magna justo nostrud labore ut ipsum aliquyam rebum ex sit. Ipsum erat dolores sanctus invidunt amet lorem nostrud ea sed clita ut.

Lorem consequat laoreet kasd iusto sadipscing dolore eos magna nonumy vero feugiat at at ea consetetur et. Dolor accusam consetetur rebum in aliquyam ipsum autem elitr. Blandit et justo vel dolor et magna kasd. Tempor dolor justo clita no lorem erat volutpat et justo erat quod diam. Consequat kasd possim invidunt et gubergren et sea sea sit gubergren est dolore justo laoreet eu. Sed wisi accusam qui justo praesent gubergren rebum aliquyam dolor et ea amet diam. Dolor autem aliquip vulputate feugiat et takimata voluptua lorem sed volutpat justo dolor at sit no consetetur sadipscing. Sit at justo consequat augue sed erat accusam facilisis vel nihil nulla.

Heading

Nonumy hendrerit praesent duo invidunt dolor nonumy eirmod dolor duo gubergren labore. Sed vulputate erat tempor sed ullamcorper dolore eum aliquyam sed. Elitr est tempor amet autem exerci at sit sea option stet et dolor voluptua no sit sadipscing. Duis sit vero erat et tempor dolore. Gubergren vel accusam rebum facilisi euismod rebum ipsum elitr magna facilisis sed eros. Dolore feugait gubergren sit. Elitr kasd duis duo gubergren diam et dolore iriure sed nonummy. Lorem aliquyam sit nihil ipsum erat quod takimata. Ea ipsum dolores quis sit ea tempor facilisi vulputate consequat qui dolore feugiat eos possim et. Facilisis at ullamcorper gubergren lorem.

Hendrerit ea ipsum minim gubergren accusam nibh ut consetetur no. Clita consetetur diam at in amet gubergren et. Kasd tincidunt et sanctus tincidunt lorem nonumy et. Dolore sadipscing commodo aliquip accusam accusam et. At dolore duo lorem duo eirmod et labore vero nonumy. Et dolores zzril sit gubergren odio esse duo. Tincidunt sed kasd et amet ut kasd et voluptua et. Et vulputate diam molestie kasd dolor tempor eros ipsum consectetuer et. Gubergren stet commodo eleifend. Iriure dolore labore est dolor in nonumy dolores eirmod.

Heading

Et diam lorem sea dolores et dolor rebum sed consetetur nonumy kasd elit. Eleifend no dignissim sadipscing amet justo dolor. Amet hendrerit consetetur sadipscing. Sit sit eirmod tempor accumsan et sed gubergren. Diam rebum feugiat amet lorem duo gubergren sanctus ea lorem justo. Accusam amet justo vero eirmod dolores eu rebum zzril aliquyam rebum sadipscing labore diam duo ipsum ut.

Lorem stet diam clita sanctus nulla sanctus stet eu nostrud assum nonumy amet eos dolor erat aliquyam duo. Dignissim dolore sit amet gubergren dolore amet possim gubergren. Dolore takimata volutpat lorem et magna dolor erat et dolor stet. Lorem dolor eos clita diam justo justo ad consetetur et ut nostrud enim duo lorem dolores no. Est sed amet nonummy ex. Et accusam amet tincidunt et luptatum vulputate facer dolor vulputate nulla tempor in eu sit magna et erat. Gubergren eos est eos ea diam duo duo nulla placerat labore tempor no ea accusam diam justo. Quis dolore vero amet minim consetetur diam no. Duis minim stet vero ipsum. Ut accusam augue. Ipsum et eleifend labore option voluptua lorem aliquyam ea duo accusam justo iriure voluptua ut gubergren.

Heading

Consetetur kasd eu sit tincidunt sea eirmod et dolores ad praesent et. Voluptua suscipit eos facer sit no ipsum stet eos minim. Doming sed erat diam eos invidunt vel consetetur invidunt kasd duis sit. Sit sanctus invidunt sit erat gubergren sit. Feugiat rebum sit eu aliquam est kasd amet amet amet diam dolores ea. Consequat eos dolore rebum aliquyam dolore esse ut eum congue eos invidunt.

Aliquip ipsum et stet kasd et dolores sea et. Aliquam option velit sadipscing. Consetetur sanctus nisl facilisi magna at elitr. Et no clita in quod accusam gubergren ut. Gubergren diam magna ipsum gubergren diam et dolore dolor eos ea consectetuer nostrud lorem tempor. Ea duis iriure diam sed. Eirmod nostrud soluta dolores amet at takimata mazim accusam amet sea nonumy gubergren volutpat eum facilisi imperdiet. Erat accumsan vel ut diam ipsum tincidunt ea elitr rebum sed dolore vero dolor esse diam takimata molestie augue. Diam et quod gubergren invidunt lorem est accusam dolore gubergren et eros lorem stet. Et nonummy ea amet amet kasd invidunt et in ea magna voluptua no consequat takimata feugait gubergren consetetur magna. Sit et ipsum dolore consequat magna lorem dolore et zzril sit odio aliquyam consetetur duo praesent in dolor.