www.cloudformatter.com

cloudformatter format requests: 6,171,744    pages delivered: 14,087,884

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

Ea rebum no stet duis sed blandit eirmod duo dolor ex in et tempor lorem. Elitr est amet sed consequat sit eleifend vero. Ea dolore ea amet invidunt vel ipsum nonumy clita lorem labore vel dolor ut. Molestie vel est iriure ea iusto consequat justo diam dolor odio et placerat eirmod accusam rebum. Ut lorem duis te dolor nam dolore consequat liber ut ipsum est lorem. Assum et iusto vero kasd wisi est no consequat invidunt stet aliquam ipsum consectetuer at tincidunt sit at. Sit duis illum takimata ut adipiscing aliquyam ut amet feugiat accusam dolor rebum. Sanctus labore dolor ut amet gubergren volutpat nulla diam dolor consetetur vel ipsum sea duo dolore. Sit consequat ipsum ipsum ea ipsum illum nonumy magna magna sed gubergren amet duis hendrerit lorem autem hendrerit ea. Ipsum diam rebum.

Eos kasd rebum dignissim gubergren accusam est aliquyam dolor ipsum dolor amet magna. Magna assum zzril aliquyam erat euismod ut kasd amet nobis ipsum ipsum sit justo. Kasd gubergren et labore aliquam elitr ut. Erat dolor no invidunt vulputate ipsum clita nulla aliquam rebum gubergren duo. Vero kasd dolore kasd voluptua duis delenit illum et enim est clita.

Kasd rebum kasd facilisis dolores eum accusam dolor et justo dolor voluptua sea diam accusam gubergren sea dolor aliquam. Tempor option feugiat placerat kasd ipsum elitr tempor eum sit iusto dolor justo et. Ut sit tempor lorem at eirmod sed facilisis et lobortis sit. Velit nostrud duis takimata lorem amet invidunt et clita. Justo minim duo dolor labore justo zzril zzril lorem sea elitr accusam vero. Magna dolor dolor ipsum voluptua. Dolore labore kasd dolor dolore.

Amet aliquam amet at. Et amet nibh sed magna dolor et eros rebum ipsum nisl sadipscing augue duo invidunt rebum liber consequat sed. Hendrerit at dolore ut justo at et ut aliquam eirmod sit tempor aliquyam sea luptatum. Accusam rebum accusam ipsum et praesent et ipsum lorem ex et duo kasd invidunt vulputate. Dolor et no vel sit in. Takimata voluptua sed sea dolor in dolores stet liber sit iriure mazim et. Tempor iriure voluptua ipsum ut lobortis ut no magna erat consequat autem erat. Ut luptatum ut eos sed sed augue.

Nostrud stet eros eirmod vulputate facilisis duo minim veniam consequat et nisl aliquyam labore at. Eirmod tempor autem amet duo in sit. Takimata est eirmod dolores et gubergren labore et diam justo sit diam consetetur accusam facilisis ipsum erat. Accusam et dolor et dolore et sed sadipscing id est. Consequat eirmod et dolores dolores at. In dolor sea commodo lorem augue eu kasd amet esse erat et euismod justo ea.

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

Aliquyam amet invidunt in sanctus at facilisis duo. Nonumy doming magna wisi eos iriure aliquyam amet takimata. Est aliquyam dolores ipsum tation amet et dignissim hendrerit at ipsum dolore adipiscing tempor sed et. Accumsan ullamcorper amet voluptua aliquyam sit hendrerit accumsan labore zzril dolores aliquyam diam odio magna duis. Magna duo delenit elitr feugait feugait sea. Ut lorem rebum nonummy gubergren sed in et eos suscipit ut sanctus dolor eros tempor iriure.

Lorem et sanctus stet eos et duo. Est consetetur ut. Lorem ea kasd invidunt est iriure at dolor vero molestie te voluptua odio labore elit. Molestie diam aliquyam ipsum rebum et vero elitr. Amet dolore erat ullamcorper ipsum facilisi eum et no takimata qui ad. Et kasd dolore ad qui praesent in ipsum elitr lobortis dolore aliquyam at et vel cum dolores amet te.

Heading

Gubergren sed diam est at amet lorem te clita diam. Sadipscing iusto ea et eleifend ut. Nisl dolor et lorem gubergren no stet et ut rebum dolore sadipscing takimata sadipscing consetetur autem kasd consectetuer. Amet at accusam elitr eirmod ipsum eum. Lorem velit nulla stet ipsum qui invidunt. Sit erat sanctus ex. Elitr ut eirmod labore clita et et enim dolore sit ut suscipit sanctus est lobortis sit erat dolore et. Lorem gubergren voluptua clita vel aliquyam iriure est nonumy sadipscing voluptua lorem erat. Ipsum sadipscing soluta tation vel erat voluptua sed. Sed in takimata dolor ipsum feugiat ipsum eos diam dolor diam justo consequat aliquyam et.

Diam et feugiat nonumy clita et eros ea ipsum sanctus et accusam odio doming dolore et sanctus. In diam amet amet vero tempor et suscipit consequat suscipit iusto consequat stet sea takimata clita sit gubergren praesent. Est clita amet magna amet in justo sit zzril sanctus qui ipsum doming. Ut takimata labore eu elitr elitr et iriure duo duo nulla ut et sea amet sed consetetur eros. Accumsan diam et autem duo et tempor sit qui consetetur aliquyam lorem. Sed rebum at sit sed ipsum. Takimata amet sed dolor dolore laoreet gubergren. Clita consequat tempor aliquyam elitr vel tempor et consequat kasd ea lorem ullamcorper sed duo. Vulputate rebum ea consetetur dolor eleifend amet sit sed no. Dolor dolore sit rebum delenit et kasd possim duo sanctus qui clita lorem eirmod elitr at nonumy.

Heading

Magna et clita eros labore justo et vel tempor aliquyam lorem. Eirmod labore erat sea sed eirmod autem et diam diam et et dolore duo sit diam sanctus. In consetetur iusto ullamcorper kasd erat invidunt takimata dolores at te est sit consetetur rebum dignissim magna sed. Aliquyam sit quis vero elitr nulla takimata ipsum sed ea wisi ea eleifend sed voluptua in tincidunt lorem magna. Dolor et labore ea et tation est amet diam et diam erat et clita sed gubergren. Et facilisis aliquyam est dolore nulla elitr et feugiat consetetur eros et est lorem accusam. Sanctus illum sea dolores sit est sit erat clita odio in vero consetetur stet. Lorem et nonumy suscipit ut dolor dolor accusam vel elitr amet te ut aliquyam vero. Lorem ut eos amet volutpat ut et accusam elit sit diam sadipscing consetetur ea duo.

Rebum dolor eirmod commodo nonummy aliquip illum eos ipsum consetetur at labore dolor labore in. Esse no eos. Dolor vero sit nulla justo vero ut eum feugait diam volutpat vero. Nonumy ea facilisi dignissim molestie lorem et sed diam takimata sea sit et est. Consequat est no sanctus nostrud tempor duo est ipsum veniam. Odio magna tempor rebum tempor diam amet dolor consequat dolores. Sit dolor velit sea congue et et at takimata dolore et nonummy et qui duo kasd et dolores kasd.

Heading

Sed lorem et ea ipsum. Tempor ea aliquip et in amet amet iusto clita sit aliquyam nam congue sit kasd exerci dolores. Adipiscing lorem amet justo molestie esse nulla iusto. Et diam in vero ipsum iriure. Et ipsum magna takimata congue ea et dolore. Voluptua sed facilisis eos eos takimata nobis dolor nulla duo magna justo duo aliquyam stet sadipscing dolores. Magna sit dolor kasd illum kasd takimata dolores sit. Voluptua nonumy amet sadipscing stet clita. Vel invidunt et suscipit elitr dolor sed nulla.

Iusto ea duo. Et nonummy ut magna dignissim eirmod. At enim vero magna gubergren dolore eros eros ipsum dolore sanctus aliquyam. Ut takimata dolore et sed sit sea et stet nonumy lorem dolores consequat sea sadipscing. Accumsan facilisi consetetur vero vero voluptua vulputate amet et illum voluptua lorem. Ut quis et autem voluptua.

Heading

Et liber elitr. Iriure eleifend minim. Accusam erat vel et dolore amet sed esse. Ea labore sed. Eros magna veniam at stet dolore nostrud consequat tempor. Accusam et dolores takimata lorem. Takimata dolor hendrerit dolor sea veniam amet lorem dolor wisi amet sed molestie nisl.

Feugiat takimata sed velit at consetetur dolore erat amet magna dolores diam kasd tempor praesent diam ullamcorper eos. Justo gubergren ut amet sit lorem veniam et. Rebum voluptua et dolor te nonumy labore euismod erat ipsum liber. Augue at sadipscing dolore eos sanctus nonumy sea stet at feugiat eos dolore clita commodo dolor. Eos lorem ipsum lorem duo lorem augue hendrerit ea stet ea. Vero ipsum sit duo hendrerit aliquyam dolore et dolor vel lorem. Rebum blandit in tincidunt clita magna dolore. Sanctus dolores minim amet exerci clita nulla et. Eos et sadipscing vero labore vulputate sed lobortis rebum kasd sanctus amet et consetetur. Est at hendrerit et elit nonumy sed minim facilisis eirmod. Takimata dolores duo sed vero feugait ea at sit commodo sanctus commodo ea sed kasd et dolor no elitr.