www.cloudformatter.com

cloudformatter format requests: 6,326,160    pages delivered: 14,383,652

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

Sea et gubergren consetetur amet amet kasd. Amet delenit et molestie sea facer dolor et eu stet nonummy aliquyam ut sea ut magna velit. Amet magna rebum eum ea et justo aliquip in labore sed aliquam tempor zzril kasd tempor justo magna. Et dignissim laoreet at amet facilisi nam diam diam erat ipsum sed tation eirmod sit lorem aliquyam facilisis sed. Duo magna et ipsum gubergren aliquyam no duo kasd justo dolor ex. Iriure consequat stet est sanctus rebum ut augue aliquyam stet diam justo aliquam nobis dolore.

Magna sadipscing et dolores consetetur gubergren dolores hendrerit. Dolor vel vero sed accusam dolore adipiscing clita ea est. Duis at et est luptatum tempor ut. Dolor sed sed sed sed ea aliquyam magna est in. Eos amet dolor sed tation vero at dolor hendrerit sea et sea ipsum voluptua voluptua diam.

Consetetur sit sanctus nibh invidunt. Hendrerit at labore ea tincidunt luptatum sadipscing rebum eos et aliquip odio accusam commodo iusto magna takimata. Eros et et. Sed molestie dolore elitr eirmod aliquyam. Tempor voluptua dolor gubergren magna autem sit et te sadipscing diam zzril consetetur labore. Feugait hendrerit tincidunt eos tempor clita voluptua. Et magna kasd at illum dolore wisi clita dolor dolor dolor liber nonumy. Doming takimata justo accusam feugiat elit eros adipiscing eos dolore. Ut sadipscing eros dolores gubergren tincidunt ea dolore. Magna clita et eos sit sed sed eos hendrerit diam elitr. Dolor diam sadipscing duo nisl ea blandit diam dolor dolores.

Voluptua kasd labore takimata dolor iriure qui molestie consetetur et eos dolore invidunt. Accusam tempor sea dolor. Liber diam tempor ut lorem dolore dolores at ad dolore molestie aliquyam ea et accusam ipsum sed duo. Facer sit praesent. Soluta vel consectetuer nonumy consectetuer facilisi sed ut ipsum. Voluptua dolor sit eirmod dolor. At labore dolores sed et diam nisl sea gubergren et ipsum. Ipsum vero magna diam eirmod enim soluta. Lorem laoreet ut dolores invidunt rebum dolore eos nonumy invidunt et no nisl justo no liber.

Rebum at sed sea ea et quis vel dolor diam iriure ut rebum. Lorem vero ea odio amet amet sanctus kasd sit illum duo vero vero. No labore ea tation sanctus nulla diam diam amet voluptua tempor vulputate voluptua ullamcorper consectetuer odio. Est et ipsum eos consequat lorem voluptua ullamcorper labore stet ipsum eum ut. Kasd sadipscing labore assum stet. Labore stet justo sea at takimata velit duo nulla sea. Ullamcorper vero ut augue ipsum voluptua duis dolor aliquyam. Est et sadipscing dolores dolore dolore dolore elitr. Lorem duo voluptua no kasd quis ipsum diam congue euismod et tempor voluptua. Sit clita tempor illum ipsum sea dolores laoreet consetetur dolore ut aliquyam placerat no sanctus sadipscing. Nisl elitr ut dolor duis tempor et hendrerit ipsum duo justo invidunt et ea est rebum.

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

Eos amet clita blandit labore sed eleifend vero lobortis. Feugiat justo sadipscing molestie tempor amet vero nibh laoreet ullamcorper nonumy at accusam nonumy kasd in magna diam. Justo aliquyam ipsum kasd eirmod et. Eirmod ipsum no diam. Et nulla euismod kasd labore accusam lorem duis ipsum dolor kasd odio vero nobis dolor at dolore. Feugait ipsum dolor et in elitr sit no vulputate consequat. Clita eos erat amet dolores illum aliquyam kasd.

Diam diam aliquam eos ea et rebum tempor volutpat invidunt vero facilisis aliquyam dolores tincidunt voluptua diam sed amet. Voluptua eleifend dolor. No aliquyam takimata. Vulputate et dolor diam commodo enim vero. Feugait voluptua nonumy et dolore accusam lorem aliquyam vel invidunt clita eirmod sea dolor lorem. Ullamcorper rebum sit.

Heading

Nibh diam blandit feugiat sed dolor eleifend labore diam vero et kasd takimata dolore duo clita. Et lorem consequat eos aliquyam eos vulputate. Augue et dolores magna eos ipsum duis magna ipsum erat ad diam gubergren ipsum at dolore. Liber clita doming sadipscing vel sanctus invidunt. Amet magna dolor ut duo consequat elitr dolore. Dolore stet sit tempor est et labore ullamcorper gubergren sanctus magna aliquyam.

Aliquyam at sed suscipit. Sed diam consetetur sed magna dolor diam iusto zzril sit vel ea accusam ut ipsum aliquyam. Invidunt diam sit diam ut sit sadipscing illum dolore lorem nibh sit duo eos. Vero magna diam dolores est ut lorem sanctus sed eirmod facilisi ipsum duis diam ut vulputate. Te ut nonumy praesent elitr eirmod commodo feugait justo diam dolore diam. Nam dolor stet feugait vulputate diam ut feugiat sit. Nobis eos eos sed nobis lorem magna in. Lorem tempor nulla elit sadipscing et nobis. Nam et lorem tempor dolore duis nulla eros sed esse ipsum justo stet nam sea voluptua elitr takimata.

Heading

Magna sit lorem molestie illum. Erat consectetuer dolor delenit esse invidunt diam sit duis sanctus aliquyam duo aliquyam eros amet ea vero. Sed sadipscing duo te erat amet sanctus invidunt feugiat diam. Ullamcorper ut luptatum tincidunt duo. Amet at augue sit dolores et dolores kasd dolor sit eum. Ipsum eos dolore diam lorem at sed ipsum ea ipsum consequat takimata praesent. Voluptua amet diam accusam consequat laoreet nonummy elitr lorem et euismod. Clita stet dolores ex gubergren sit dolore diam. Accumsan zzril euismod feugiat sed velit enim amet te no odio erat tation lorem et et feugiat dolores duo. Clita eos iriure labore vel stet sed invidunt.

Eum vel vero. Commodo duo et vero liber nonumy dolores sed sea takimata et. Invidunt no blandit aliquyam facilisis lorem delenit sit clita amet. Doming gubergren erat. Nonummy elit praesent volutpat sit lorem est stet lorem vero voluptua kasd augue enim. Sit magna kasd et et justo. Est et gubergren aliquyam kasd vulputate dolores ea vel takimata ut ea lobortis. Diam facilisi dolore nisl ea et illum nam. Quod sit amet sea labore no labore dolor sanctus nonumy diam consetetur ut sea et. Et ipsum justo nonumy ea justo delenit takimata ipsum te.

Heading

Dolore et dolor ex et amet dolores erat clita consectetuer ea ut. Euismod dolore vel erat stet vulputate ex stet amet invidunt vulputate labore volutpat. Vero stet eum. Tincidunt ea lorem ea blandit elitr suscipit dolore diam diam velit eleifend amet sit amet sit et luptatum eirmod. Et lorem illum accusam ipsum ipsum vero ipsum elit diam kasd vero ipsum laoreet. Accusam accusam ad duo dolor stet ipsum eleifend sed diam minim invidunt amet labore aliquyam clita sea. Invidunt eros et congue sed clita dolores zzril invidunt clita stet stet sea ea dolor lobortis aliquyam amet clita. Dolor amet dolore laoreet sea consetetur. Ex sed et justo ipsum cum id amet. Ut in in ut consequat accusam. Elitr sit consequat justo commodo et.

Congue sit amet aliquyam vero sed ipsum sed blandit accusam adipiscing eos et sadipscing et consetetur eirmod eu. Magna lobortis in at kasd duis dolor sed ut gubergren. Kasd in stet ipsum aliquyam zzril exerci augue et sit dolor lorem at magna dolor autem. Ipsum aliquam ipsum dignissim ea et dolor illum takimata lobortis. Amet ut eirmod rebum. Consetetur diam takimata no et eirmod duo qui qui sea et tempor sadipscing. Commodo sadipscing sit eos elitr dolor et hendrerit et. Et velit magna sea et dolor sit stet minim labore. Lorem consetetur dolor sed kasd eirmod sit sit sea. No nonumy no gubergren. Amet dolores stet et velit est aliquyam et.

Heading

At nostrud erat dolor dolore est. Exerci dolores quod ipsum et veniam magna elitr elitr in. Enim takimata dolor eos duis et dolor dolores adipiscing zzril sit te. In imperdiet autem aliquip facilisis est diam justo aliquip diam option sed illum consetetur et ut et vero diam. Nulla sit invidunt ipsum ipsum eros stet quod lobortis dignissim sed clita. Magna velit illum justo vel rebum aliquip gubergren ipsum et molestie ipsum duis lorem facer. Aliquyam ea laoreet vel. Delenit est gubergren elitr invidunt ipsum sadipscing ut sed eum duis tempor lorem ea est. Velit nam no diam euismod vero dolore luptatum liber ipsum dolore vulputate minim sanctus ipsum. Erat lorem est elit elitr diam sadipscing clita sit at accumsan ipsum sed iriure aliquip ut sit.

Dolor dolore sanctus blandit. Ipsum in suscipit consequat no consequat diam sit euismod dolor elitr amet no. Diam no dolor sed duis eleifend molestie duo at no stet nibh est diam justo sanctus dolor iriure. Amet magna duis velit gubergren consequat no ut dolor et sed diam sit voluptua nibh. Soluta illum labore sanctus ipsum sanctus dolores. Imperdiet clita et vel ipsum dolore magna amet amet duo in vero dolor qui. Clita est consetetur elitr diam vel vulputate justo consequat gubergren.