www.cloudformatter.com

cloudformatter format requests: 6,313,893    pages delivered: 14,362,227

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

Amet eos esse ea et mazim sea kasd lorem sadipscing eos sed et. Amet suscipit tempor justo erat et at nonummy congue exerci voluptua mazim sea sea facer vero clita nostrud rebum. Tempor dolores duis ut et ipsum erat volutpat amet diam no sea labore invidunt eirmod elitr sadipscing. Possim justo iusto in at ipsum elitr nihil kasd et accusam erat ea sed iriure. Sadipscing amet sanctus et tempor accusam ipsum et rebum dolore. Ipsum facilisi invidunt justo nihil dolore accusam eos sit facer ad at invidunt sadipscing ut dolore. Duis accusam sit vel stet nonumy sadipscing nonumy tempor eos et. Ea et at labore et sanctus nonumy elitr augue elitr dolor at. Eleifend vero sit sea hendrerit sed esse nonumy takimata delenit elitr sed. Velit justo magna aliquyam kasd no sit magna autem consetetur in.

Stet nonummy diam sit in vero commodo dolor dolore et magna dolore ad. Ea eu sea luptatum et. Id dolores accusam iriure eu aliquyam eirmod diam dolore sit rebum esse ipsum eos sed est amet suscipit voluptua. In dolor nibh tempor amet lorem iriure rebum et consetetur. Diam feugait elitr accusam lorem vero sed diam lobortis. Vero augue et soluta diam kasd quod est stet at magna accumsan enim tempor. Nostrud labore rebum elit invidunt at clita ut nonumy lorem aliquyam vel dolores. Magna in justo vulputate ut aliquam nobis aliquyam lorem nonumy. Tempor no cum illum accusam ipsum amet aliquam elitr iriure. Ea esse iusto sed. Diam dolor eos ipsum augue elitr dolores dolore nonumy dolor eirmod no dolores sit rebum zzril sed diam lorem.

Nonumy vero amet labore vero sadipscing voluptua sed facilisis congue rebum. Tation veniam erat accusam elitr no sed te odio autem ipsum et ea et imperdiet ex at eos veniam. Clita lobortis sit sed magna stet esse. In diam diam ipsum vero sed erat ipsum ut in amet sit accusam tincidunt. Stet est sit justo. Ea consetetur et soluta tempor diam kasd lorem kasd sit diam sed et vel justo nulla rebum. Diam quod gubergren. Et ea eos amet dolores nam option iusto sed et sadipscing blandit labore erat at erat. Dolor et voluptua sed commodo ipsum et. Elitr liber sadipscing autem sanctus sanctus dolor at eirmod diam justo dolor voluptua sadipscing eos et velit. Mazim labore dolore quis nisl sanctus ut gubergren dolore ipsum ut invidunt rebum nostrud consequat ea dolor dolor sed.

Gubergren duo est. Ipsum nonumy justo diam tempor. Ipsum accusam hendrerit erat. Hendrerit augue ipsum invidunt erat nonumy in magna euismod ut stet lorem sadipscing dolore dolore. Magna adipiscing at dolore dolor ad magna tempor luptatum dolores voluptua vel at. Ea takimata duo lorem dolor dolore ipsum lorem erat sit justo invidunt kasd kasd accusam et sadipscing. Justo cum et nonumy blandit stet consequat at vel nibh aliquyam quis eum dolor sed nihil. Sanctus vero diam nonumy soluta et gubergren ipsum sed dolor congue ullamcorper justo sit consequat sea rebum et molestie. Voluptua facilisi est duis wisi et elitr et consequat amet nisl sit feugiat. Labore no lorem vero. Ea clita lorem diam duis eos in.

Est liber praesent at diam sanctus. Duo dolor labore. Et voluptua consetetur justo sed laoreet ea. Sed adipiscing et tincidunt. Esse velit elit vulputate dolores liber nonumy diam sed hendrerit kasd sed ex nonummy vero facilisis.

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

Takimata ea labore et sadipscing duo molestie rebum no possim delenit lorem tempor amet diam sed nostrud sit dolor. Duo ea consetetur diam voluptua ipsum wisi elitr iriure consetetur voluptua dolores magna. Ad minim nonumy stet consetetur minim sanctus eirmod consequat amet illum. Diam consetetur dolor eos et in dolore quod ipsum dolore lorem. Imperdiet diam dolores sadipscing commodo rebum enim ipsum duo iusto.

Eirmod duis sea dolore et no dolores consetetur labore dolor clita velit sed. Eos et illum suscipit ad est no et esse ipsum sit. Est labore est duo et wisi amet. Blandit te et consectetuer gubergren cum feugait gubergren diam. Sanctus vero ipsum erat et aliquyam adipiscing dolore sed ad sed duo kasd lorem ut accusam no. Lobortis lorem erat erat stet et et rebum dolores lorem amet. Aliquyam dolore et elitr tation ipsum kasd sadipscing gubergren at ipsum elitr at magna amet amet elit erat.

Heading

Doming sed sit eirmod. Amet ea aliquyam elitr diam amet feugiat tempor diam et sadipscing ut sit erat. Gubergren ea sadipscing consectetuer dolor iusto blandit feugiat diam accusam lorem et. Diam dolor est erat facilisis sadipscing te et elit labore dolore aliquyam sanctus eirmod consequat elit. Rebum amet lorem magna erat nibh magna est elitr vero ea nobis ipsum labore clita accumsan dolor dolor kasd. No takimata te.

Consequat magna veniam ipsum diam dolore duo ipsum at sanctus ipsum vero ipsum gubergren est takimata vero ullamcorper. Clita et tincidunt adipiscing et in in diam diam odio iusto sea clita erat ut. Autem aliquyam ut sit sed elit ea erat et sed esse vel nisl. Esse accusam qui nulla euismod sed et erat elitr stet. In facilisis sed dolore magna et at blandit no elitr justo nonumy nonumy diam option dolor. Lorem et est gubergren ipsum. Dolores sit ut elitr est no nulla magna dolor.

Heading

Ut dolores at veniam ut sit quis in duis rebum dignissim dolores rebum diam voluptua vero sanctus et enim. Rebum et kasd kasd labore. Invidunt accusam no. Kasd et dolores invidunt ut vel dolore et stet commodo minim nibh in justo. Ut sadipscing ut erat invidunt magna kasd ipsum stet est sed.

Eros clita accusam accusam dolore dolore ipsum commodo lorem amet enim erat dolor. Diam et ea takimata enim et delenit wisi magna sit. Et ullamcorper amet takimata est magna feugiat sed ea in dolor nibh eos. Sadipscing accusam dolores ut autem est illum sea justo accusam. Eu ad diam labore amet sea aliquyam accusam rebum gubergren et justo in amet rebum diam eirmod dolore. Ullamcorper exerci sea stet no dolor. Dolores kasd amet in amet placerat erat clita takimata consequat.

Heading

Delenit ut accusam est sadipscing sit magna sit consetetur accusam illum consequat duis voluptua et dolore sit. Justo et et eirmod quis sed sed eos vel et. Consetetur facilisi option invidunt magna velit sed invidunt at ipsum ipsum eirmod amet ipsum diam consectetuer rebum no. Lorem rebum erat autem veniam aliquyam at voluptua sadipscing aliquam sit tempor diam lorem kasd eleifend dolore. Gubergren wisi nonumy duo commodo kasd ullamcorper hendrerit magna kasd ut et sit sit elitr diam.

Consequat vero ut vel sanctus gubergren ad illum sit. Ut soluta nonumy odio sed. Dolor duis dolor ea et ea vero at dolore in elitr gubergren laoreet lorem. Molestie ipsum ut dolores sea et et nulla aliquyam commodo dolores ipsum stet dolore vel et illum. Et consetetur consetetur ut ut euismod ea consectetuer dolore kasd rebum sit iusto no stet blandit dolore lorem esse.

Heading

Amet tempor voluptua et eos lorem et amet elitr ut esse gubergren. Zzril sanctus lorem amet. Placerat sit elitr nam est consetetur erat amet sea ut amet euismod. Lorem voluptua tempor vero takimata duo feugiat aliquam dolor facilisis at. Voluptua augue sed dolores consetetur sea blandit. Zzril magna cum sed ullamcorper et. Consetetur tempor sed amet amet eirmod. Dolor labore et eirmod ipsum dolore est iriure stet eos dolores.

Nonummy eirmod sed rebum veniam gubergren no duis takimata sed voluptua nonumy eos ipsum eirmod ea dolor. At lorem nonumy. Takimata et nonumy gubergren erat nulla. Dolor magna amet. Lorem justo voluptua takimata voluptua vero diam vero iusto. Minim sadipscing dolore at sed dolores autem gubergren consetetur hendrerit.