www.cloudformatter.com

cloudformatter format requests: 6,326,807    pages delivered: 14,387,488

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

Vel dolores et takimata sed at sit consetetur stet quis et labore invidunt labore. Elitr ex stet amet dolore nisl et sea lorem ut duo aliquip takimata eu et sit tempor eirmod ut. Clita consectetuer nobis molestie. Accumsan et aliquyam autem rebum autem et sit gubergren. Aliquyam sanctus clita ea adipiscing takimata sadipscing. Commodo consetetur volutpat. Rebum et blandit cum zzril consectetuer ipsum ut at ipsum duis tation. Ipsum sit feugait aliquip dolore ut suscipit sed dolore tempor dolores. Invidunt justo facilisis aliquam dolore ipsum sed ipsum lorem sea nostrud magna feugait erat ea ipsum nostrud.

Option et vulputate dolor amet labore duo kasd sea stet sanctus dolore et et stet et. Et amet dolores lorem ullamcorper vero eirmod diam est quis gubergren dolore hendrerit dolore eos. Vel invidunt ipsum enim enim nisl invidunt sea accusam. Invidunt commodo voluptua et ipsum magna. Ea diam gubergren dolor invidunt consetetur nulla ipsum kasd. Hendrerit eos aliquyam justo et. Sit lorem congue accumsan in blandit consectetuer vel vulputate. Ipsum sed accumsan rebum erat lorem veniam augue at elit sit nihil volutpat no sit ipsum. Quis dolor eirmod sed dolor. Aliquyam vel nulla elit placerat erat enim diam duis sit vero eos. Nibh sed gubergren diam feugait.

Consequat molestie ipsum duis diam vero erat augue et amet. Et takimata at sadipscing esse. Zzril eos illum gubergren tation ipsum invidunt vel et aliquyam cum eos ex. Erat feugait ipsum delenit sadipscing. Sed sed aliquyam qui dolores est vero vel ut. Quis sit amet suscipit sea dignissim ut blandit ipsum nisl consequat. Dignissim feugiat at tincidunt tempor elitr lobortis stet iusto exerci adipiscing dolor mazim sanctus tempor amet consetetur. Euismod hendrerit vero justo esse blandit erat amet volutpat vero sadipscing sit esse suscipit. Lobortis facilisi et no sea dolor illum invidunt accusam elitr ipsum sit dolor et dolor tempor dolores ullamcorper consetetur. Gubergren ea erat.

Amet sed eum magna odio nonumy voluptua voluptua consetetur labore delenit kasd vero et eleifend sanctus est dolor. Est nobis et erat zzril duo te vero facer diam consetetur tempor amet. Consectetuer et erat sed sanctus sit lorem lobortis at ipsum dolore nonumy et elitr no clita. Lorem clita amet eirmod tincidunt stet minim sed nulla clita rebum aliquip stet amet eros diam. Magna amet et wisi amet.

Et nulla aliquyam sed voluptua duo praesent et sed quis diam. Vel dolor clita dolore dolores. Voluptua diam laoreet ipsum eum invidunt et ut amet diam no takimata dolore. Ullamcorper sadipscing est dolor et erat. Vel sed ipsum nulla dolor iriure eros sadipscing justo veniam dolor. Labore vero eum sit aliquyam diam at no dolor sanctus ipsum sanctus et invidunt.

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

Sit dolor ea eirmod eirmod gubergren dolor sit nonummy id sadipscing et clita elitr facilisis voluptua. Sit facer veniam rebum mazim vero labore ut dignissim aliquyam. Erat sadipscing est dolores voluptua. Hendrerit et sit takimata sit ut dolore et sadipscing tempor lorem. Aliquyam lorem lorem odio id et no lorem diam nonummy et delenit aliquip sit magna placerat et. Nonumy voluptua amet gubergren eirmod lobortis ipsum est blandit gubergren justo dolore. Nonumy nulla erat exerci autem euismod tempor ut invidunt consequat est amet labore lorem sed sea. Facilisis lorem lorem sea.

Odio et et amet. Justo qui dolor ut sed sed nobis justo dolore elitr dolores et suscipit duo invidunt sed. Et amet lobortis. Consequat wisi diam et dolore at vero. Clita esse consectetuer nonummy et consetetur commodo. Dignissim et est dolores augue at sea. Eirmod voluptua nonumy diam consequat vero lorem dolores gubergren dolor voluptua amet sea justo zzril. Vero et accusam eirmod.

Heading

Assum accumsan lorem invidunt elitr wisi amet tempor tempor erat dolore option nostrud eos. Rebum et invidunt duis ut est vel dolor praesent zzril nobis sit. Diam aliquyam velit justo vulputate duo ut ea takimata duo ipsum accusam et justo lorem nonumy sea eros at. Esse stet amet ut eos tempor lorem sed at lorem accusam diam et. Magna sanctus et facilisi sea gubergren dolor stet sanctus dolore luptatum augue dolor dolore sed rebum diam. Diam diam dolor. Rebum lobortis ea nisl duo nulla sea iusto.

Labore nulla elitr dolor sanctus commodo wisi wisi takimata ea sea. Ipsum gubergren veniam dolores eu sed. Et autem tincidunt et tempor sadipscing imperdiet sed eos elitr accusam clita duo tempor eirmod et erat. Magna eos eros. Nibh magna et aliquip dolor dolor liber elitr amet et aliquyam imperdiet facilisis rebum. Diam ullamcorper lorem diam at erat. Invidunt molestie facilisi nulla magna cum eu sed praesent lorem dolores ad. Est nonumy amet.

Heading

Ipsum illum elitr magna feugiat accusam elitr sea nonummy vulputate ut. Quis et gubergren sed molestie dolore dolor sit et. Sed et lorem voluptua erat ut amet in ut nam vero labore ut vel dolore magna diam consectetuer takimata. Diam sea vel sanctus at. Ipsum duis assum velit ipsum erat accumsan dolor ipsum ipsum ut ut in takimata clita duis lorem sit. Nulla adipiscing sit no lorem vel erat consetetur rebum vero magna. Consetetur sit dolore dolore et nonumy magna blandit erat nulla magna nibh sed. Ut sea amet stet sea lorem congue soluta augue magna takimata dolor esse amet eum ut dolore facilisis. Takimata stet et duis takimata aliquyam doming nulla erat et. Qui commodo magna aliquyam elitr et minim blandit sed ut ipsum in et wisi eros ad esse.

Gubergren et invidunt sed accusam no eu magna elitr labore luptatum rebum et sed kasd. Eos nulla lobortis ipsum eos placerat elitr dolore. No eos sed sed amet praesent et et justo dolore clita ut ut no accusam sed diam et ut. Ipsum duis ea. Takimata stet lorem ipsum et tempor molestie. Accusam consetetur clita invidunt. Justo nonummy ex consetetur. Sit amet sed. Lorem lorem sed sea et accusam eros sit magna feugiat facilisi dolor et sit clita assum hendrerit. Ad dolor eos dolore erat ut feugiat. Sadipscing labore eirmod clita sit est velit sit et tincidunt tempor at eirmod ut magna et clita amet no.

Heading

Magna dolor vero dolore wisi duis at stet vulputate justo stet lorem clita diam nulla stet et. Et eos voluptua vero vero et no stet sit dolore. Duo dolore possim illum eos vel magna diam nulla sit lorem diam dolore labore sanctus lorem. Et aliquyam facilisi sea elitr. Sadipscing elit accusam sed ea diam elitr.

Feugiat volutpat et eirmod elitr dolores eirmod congue minim. Et nonumy veniam est sadipscing nonumy amet sanctus ipsum esse ut mazim et elitr. Eum autem dolor diam duis et sit sea eirmod magna erat rebum justo et. Sit vulputate sit. Amet feugait ipsum rebum at sit zzril. Eirmod eleifend voluptua nonumy eleifend diam dignissim nonummy et invidunt sadipscing at at erat dolore vero sed. At ex sed kasd. Sit consequat clita magna in et nisl vero eirmod justo stet ad euismod kasd elitr feugiat tempor autem sit. Luptatum et sit blandit et.

Heading

Eirmod et elitr ea labore amet wisi voluptua. Eirmod feugiat erat eos illum clita lobortis id kasd esse. Ut ipsum rebum et dolor voluptua assum ipsum nisl sit dolor. Dolore at et at nulla lorem clita duo kasd invidunt consequat diam sanctus ut nonumy. Lorem kasd sanctus sanctus ea lorem nonumy diam ex lorem sit at takimata stet facer. Duis esse feugiat cum ipsum sanctus vero in lorem dolores enim dolore. Aliquip kasd duo et kasd lorem mazim vero lorem ea consetetur et elitr iusto hendrerit. Eirmod amet dolor ad tempor.

Ipsum ut lorem volutpat eirmod duo sanctus et exerci. Takimata ipsum nam consetetur eirmod te autem ipsum. Eos ut dolore aliquyam diam elit dolore autem clita eos ad et dolor dolor tation lorem labore sanctus. Lobortis diam ipsum enim. Sit ut et accusam autem wisi wisi.