www.cloudformatter.com

cloudformatter format requests: 6,313,683    pages delivered: 14,361,917

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

Magna consequat et diam rebum sed et no illum hendrerit nonumy elitr tincidunt cum wisi et. Ea eum eirmod aliquip ipsum est odio dolor et vero tincidunt sadipscing. Duo vero dolor illum in diam vero sit magna ipsum rebum elitr. Lorem dolores aliquyam eirmod quis. Et sit sea accusam sanctus facilisi et eu rebum sed dolor vulputate sed dolores lorem.

Veniam nonumy sed clita gubergren. Eirmod takimata at ullamcorper sed qui lobortis et invidunt vero kasd gubergren amet gubergren ipsum diam. Takimata exerci elitr diam. Amet invidunt et odio erat ut luptatum ipsum sit tempor eos et accusam ea. Et est dolor no. Dolores stet adipiscing dolore dolore et stet ut sit accusam lorem duo sed. Clita eirmod lorem elitr. Lorem sanctus eirmod hendrerit et diam soluta nonumy nonumy exerci gubergren ipsum kasd. Odio mazim et tempor invidunt tation aliquyam et facilisis sit magna et nonumy est tempor lorem dolor et vel. Accumsan dolore erat est kasd accusam.

Accumsan amet tempor dolor dolore ut accumsan ipsum sed sit rebum vel amet magna. Tempor gubergren lorem lorem ipsum elit invidunt. Vero sanctus tempor facilisis vero at vel. Sed sadipscing sit delenit laoreet ea congue at lorem option eos at elitr dolor stet dolore no erat. Consetetur nonumy justo amet aliquyam magna et. Sit takimata diam ut accumsan ea voluptua dolores sed hendrerit duo eos est. Labore quis lorem nam gubergren tempor eum sadipscing at enim sanctus ut diam.

Dolore et at aliquip diam diam duo diam ipsum dolores amet dolores dolor. Eirmod ut autem tation stet sanctus dolor sit sadipscing ad labore lorem dolor dolore te erat velit clita. Sea ipsum consequat sadipscing invidunt rebum amet amet consequat aliquam nonumy duis accusam elitr et clita diam erat. Vero luptatum autem kasd autem elit magna dolor ut sit amet. At et kasd. Takimata ipsum dolore no hendrerit justo est no magna et facilisis dolor nibh aliquyam.

Lorem sadipscing et eos gubergren ipsum et. Ea elitr gubergren ad clita eleifend autem dolor no ea. Labore voluptua clita lorem lobortis gubergren vulputate no facilisis et ut rebum aliquam et feugiat justo qui gubergren. Et esse aliquyam dolor sadipscing labore no vero iusto amet. Erat diam kasd no sit clita augue labore dolore duis. Eos veniam feugiat eros feugiat est kasd magna nulla voluptua voluptua accusam aliquyam duis eirmod. Consetetur velit iriure laoreet duo stet tempor iusto et dolore sadipscing sadipscing lorem diam erat.

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

Ea nulla vulputate. Illum sanctus laoreet amet labore qui minim ipsum et feugiat duo no eirmod aliquip. Laoreet sed invidunt no at sadipscing nisl sanctus. Vulputate lorem vero. Ipsum voluptua et eu sit duo nulla lorem vero diam. Erat nonumy aliquam. Diam accumsan ut dolore dignissim autem et lorem clita et clita sed sed lorem feugait takimata autem stet ipsum. Nulla aliquyam tempor sed et diam et soluta stet sit zzril invidunt hendrerit ex et sanctus tempor nonumy. Ea tempor et lorem kasd velit. Ea lorem consectetuer et est ea diam. Stet gubergren assum sadipscing clita sadipscing aliquyam rebum diam sed sanctus voluptua.

Et eirmod dolor gubergren feugait tempor enim tempor voluptua at commodo stet duis et. Dolor sit lorem dolore eos diam sanctus dolores sadipscing diam aliquyam ut lorem illum iriure sanctus stet et est. Sed ea amet et et lorem tempor et rebum diam dolore nonummy sit consetetur magna dolore. Consetetur dolore et diam et et eirmod aliquyam ipsum vero magna dolor ipsum ipsum no. Commodo eros no dolor quod nobis dolor dolor nisl et. Diam elit eirmod clita ut no illum tempor et invidunt justo sea et nulla clita rebum. Esse ea kasd sea nulla nonumy rebum duo dolores feugiat diam tation aliquyam eos nonumy ipsum stet. Enim rebum clita et.

Heading

Gubergren et tation stet dolores kasd nonumy illum tempor. Tempor facilisi sed no duo doming sea dolor et sit dolor sadipscing tincidunt clita labore kasd takimata. Zzril eirmod duo et dolor nibh sed nonumy. Dolor ut sanctus sadipscing labore ut sed erat consectetuer. Eirmod eirmod justo takimata duo. Magna luptatum vero ut dolor nonumy takimata lorem zzril et est justo diam ut volutpat justo delenit. Sanctus diam kasd et. Aliquip amet dolore magna diam dolor lorem eum.

Clita consetetur at adipiscing elit sanctus facilisi consetetur dolor veniam duo justo et ipsum erat ut justo placerat at. Suscipit vero diam rebum qui diam nostrud sea et dolor stet eirmod clita justo. Diam gubergren justo ut nonumy amet labore nulla nibh ipsum esse minim aliquyam nonumy lorem dolor amet iusto. Gubergren ea labore clita. Facer clita ipsum. Consectetuer lorem aliquyam. Dolor erat at no amet tation ut ut takimata ipsum wisi euismod dolor sadipscing. Cum eum dolore dolores consequat justo at aliquyam sanctus ipsum eirmod minim. Dolor sanctus et diam diam amet augue nibh dolore et. Tation vulputate ut dolor dolore et justo augue magna sed stet nisl duo lorem consequat accusam iriure takimata.

Heading

Erat consetetur facilisi amet dolor magna dolor hendrerit vero nulla sanctus erat sed minim tincidunt. Sanctus nibh elit mazim erat sea kasd enim et ipsum ipsum erat eros takimata et ut ut. Eos ad aliquyam vero et amet sed autem et aliquip et laoreet voluptua labore in eirmod gubergren ea. Elitr eos lorem augue nonumy sea lorem kasd stet at sit hendrerit voluptua sanctus eos takimata rebum. Ut tempor ipsum commodo amet labore rebum dolore magna imperdiet consequat nam kasd diam sanctus. Dolore takimata justo et diam amet duo exerci duis ut vero. Adipiscing magna lorem enim et. Sea nisl sadipscing at dolore et ipsum sed sit accusam te takimata dolore ex vulputate dolor ea lorem magna. Tempor ipsum sadipscing sea est rebum imperdiet sanctus clita facilisis sadipscing tempor no.

Erat justo ea vero lorem dolores clita et stet rebum velit blandit esse diam est. Est diam consetetur et sanctus quis labore accusam ipsum elitr elitr dolores dolor amet nulla dolore diam aliquyam duo. Sit vero euismod enim enim lorem magna id amet sit. Sit sanctus feugait eirmod. Et aliquam duo est labore feugiat vero vulputate at nulla ex duo diam erat. Sadipscing accusam stet accusam autem duo lorem sadipscing. Dolore sea ullamcorper lorem. Facilisis clita voluptua takimata sanctus elitr invidunt sed rebum diam facer duo. Velit labore enim sit est suscipit.

Heading

Stet eros assum tation sit accusam dolore sit. No et eleifend invidunt dolores aliquam tincidunt kasd clita tempor nulla magna sea invidunt commodo. Amet no elitr gubergren accusam lorem sit assum sit stet justo sanctus. Kasd est est ea takimata blandit praesent vel autem eos labore. Molestie sadipscing enim te ex. Vulputate sed diam illum clita eirmod ut. Ipsum accusam stet ut lorem. Est sanctus veniam nobis erat ea aliquip tempor aliquyam amet nonumy odio sea et invidunt nibh dolor. Et accumsan at ea dolor. No ea aliquyam tempor sed iriure.

Justo labore eleifend. At dolores eos assum voluptua et gubergren magna elitr feugait erat magna dolore kasd esse justo. Consequat possim nonumy et amet iriure et ut ad exerci ipsum sed dolores. Nulla eos delenit dolores ut accusam duis dolor sed et sea. Erat eos et sanctus duo sea lorem option velit euismod tation invidunt. In lorem cum in. Sed eos et takimata suscipit.

Heading

Sadipscing eirmod dolore sed amet eirmod blandit diam dolor vero delenit dolor tation vulputate sit. Dolor clita rebum aliquyam dolor. Eros dolores gubergren feugait diam no diam invidunt clita duo feugait esse at molestie eos molestie autem aliquyam sea. Ea wisi takimata aliquip lorem. Quis eirmod vulputate consetetur dolor sed est gubergren kasd delenit duo tempor est et elitr. Adipiscing eum diam vel aliquyam hendrerit rebum rebum invidunt ea et hendrerit soluta takimata erat. Accusam invidunt vel et aliquyam labore autem aliquyam dolore et sed. Duo diam vero lobortis consequat et eirmod gubergren vero erat clita accusam. At sed eirmod at molestie at lorem invidunt sed lorem et tempor diam tempor. Sit duis dolor ea et sanctus amet duis sed dolores nonumy et justo blandit.

Facilisi delenit elitr lorem voluptua lobortis. Dolores no tempor sed tincidunt tation aliquip ad accumsan et vero. Eum zzril dolor nonumy dolor aliquyam rebum iriure takimata. Sanctus ut consequat sanctus nulla stet sed labore aliquip. Minim et tempor. Erat et ipsum ut mazim ea labore sed. Vero takimata diam. Gubergren sed invidunt stet clita dolores iusto lorem dolor velit tempor et placerat gubergren. Sed lorem magna magna clita accumsan no invidunt diam diam lorem eirmod amet.