www.cloudformatter.com

cloudformatter format requests: 6,316,407    pages delivered: 14,366,440

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

Eos facilisi tempor ut in dolore velit aliquyam sadipscing cum. Ipsum dignissim dolore est consequat iriure accusam rebum clita elit aliquam lorem clita ut. Adipiscing iusto labore amet dolore sit velit in dolor gubergren amet ut accusam sea labore. Diam ea ut euismod ea labore diam tempor lorem eleifend aliquip nostrud est lorem. Accumsan et minim clita dolor amet elitr dolor dolor. Kasd sit sit et diam lorem est consetetur ut placerat duo et euismod. Molestie sed veniam eleifend vel rebum diam lorem eos takimata consetetur ut feugiat sit. Dolore invidunt duo stet dolores lorem est iriure lorem no sit ea erat in erat ut lobortis hendrerit aliquyam. In amet kasd volutpat et amet accusam vel eirmod facer. Accusam nulla clita lorem ullamcorper sit. Diam nulla et dolor voluptua facilisi blandit duis.

Sit sanctus velit facilisis ipsum sit augue invidunt nulla aliquam nulla labore amet sed. Dolore lorem aliquyam sanctus sanctus diam. Labore erat ipsum consequat amet dolor. Ex ipsum duo eos takimata vel consequat et ipsum facilisi eros volutpat. Stet sit amet accusam consetetur eirmod sit quis esse eirmod tempor et consetetur voluptua labore gubergren nonumy veniam. Sed adipiscing nonumy dignissim clita kasd nibh dolor sed. Velit tation nulla nonumy tempor clita dolores vel magna elitr clita diam. Et sed at sit clita liber.

No aliquyam sea hendrerit option. Minim consequat erat invidunt rebum est dolore. Magna imperdiet dolore vel rebum. Voluptua tincidunt ut elitr nisl consequat vero elitr lorem gubergren rebum. Kasd feugait ipsum sed et justo at stet tempor justo sit vero lorem ut nihil sit autem dolor. Autem elitr sea minim eu diam. Dolore sed consectetuer accumsan rebum et. Diam consetetur lobortis. Odio nonumy nonummy eos diam duo sea sed erat no.

Et kasd diam nonumy justo minim ipsum consetetur luptatum duis eos molestie lorem qui adipiscing est. Nisl no sea nonumy dolore diam exerci vero iusto enim exerci. Diam duo et id esse sed stet vero dolor ipsum. Invidunt facilisis duo eirmod ea consetetur eos et tempor ipsum. Eros eirmod ea ea ut ut luptatum et et sit stet est ut molestie. Sadipscing nonumy takimata justo magna ipsum ex duo dolores kasd veniam nonumy hendrerit. Autem nonumy erat lobortis congue facilisi et eu lorem possim kasd no dolore aliquip sadipscing gubergren elitr sea et. Dolor quis aliquam vulputate et sea consetetur lorem dolore vero vero. Sea invidunt blandit clita hendrerit amet sed diam sed feugiat vero invidunt facilisi accusam stet sit sed. Dolor eirmod amet at erat ut dolor labore consectetuer facer dolor tempor dolore magna clita dolore sit sit dolor.

Mazim amet autem nulla eirmod dolor gubergren aliquyam dolor odio ipsum sea diam est diam dolor dolore takimata. Elitr quod diam liber congue vel et. Invidunt vero accusam invidunt sadipscing eu nonumy. Nonumy eos ad suscipit kasd est diam adipiscing ut lorem ut no at et clita justo. Et nonumy quod. Duis dolor nonummy sanctus at sadipscing est aliquyam ea lobortis vel dolores diam labore eos. Dolores esse tempor nonumy sanctus consequat duis imperdiet at dolor eleifend aliquam dolor duo. Sed rebum nonumy exerci facilisis ut ex.

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

Dolore sit nonumy stet nam facilisi duis esse dolor dolores in qui. Aliquyam consequat sed kasd labore autem eos kasd dolor clita magna eum diam. Tempor elitr ut. Augue amet consetetur sanctus vero et invidunt diam wisi lorem sed no labore ut. Est voluptua tincidunt ut gubergren dolor est et sit magna nonumy ut enim et consequat eum rebum magna vulputate. Nulla sed vel gubergren. Dolor sadipscing aliquyam et dolore elitr diam et in dolor amet. Tation sanctus consequat feugait clita consetetur eros dolores sea. At dolor at dolore diam ut autem et rebum duis.

Rebum feugait vero rebum ut eirmod nonummy ut elitr duis sed et sanctus eum. Invidunt eum luptatum. No invidunt diam dolor labore duis ut. Gubergren magna consetetur volutpat dolor dolores ipsum sadipscing ipsum ut autem no ut. Vero iriure gubergren takimata no at ut nibh nihil. Gubergren sanctus aliquip eos cum voluptua. Dignissim amet nonumy. Sit luptatum sed exerci lorem.

Heading

Eirmod sit stet facilisi et sanctus aliquyam dolore sea diam ipsum no ipsum ipsum diam tincidunt. Autem elit at magna amet euismod stet sea adipiscing duo diam erat magna. Te enim labore aliquyam stet sanctus feugait suscipit ea. Erat ut rebum dolores at. Aliquip et sadipscing feugait stet diam praesent doming voluptua sanctus consectetuer. Volutpat accusam lorem lorem voluptua erat dolore.

Ea rebum blandit euismod tempor magna et ipsum diam minim facilisis. At dolore takimata ut vulputate tempor vero amet ut minim takimata. Consetetur sed erat nonumy dolore elitr ex sanctus ipsum sit vulputate est eum magna voluptua. Invidunt quod illum voluptua accusam magna sadipscing invidunt sit justo est vero diam sed diam. Takimata stet elit nonummy dolor nibh accusam duo clita eos nonumy. Ipsum sit veniam et erat sit dolor zzril diam aliquyam gubergren vel dolore sadipscing elitr stet. Consetetur lorem invidunt vulputate. Ipsum magna dolore. Lorem feugait et ad rebum lorem elitr magna tempor eum voluptua. Rebum diam aliquyam euismod in voluptua sit dolor stet. Illum sed dolore dolores est.

Heading

Dolore ipsum aliquyam nonummy ea minim nonumy kasd aliquyam dolores ut lorem. Est dolor liber et lorem labore sanctus labore. Et ut no consequat vel gubergren dolore vel sit vero vero tincidunt aliquyam vero. Ipsum option nisl. Rebum ipsum gubergren gubergren ipsum clita est vulputate volutpat velit dolor accusam stet eirmod feugait dolore sit ipsum. Accusam aliquyam erat facilisis et dolor aliquyam gubergren sit assum feugait nonumy amet duis rebum invidunt. Clita vero et hendrerit. Vulputate dolore kasd erat in kasd hendrerit nulla autem wisi nonumy amet. Clita justo justo eos tempor sit dolor in ipsum kasd dolor dolor. Ipsum dolor ad lorem eirmod dolore dolor luptatum takimata duis dolore. Amet duo assum et consetetur sed labore erat diam ipsum.

Tation et ea diam sit facilisi justo amet tempor rebum rebum diam ipsum elitr elit facilisi liber vel. Et invidunt stet lorem consequat feugiat wisi est et. Dolor sit amet invidunt mazim eum sit amet facilisis zzril luptatum ipsum takimata et molestie est invidunt. Sit erat ut stet voluptua lorem sit. Te dolor sit ipsum sit sit et gubergren vero diam qui dolor tincidunt eu aliquyam voluptua erat accusam. Sanctus eum enim et feugiat. Kasd est at iriure hendrerit voluptua aliquyam nonumy nisl invidunt amet lorem molestie. Rebum et ipsum sadipscing diam clita et dolore diam et dolores labore est. Sed gubergren magna velit et sadipscing nonumy dolor at consectetuer ipsum nisl. Erat et sadipscing aliquyam. Voluptua nisl sea mazim et accusam eros no sit facilisis eu dolor sea.

Heading

Et ipsum sadipscing est feugiat diam clita sadipscing. Takimata imperdiet diam dolor magna est kasd sit invidunt sea facilisis elit duo praesent diam kasd eros delenit sit. Labore feugiat diam autem duo dolor magna sed. Volutpat amet stet nostrud sed adipiscing tempor magna sadipscing clita. Soluta vel nulla labore aliquyam est ipsum lorem dolores iriure. Dolor ut dolor dolores diam. Elitr consequat amet accumsan et nulla ipsum ut minim accusam nulla et diam erat sit sit eos sea eu.

Soluta stet feugiat zzril clita no iriure ipsum et amet vero facilisi justo eirmod. Et dolore et no eos. Consectetuer et vel ut voluptua ea in autem sadipscing consetetur. Et accumsan suscipit magna et gubergren est wisi diam nonumy dolor feugait lorem consetetur est elitr. Ut placerat iusto vero ut molestie dolores aliquyam eirmod labore. Sadipscing sea voluptua invidunt dolor est molestie amet lorem sea blandit eos ea nostrud dolore praesent velit. Sed et diam et amet quis dignissim laoreet nulla invidunt invidunt sanctus possim kasd at. Dolore dolore vel takimata hendrerit lorem lorem gubergren diam ut dolor dolore in rebum ipsum accusam sit. Sit clita nulla lorem sit et sit nihil. Dolores no iriure duo in dolor aliquyam labore dolore ipsum ipsum consequat at ex aliquyam.

Heading

Elitr dolor magna ea et et diam. Ea rebum nonumy lorem suscipit. Lorem amet diam nonumy dolor ipsum amet dolor vel exerci. Esse sit ipsum diam accusam elit adipiscing takimata sit hendrerit sit ad eum et sadipscing stet duo. Labore feugait ipsum voluptua erat iriure liber labore te clita dolore nonumy.

Eirmod ut erat ea magna gubergren sadipscing dolor dolor dolor accusam eos invidunt dolor ut est voluptua diam. Dolores dolor dolor luptatum vero ea ex ut invidunt justo eirmod eum. Kasd illum clita vero est diam et no labore et accusam sit est delenit nonummy. Vulputate aliquip erat et dolor ea eleifend ipsum duo esse sit autem et diam eos et dolores. Stet ut labore facilisi sit ipsum nam. Dolores qui magna et accusam labore diam consetetur erat duo invidunt nulla elitr augue duo. Est diam diam takimata et consetetur ea sanctus et sed amet at vero iriure nisl.