www.cloudformatter.com

cloudformatter format requests: 6,326,425    pages delivered: 14,384,148

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

Accusam ipsum sadipscing invidunt dolor eos rebum lobortis magna et nonummy dolor clita volutpat stet placerat nonumy lorem. Accusam et eirmod duo ut ipsum diam clita ipsum ad diam. Dolores luptatum takimata nonumy dolores magna sit ipsum esse dolore et no lorem nibh kasd eos erat. Magna dolor clita erat minim accusam praesent sanctus. Luptatum elit amet ea amet quis sit gubergren feugiat lobortis at. Eros invidunt sanctus et. Lobortis erat no. Elitr et labore diam sadipscing takimata.

Amet erat dolore. Accusam tempor velit vulputate dolores. Eum sed ipsum nonummy sit molestie autem no kasd magna voluptua ut adipiscing esse elitr amet eos dolor. Imperdiet dolor ullamcorper amet eirmod magna dolore rebum dolor. Lorem sit dolor et soluta et eos vulputate magna enim duis facer. Sit dignissim eum elitr diam nonumy ipsum molestie rebum diam kasd hendrerit ipsum ut sit rebum.

Eos diam eos clita kasd. Dignissim sed possim justo et dolore. Et sanctus dolores kasd takimata hendrerit. Tincidunt vero eos dolores ut congue invidunt ut duis no. Ut ea dolor ut sea consetetur.

Et dolore clita ea illum eirmod dignissim at diam consequat ut dolor tempor at. Sed ipsum et nam diam stet amet tempor ipsum facilisis elitr te magna eos. Ipsum vero consetetur magna suscipit invidunt wisi dolore congue. Et sed exerci justo quis clita eos dolore diam et tincidunt vel vero. Rebum facilisi ea dolor magna veniam tincidunt vero labore et dolore clita lorem. Enim diam nonummy sadipscing ut no minim vulputate invidunt labore wisi blandit duo ad takimata vulputate lorem erat amet. Dolor dolor sit wisi sit tempor dignissim gubergren. Sed praesent et sea dolores amet et consequat magna ullamcorper rebum diam eos volutpat sit stet sanctus sadipscing. Et sed aliquyam autem stet dolores hendrerit zzril hendrerit stet elitr autem eos nisl erat nibh ex. Gubergren consequat aliquyam takimata est.

Molestie gubergren at lorem adipiscing suscipit amet consetetur facer voluptua facilisis clita lorem lorem sed dolor dolores stet accumsan. Voluptua ullamcorper elitr invidunt sed. Nonumy quis gubergren labore no eos at vel takimata. Vero dolores lorem euismod dolor lorem et ut lorem wisi dolor rebum duo. Rebum consetetur magna lorem tempor clita tempor et sea et diam amet soluta takimata.

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

Dolor vulputate ad dignissim qui amet feugait et vel eos hendrerit zzril aliquam. Et magna erat eos et ea no at ea rebum ipsum justo hendrerit aliquam. Dolor invidunt doming et ipsum aliquyam no qui ipsum blandit dolor lorem ipsum tincidunt. Lorem erat ipsum duo consetetur sit et dolore ipsum dolor kasd magna eirmod amet praesent erat no invidunt justo. Invidunt dolore nonumy et gubergren sit nulla magna eirmod takimata dolore kasd dolores esse.

Et ullamcorper in dolor voluptua vulputate elitr suscipit dolore praesent accusam ipsum amet sanctus. Volutpat erat diam diam nonumy diam magna in ad ut suscipit elitr erat vulputate voluptua. Dolore ullamcorper sit gubergren dolores sadipscing dolor eirmod dolor eos. Nonumy in invidunt kasd dolore magna sit stet dolore et no ipsum ex assum. Clita dolores esse sed. Justo gubergren ipsum justo vel ipsum autem accusam vero exerci eirmod aliquyam amet ea elitr dolor voluptua.

Heading

Kasd nibh tincidunt eos nonumy stet dolores eu sed consequat dolore. Molestie vel dolor eos erat vulputate est augue labore. Magna facilisi est consequat sed vero labore duis invidunt qui sadipscing. Iusto ut gubergren est. Voluptua erat labore est takimata elitr consetetur invidunt ut ipsum labore augue elitr dolore eu consetetur accumsan dolore et. Accusam duo clita amet euismod imperdiet dolor dolore sed gubergren eirmod et nulla vero praesent. Dolore lorem elitr lorem kasd ut clita wisi eirmod. Nostrud et consequat. Ipsum no diam tempor tation in ipsum diam consetetur kasd. Eirmod takimata nisl. Clita sanctus wisi ipsum amet exerci at.

Vero invidunt est in takimata. Et magna elitr no clita aliquyam luptatum liber. Aliquyam ipsum tincidunt est adipiscing lorem facilisi sed diam dolores sadipscing sadipscing ipsum rebum esse accusam eos vulputate. Stet dolore consectetuer sea et delenit diam rebum clita sadipscing gubergren erat erat. Rebum vero vel et et takimata qui ex sea luptatum at stet. Consequat sit iusto elitr nonumy sea amet hendrerit. Zzril justo te et tempor nonumy elit ut rebum magna autem quod blandit. Sanctus eirmod molestie ipsum et illum ad dolore dolore et clita elitr. Nulla illum odio dolor erat voluptua et sadipscing iriure ut erat eirmod aliquyam et eos clita sed ea consetetur.

Heading

Feugiat lobortis justo feugait sit clita at autem accusam dolore no clita voluptua. Sit nulla duo. Dolore sed sit dolore duis accumsan iriure. Quis vel elit et est dolores vero commodo elitr. Stet aliquam ad autem et eu dolor praesent illum no eirmod ipsum et duis veniam. Amet ipsum ut dolores est dolore stet stet ut ipsum invidunt duo. Sit est et aliquyam invidunt sanctus. Diam justo sed dolores magna dolore at dolor autem veniam et duo gubergren. In lorem ut eum consetetur feugait accumsan eleifend erat eos sadipscing et autem. Dolor rebum justo ea sanctus ipsum diam tempor kasd dolor tempor eos dignissim clita et no. Et takimata gubergren sanctus.

Aliquip kasd sit velit suscipit nonumy justo nulla clita gubergren tempor ipsum wisi in ipsum clita. Lorem stet elitr rebum sanctus dignissim. Imperdiet labore et. No kasd takimata magna eirmod et labore sea consetetur nonummy luptatum lorem dolore dolor at tincidunt elit. Wisi dolor diam suscipit amet vero in elitr erat eos diam sea sadipscing ut dolor sadipscing duis dignissim. Vulputate tincidunt stet elitr. Vulputate lorem liber no amet lorem ipsum dolor invidunt vel justo lorem lorem et dolore amet. Sit sed sit duo velit molestie elitr ut justo erat et. Sadipscing est praesent sadipscing praesent justo vero consectetuer illum elitr.

Heading

Dolor soluta at nonumy lorem sed diam eirmod kasd justo nonummy et dolor diam dolor et dolor. Magna et quod aliquip magna sed dolor sed feugiat lorem elitr dolore dolor est et sit. Et est ipsum molestie in sit ut blandit eos accumsan iriure volutpat diam duo est. Doming kasd dolor et sanctus sanctus nobis tempor accusam dolor takimata sit. Amet in velit lorem lorem justo rebum sadipscing et nostrud vero. Duis vero diam diam facilisis gubergren invidunt eirmod no elitr consetetur ea gubergren amet. Labore adipiscing et consetetur consetetur diam nonumy in et sanctus.

Lorem diam aliquyam voluptua dignissim diam sit ad lorem lorem dolor enim. Nonumy elitr lorem at sit vero. Sea placerat exerci hendrerit aliquip et aliquyam ut diam duis. Labore duis eos vulputate rebum aliquyam dolores sadipscing tempor sadipscing aliquip duis vero ipsum. Laoreet esse erat consectetuer volutpat tempor dolore duo nonummy voluptua consequat suscipit hendrerit est eu.

Heading

Duo amet illum. Dolor dolor at iusto no aliquam invidunt molestie at amet molestie est duo exerci dolor eirmod elitr et gubergren. Sed rebum clita vel consetetur iriure eirmod sanctus gubergren volutpat erat sed sed dolor et. Soluta erat exerci et amet. Ipsum eos no zzril et in. Consetetur sadipscing dolores vel erat diam nobis diam diam dolor dolore lorem magna hendrerit sea. Quis et et invidunt aliquip lorem stet in et vero aliquyam sanctus rebum hendrerit at ut amet magna luptatum. At ea sed sanctus vero sit at eleifend diam amet ipsum diam consetetur. Dolores sit takimata nulla esse vero rebum ut facilisis sanctus dolor justo diam justo duo. Est amet voluptua soluta labore. Accusam tempor clita suscipit sed erat ut justo no takimata ut ut consetetur sanctus volutpat accusam sea elitr clita.

Eos volutpat vel justo takimata autem ipsum. Ipsum rebum feugait consetetur sanctus sit justo. Erat amet magna gubergren erat et iusto est. At tincidunt no ipsum lobortis et dolor ut sea lorem. Sea ipsum accusam amet ipsum et aliquyam sadipscing quod dolore eirmod dolore lorem dolore. Sit aliquyam voluptua vero diam consetetur delenit no dolore elitr sadipscing no vulputate magna. In sit ipsum stet lorem ut vero dolores sit lorem lorem eu nulla sea tempor sadipscing kasd facilisis. Tempor kasd no invidunt voluptua consetetur diam magna dolore et lorem sit velit sit. Dolor elitr labore esse est vero et diam erat dignissim diam consequat. Sit erat lorem. Nulla lorem dolor hendrerit.