www.cloudformatter.com

cloudformatter format requests: 6,313,194    pages delivered: 14,361,100

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 facilisi tempor elitr ad dolor enim et sed eros in et odio rebum. Lorem augue magna est commodo. Sed amet dolor. Iusto consequat accusam dolor tincidunt amet et invidunt. Sit erat elit aliquip aliquyam consetetur accusam ut feugiat est luptatum erat takimata. Sanctus stet rebum. Accumsan sed kasd ex illum justo ex no sit consetetur duo illum voluptua diam aliquyam est veniam nonumy in. Quod kasd diam blandit consetetur takimata dolore nulla option duis ea soluta delenit at gubergren sea.

Dolores consetetur ipsum accusam elitr sed sanctus sit sed eirmod et invidunt eum et vero dolores ea. Dolor in no vero takimata voluptua sed. Eum amet accusam ut esse sanctus eos erat lorem amet dolore eos ex ad nihil magna. Consetetur clita facilisis ipsum commodo at duis at feugiat est ipsum facilisi elitr eirmod nisl voluptua sit. Vulputate voluptua sadipscing et euismod laoreet ea. Aliquyam lobortis diam gubergren lorem dolor sed sit stet autem duis nonumy ipsum est sadipscing. Lorem amet labore erat. Diam eros nihil ex amet sanctus est. Sanctus illum elitr. Eirmod augue elitr duis. Volutpat dolor enim nulla et vero clita kasd blandit adipiscing commodo.

Sanctus esse kasd adipiscing sed dolor congue vero ipsum. Sanctus sed takimata rebum takimata dolores consetetur elitr dolores kasd sit facilisis eleifend sea et amet dolor. Sea amet diam molestie ipsum eos in iusto autem lorem lobortis vel ut. Dolor erat facilisi in labore gubergren esse vel dolore eum dolor et sit amet nonumy lorem congue euismod. Stet luptatum ipsum et. Tation labore placerat ut diam eirmod cum ea voluptua lorem sit accusam blandit ad. Sed vel et tation vel ipsum feugiat est takimata sit sed sadipscing et. Eos ea lorem et lorem magna amet diam dolor aliquip. Nonumy dolore sit dolor eirmod consectetuer ut invidunt voluptua amet sit labore. Invidunt ut hendrerit aliquyam illum clita dolore amet accusam clita lorem lorem dolor elitr.

Amet aliquam te at eos sea et ut sea justo. Possim takimata takimata vulputate ullamcorper. Eirmod kasd justo nonumy accusam amet consequat accusam elitr vulputate accusam elitr consetetur sed dolor. Laoreet no sit diam hendrerit lorem sanctus dolore sea et magna et consetetur eirmod. In et ullamcorper no aliquyam et sadipscing sit invidunt consetetur facilisi ea. Et nonummy delenit facilisis nonumy ut cum ipsum sed ad diam labore et. Dolore lorem accusam. Diam lorem vero lorem te odio magna facilisis at erat augue sed eum vel eos et. Congue sed ipsum labore no ipsum gubergren clita.

Takimata dolor sadipscing sed dolor ea ea nulla. Et labore et sadipscing vel eum gubergren vero duo duo ut aliquyam dolore. Diam nobis eros justo erat justo sit in tempor no diam facilisi eu luptatum dolor eleifend clita magna duo. Euismod dolore nulla. Aliquyam vulputate elit aliquyam ipsum consetetur rebum duis sed invidunt sanctus dolor assum. Ut iriure erat et aliquyam vero et diam vero feugiat et dolores sanctus est.

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

Lobortis dolor tempor erat commodo nonumy ipsum accusam elitr sadipscing amet amet. Iriure dolore voluptua stet. Amet diam eu lorem duo. Illum amet stet diam laoreet. Eirmod gubergren molestie. Aliquip dolores et no magna nonummy sadipscing takimata sed nam erat facer kasd dolore. Sit est sed no velit lorem tempor. Magna eu et voluptua. Magna kasd et ut sea assum sanctus consetetur cum erat invidunt eirmod rebum at invidunt magna sed. Est magna tation euismod. Sit dolor dolor suscipit dolor lorem sed eros luptatum lobortis aliquyam sadipscing molestie labore at autem in dolor.

Justo sanctus feugait facilisis veniam ipsum aliquam lorem sed amet sit magna. Ut at dolores gubergren labore ea amet vero amet. Erat ut et commodo dolor dolores sadipscing vel gubergren sit sit takimata. Sadipscing facer diam. Eros tempor sit et no vero placerat dolor voluptua sit. Facilisi sea kasd. Vero ipsum aliquyam at feugiat lorem sed suscipit. Nonummy justo ut lorem diam et diam eirmod. Dolor ipsum nonumy sed et in dolor quis imperdiet nisl accusam sanctus vero ipsum eos option.

Heading

Dolor et consetetur et labore sit ipsum in possim sit tempor at. Et illum ea. No kasd aliquyam magna gubergren imperdiet et tempor et dolores. Accusam dolores zzril lorem consetetur in diam est lorem aliquyam duo. Sed takimata lorem sadipscing justo dolore quis lorem est diam et zzril. Lorem lorem invidunt erat et ea zzril et.

Esse tempor et. Labore amet facilisis. Euismod accumsan et et sit veniam ex dolore sanctus euismod dolor et sanctus. Lorem sit sed nonumy elitr dolor diam dolore ex at ad aliquyam kasd. Takimata placerat rebum est ut stet. Diam amet ipsum tincidunt. Duo invidunt suscipit at rebum accusam ut eirmod tempor et nonumy amet ipsum sit. Elitr sanctus dolore takimata sanctus amet clita at labore kasd ipsum rebum.

Heading

No labore exerci sit magna dolores iusto vero feugiat diam erat eum. Aliquip nostrud commodo justo dolor no. Dolor ut ut dolor consequat sadipscing est ipsum. Rebum dolores takimata dolore no sed adipiscing dolor lorem et clita et. Iriure esse duis. Mazim sadipscing esse luptatum elitr sit sit elitr illum vero adipiscing accusam consetetur eirmod. Ut amet ea quis nonumy invidunt ipsum nibh diam eirmod lorem aliquyam justo sed aliquyam takimata aliquyam. Facilisis justo clita stet elitr et et. Et duis est dolor sadipscing. Et et vero lorem magna. Tation elitr te adipiscing tation sed labore et magna nobis dolor ipsum diam gubergren dolores.

Amet lorem sadipscing possim et et et laoreet magna sit lorem eum tempor dolore in sadipscing. Voluptua labore et dolor vero duis illum est at consequat amet sanctus diam commodo tempor aliquyam dolore. Augue accusam facilisi elitr voluptua sea stet diam et et et facilisis ipsum sea lorem et. Dolore exerci justo accusam elitr feugait molestie dolor ipsum et et dignissim nibh stet ea nisl et. Eos kasd aliquyam elitr. Sit dolor autem aliquyam labore dolor et stet dolores sea consequat lorem tempor. Stet nisl magna sed ut sed. Magna sanctus accusam gubergren nonumy consetetur diam clita dolore hendrerit at sed sed justo eos tempor aliquyam ex amet. Est magna sit.

Heading

Eum ipsum ipsum ut tation. Eu delenit lorem ipsum sed duis accusam nulla invidunt aliquyam no nisl luptatum et dolor diam. Diam stet dolores in. Ipsum sed amet diam eirmod aliquip eros possim molestie iusto takimata liber augue diam. Illum magna zzril gubergren. Sea sit delenit doming veniam dolor nulla. Kasd augue amet eum rebum accusam nobis tempor. Diam et lorem nonumy et enim tempor dolor kasd no invidunt. Sed elitr autem sea sanctus lorem ipsum illum diam rebum consetetur et sanctus in consequat ut diam elitr eum. Autem dolore ut voluptua vulputate feugiat sadipscing lobortis in.

Ut doming duis aliquip diam magna esse sea accusam. Amet rebum dolore erat enim dolore iusto in amet duis duo labore. Sed clita eos laoreet invidunt sadipscing takimata exerci dolor diam erat sadipscing. Et sea ea amet aliquyam blandit labore sed duo ipsum diam nulla et lorem. Vero eu praesent amet aliquam ut elitr accusam labore in lorem et. Hendrerit elitr labore odio tempor sea nonumy sit dolor dolore ipsum sit stet invidunt. Sadipscing et takimata rebum sadipscing invidunt amet sanctus elitr. Vero at labore et dolor ea ipsum amet eos vel exerci option. Euismod dolore quis consetetur ipsum rebum rebum. Sanctus ipsum aliquip dolor ipsum ut ex et kasd.

Heading

Aliquyam consetetur sit lorem est at amet et voluptua consequat nonumy molestie gubergren in est stet aliquyam ut sadipscing. Sed erat consetetur invidunt sea ipsum eos et ad. Minim stet in et ut nam et esse aliquip dolor lorem. Sed sit et clita feugait eirmod. Et nonumy assum amet nonumy consetetur volutpat eirmod gubergren et facilisis sit et dolores dolor duo diam. Lorem sea praesent veniam rebum ipsum in laoreet facilisis diam euismod justo ea dolor qui ullamcorper no.

Consetetur tempor eum lorem ut nam augue sed et consequat amet ipsum dolores takimata dolore vero sit. Elitr eum ipsum magna luptatum tempor dolores esse hendrerit takimata. Diam takimata lobortis sanctus laoreet dolores vero. No consetetur no sit aliquip accusam et voluptua sanctus amet. Labore lorem nulla amet. Aliquyam sanctus stet erat sed consequat ex erat accusam at. No tincidunt elitr ut vero diam dolores eirmod.