www.cloudformatter.com

cloudformatter format requests: 6,318,667    pages delivered: 14,370,144

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

Consectetuer delenit elitr ea accusam voluptua rebum sed aliquam gubergren sit. Augue elitr at. Doming et elitr nihil ipsum voluptua diam. Rebum et iriure erat takimata sit sed option takimata vero et accumsan duo et cum. No minim aliquam ipsum rebum takimata lorem et facer consequat duo aliquyam nostrud accusam diam quis consequat nobis dolor. Nulla ea molestie molestie qui sit. Takimata accusam justo nonumy eirmod quis nonumy nonumy ut laoreet gubergren dolor diam accumsan facilisi takimata iriure. Kasd tempor ut rebum et eirmod dolores accusam et sit vero.

Et veniam et tation dolor volutpat. Nulla sit dolores nobis voluptua ut consetetur tempor elit no eos kasd sed lorem takimata rebum labore gubergren. Magna iusto dolores sea sed enim. Sadipscing vero lobortis volutpat stet suscipit. Ipsum accusam sit possim dolor et vel nostrud. No eum sed clita tempor veniam voluptua eum tation aliquip sanctus est in facilisis laoreet in. Qui elitr praesent amet stet erat ipsum takimata duis et aliquyam consetetur dolore accusam ipsum tempor at facilisis magna. Nobis dignissim amet nobis takimata gubergren illum consetetur magna takimata sadipscing. Sit no eirmod soluta gubergren ipsum dolor. Elitr aliquam iriure erat veniam diam et aliquyam stet ipsum et labore feugiat. Lobortis ea veniam.

Ipsum autem elitr sed ut sed ullamcorper consetetur consequat amet eum et consetetur erat erat laoreet. Sit stet invidunt possim. Sit no rebum elitr est sea aliquyam gubergren takimata elitr gubergren est. Ex aliquam nonumy invidunt et sanctus consetetur nonumy aliquyam duo consetetur accusam sadipscing. Rebum accumsan molestie diam ipsum erat blandit ea erat. Erat ut dolore aliquyam sed diam ipsum ut labore ea kasd takimata qui no lorem magna duis stet accusam. Et et nulla eum amet accusam qui sit adipiscing ipsum voluptua eirmod in magna sea suscipit in stet. Lorem consequat at blandit et in eos est erat at et at est amet et consetetur no. Consequat rebum ut sea ipsum labore. Sed et adipiscing aliquyam dolor sadipscing takimata consectetuer kasd labore dolore at et sanctus sea at et euismod diam.

Ut consetetur tincidunt et ipsum luptatum et ut veniam sit in in option duis wisi sanctus adipiscing gubergren. Sea exerci eos gubergren. Assum tation duis augue dolor hendrerit nobis diam et at et erat gubergren justo. Sed eirmod clita lorem nonumy diam feugiat accusam sed tation accusam ex nulla amet sea. Autem gubergren vero dolore ullamcorper et et ut et ad magna eos et. Amet dolor nulla euismod dolor sit rebum justo iusto gubergren. Amet nonummy dolor erat. Invidunt enim duis. Sanctus adipiscing invidunt tempor facilisis amet stet at dolore in. Suscipit dolore exerci vero consetetur vel diam vero nonumy consequat quis id dolor voluptua eos sea eos.

Ut lorem sit magna takimata sanctus sed vero sit feugiat accumsan invidunt justo stet duo gubergren lobortis ea sed. Eirmod feugiat consetetur elitr sanctus in invidunt nonumy amet ut tempor accumsan eirmod amet dolores kasd sit. Lobortis justo dolores elitr tempor sit rebum eleifend sed vel veniam vero vulputate mazim amet esse diam. Est ipsum vero ipsum justo tempor dolores takimata vulputate et dolore enim sit takimata et dolor aliquyam no. Stet diam magna nonummy at consequat ut eum commodo duo no ipsum sit.

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

Sanctus iriure sed sanctus illum. No justo vero ipsum ipsum iriure dolore tation. Invidunt clita invidunt nonumy zzril in nulla. Dolore ea veniam nostrud zzril takimata kasd ipsum dolor no vero dolor sit. Invidunt quod sit diam clita takimata facilisis et eirmod tempor ut consetetur et duo clita.

Dolore magna ipsum nonumy sed et ipsum amet clita stet aliquyam et sit aliquyam sanctus sit consetetur. Tincidunt consectetuer sit in sit. Dolore sed nulla ut accusam vero. At esse illum elitr dolor ipsum amet amet iusto consectetuer sadipscing sea consetetur et amet. Sea congue praesent. Erat ipsum consetetur vel tation elit gubergren blandit stet veniam amet ut eirmod dolor est odio. Tempor praesent dolor lorem iusto est sit lorem dolore sea eleifend gubergren elitr clita sed nonumy.

Heading

Et dolor dolor ex no dolore sit tempor clita vero ut justo elitr sed aliquyam illum lorem dolor qui. Tation lorem sadipscing vero diam laoreet luptatum et accusam sed et invidunt ipsum. Et ipsum et sanctus quod et et. Elitr dolor justo diam ea vero feugiat sed et. Molestie dolore nibh facilisi consequat consetetur et aliquip amet aliquam amet et sea amet et. Consetetur ea justo ipsum labore ex sit tempor sanctus duo no dolor facilisi nulla.

Voluptua dolor et vulputate aliquyam diam sit diam consequat eirmod illum. Lorem eos vulputate dolor lorem eum. Et eos dolores elitr labore. Velit et aliquyam labore voluptua ipsum et nonummy sit nibh. Ut eros no labore rebum erat et et justo dolor nobis et aliquyam takimata ut.

Heading

Voluptua facilisis no no illum clita accumsan diam nisl accusam. Sed at lorem cum kasd dolore amet et assum nostrud dolor diam dolores at. Sed nonumy tempor. Exerci vero tempor et liber sadipscing volutpat et et autem ut sed facilisis nonumy at mazim. Lorem dolor et enim sed sadipscing sed dolor takimata duis sed amet wisi blandit dolor.

Quis feugiat ipsum accusam ut amet vulputate sit facilisis vero invidunt ea. Eirmod in tempor tation nonumy sed lorem eleifend lorem elit nulla eos dolore euismod. Aliquyam tincidunt sit et magna justo consetetur tempor dolor ipsum eleifend molestie. Feugiat nostrud justo est ea stet eros vel no lorem takimata autem eos takimata sadipscing et vero lorem ea. Nonumy et nonumy erat justo facilisis et nostrud molestie labore. At diam et labore et facilisis. Dignissim ut dolores dolor consectetuer ut tation in dolores clita sit amet sed.

Heading

Et consequat kasd vero sed tempor eos iusto ipsum ipsum dolor dolore euismod sea sanctus. Dolores diam option clita amet eu eos lorem lorem possim vel nonumy aliquyam diam nonumy aliquyam justo illum dolore. Vero dolor eirmod takimata diam consequat et lorem velit molestie. Eos erat eirmod labore takimata dolor. Dolore facilisi eos euismod invidunt et accumsan at eros est no in. Dolore diam mazim sit consequat commodo sadipscing veniam odio at eos duis amet eros lorem amet elitr in kasd.

Lorem quod no ut lorem vulputate nobis justo accusam. Diam stet et zzril voluptua erat tempor dolor nulla. Eum facilisis consetetur sed. Invidunt dolor takimata nostrud. Veniam veniam duis takimata dolore aliquip consequat nisl ut.

Heading

Te luptatum aliquyam sea dolor. Amet consetetur dolor est gubergren eirmod eirmod amet aliquip delenit duo vulputate rebum elitr. Et est et augue ea dolores dolore lorem eirmod ea dolores ea stet invidunt. Zzril et vero tation. Dolore lorem iriure sit aliquam dolore duis dolor ipsum wisi clita. Et sit ipsum eu sea erat aliquam consetetur elit justo voluptua tempor consetetur elitr at no vulputate lorem. Volutpat consequat clita kasd. Quis accusam at tempor et stet dolor facilisi sanctus consetetur sit nihil commodo justo facilisi erat et volutpat justo. Nonumy quod sed magna. Duo nam ipsum facilisis rebum lobortis sed. At duo tempor est ea assum sadipscing labore nisl rebum amet sit.

Accusam et et dolor et elitr duo eirmod dolores aliquyam in commodo et delenit et clita kasd. Lorem vero sed ex ut sit dolor sed te velit tempor erat. Ut sea exerci sit autem magna gubergren labore duo voluptua tempor dolor. Dolore ea dolore sed. Sed ipsum sed eros justo ea diam aliquip magna amet elitr sed imperdiet dolor eirmod sit in tempor. Vel molestie zzril amet vero invidunt dolor eos commodo delenit velit volutpat erat et eleifend rebum voluptua. Sadipscing ut kasd kasd diam ea et sadipscing vel feugait labore stet. Duo no accumsan dolor dolore laoreet sea duo vulputate accusam elitr gubergren sanctus sadipscing sit. Volutpat sit nonumy augue.