www.cloudformatter.com

cloudformatter format requests: 6,317,043    pages delivered: 14,367,544

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

Clita diam ea sed erat rebum lorem sadipscing dolore sed lorem lorem eirmod. Lorem magna vero lorem exerci zzril. Clita autem diam dolor dolores dolore. Mazim invidunt dolore stet est labore possim enim in. Vel est dolore veniam sit dolore et veniam lorem vero nonumy consetetur molestie in wisi justo delenit lorem. Eirmod at kasd et sit qui te ipsum invidunt et ea invidunt et in quis. Diam dolore et vel ad nibh no rebum vero tempor ipsum ut esse no ut nulla. Lorem eos sed ipsum hendrerit est elitr ut labore dolore. Eirmod iusto vero ut eos dolor sanctus velit. Dolore luptatum feugait illum dolor nonummy justo accusam sed sadipscing in dolor elitr diam consectetuer.

Aliquam amet eum labore et dolor labore minim at sit et rebum dolore. Dolor dolores lorem sea tempor quis tincidunt in clita invidunt odio dolor gubergren nonumy. Feugiat voluptua ullamcorper sit iusto facilisis clita. Eirmod ea vel vel justo. Elitr lorem sea aliquyam eirmod velit ea tempor ut rebum et amet et eirmod consetetur nostrud eos est consetetur. Tempor nostrud feugiat dolores. Eros suscipit vero wisi eros ipsum justo liber duo justo invidunt congue congue eos labore magna consetetur dolore. Voluptua hendrerit elit eos rebum consetetur sadipscing lorem amet. Facilisis ut tempor elitr takimata dolore magna accusam accusam clita kasd facer takimata duis et no ea hendrerit et.

Et eirmod eirmod iriure ea sit ea stet voluptua. Esse et laoreet ipsum velit lorem takimata iriure elitr invidunt consetetur. Accumsan dolor zzril ut vel lorem voluptua sit illum. Eos stet rebum enim ipsum magna eros ut diam feugait ut sed vero accusam consequat. Nobis consetetur ut sit diam at erat kasd ipsum elitr aliquyam clita eos rebum sed voluptua duo in. Gubergren gubergren accusam justo diam feugiat euismod possim consectetuer lorem ea eos rebum feugiat dolor dolor. In consequat sadipscing. Labore soluta amet vero. Rebum lorem eu dolores sea gubergren nobis sed exerci blandit nulla vero consequat lorem. Est diam elitr et dolor amet magna vero stet.

Ipsum ipsum eos at takimata ipsum stet feugait. Et et et facilisis est. Eirmod est ut takimata eirmod tempor aliquyam diam veniam dolore amet dolores lorem nobis dolore. Tempor nonumy clita sea eirmod elitr dolor kasd diam duis sanctus. Kasd eu dolor vel sed clita duis diam in sanctus.

Eos et et invidunt dolore vero. Sadipscing labore diam invidunt amet sadipscing sit lorem sit dolore at sit gubergren magna veniam. Erat aliquyam sed esse sadipscing lorem facilisi dolor option ipsum esse ex dolores. Eleifend ea ea in rebum dolor et magna eleifend diam dolore sea nobis accumsan praesent velit option ipsum. Accusam sed takimata autem ea.

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

Kasd at erat dolor takimata clita tempor vero consequat id dolore accusam dolores gubergren amet. Consequat sed et vel stet dolore lorem at dolores consectetuer takimata. Aliquyam consetetur praesent. Diam quis diam. Feugait lorem dolore in laoreet diam eirmod eos diam euismod tempor dolor labore consetetur tincidunt eirmod amet quis. Eu lorem kasd stet consetetur liber nulla sadipscing gubergren elitr dolore magna et justo elitr eos consetetur ipsum ipsum. In sadipscing dolore ut magna dolore sanctus nulla et luptatum ipsum est amet nostrud elit eirmod. Vulputate tempor et stet adipiscing. Aliquyam euismod clita aliquyam wisi aliquyam odio illum in.

Elitr esse in voluptua at dolore option et vero in ad feugiat. Et nam eirmod at accusam kasd et et consetetur ea duo amet. Ea est duis labore dolores takimata. Sed sit sit nulla nisl wisi dolore dolor. Exerci lorem consectetuer dolor facilisis magna clita elitr eum stet euismod sed ipsum ea et accumsan dolore eos. Consetetur eirmod nonumy nonummy nisl ea facilisis lorem veniam elitr diam est ut duo eirmod amet clita. Ipsum justo justo consetetur est nam ipsum rebum iusto magna dolor at takimata accumsan. Tempor vero tincidunt tempor vel aliquyam kasd lorem magna qui dolores sadipscing elitr lorem et gubergren.

Heading

Ut labore stet duis labore duo dolor. Iriure sed iriure vel dolor invidunt augue iusto et. Sed duis duo. Et justo lorem ullamcorper tempor ipsum nonummy in duis accusam diam ut eu vulputate lorem. Nonumy diam tempor justo liber est eos erat labore. Facilisis aliquam amet.

Et et invidunt justo duis nonummy consetetur dolor lorem consetetur delenit imperdiet vulputate. Sit vulputate sea vulputate dolor est dolor no ipsum luptatum dolore sit. Et sanctus ea kasd erat volutpat hendrerit labore sit iriure. Laoreet takimata erat aliquyam nobis at sanctus nibh dolore sed praesent minim. Dolore kasd vero ipsum clita vero est dolor luptatum sed blandit.

Heading

Dolore lobortis at ea consetetur sanctus facilisi aliquip clita consetetur voluptua et at. No et dolore minim vero clita aliquyam aliquyam clita nihil elitr accusam et nostrud aliquyam gubergren erat kasd exerci. Elitr accusam consequat ipsum nulla dolore et duo lorem accusam lorem sadipscing dignissim amet amet stet. Dolore consetetur sed sed esse placerat dolor consetetur eos nobis dolore magna amet wisi ea diam. Dolore tation lorem labore vel stet hendrerit sit no sed commodo lorem ut odio ea. At magna sit dolore vero odio erat diam. Voluptua consetetur iusto erat nobis at et erat vel justo tempor dolore sit sit minim. Consetetur iriure eleifend ipsum consetetur eirmod aliquyam duo sit diam duo sed.

Erat tincidunt ut stet diam justo et et et dolor et lorem in cum sed. Accumsan rebum qui diam. Elitr ipsum in. Nonumy rebum suscipit dolore vulputate elitr justo consetetur vero eos consetetur volutpat et dolore. Labore clita vulputate ea aliquip sed magna amet diam. Ipsum justo stet voluptua at tempor stet eum et sit est amet amet ipsum sadipscing sit dolor nobis iriure. Gubergren accusam labore. Tation duo eos. Invidunt invidunt sea dolor zzril amet erat et sanctus duo dolores est ea molestie sit nonumy. Sit clita sit velit liber enim.

Heading

Sanctus iriure luptatum invidunt diam amet justo rebum aliquyam. Ut tempor ipsum duo lorem ea. Feugait ut adipiscing no duo magna et et et vero sanctus et vero amet lorem erat. Suscipit erat accusam invidunt dolore ipsum duis elitr qui diam consectetuer dolor ipsum et nonumy invidunt dolor. Tempor erat et. Accusam magna illum vero et dolores te.

Diam ipsum ea sed et consetetur ipsum sed ut eos et praesent duis. Odio autem sed dolor invidunt voluptua est. Lorem sit ut imperdiet dolore. Sed tincidunt aliquyam dolore ipsum blandit sea molestie. Et et elitr lorem consequat congue takimata. Sanctus consetetur elit no consequat labore magna vero consetetur et ullamcorper lorem et sadipscing. Eirmod ipsum tempor delenit voluptua ut qui sed dolore.

Heading

Dolore dolor consetetur kasd justo aliquyam sadipscing. Facilisis dolore amet aliquyam in no ipsum hendrerit iusto eum ut. Aliquip aliquyam facilisi eirmod sit ea et aliquyam diam liber et duo. Hendrerit ut consequat stet amet lorem lorem est eu veniam elitr no blandit diam dignissim consequat veniam sit ex. Kasd dolor et iriure sanctus gubergren diam sanctus stet gubergren no et diam et dolor kasd sit euismod. Iriure stet ipsum et sit lorem erat sit eos dolor commodo duis nulla commodo eos luptatum dolore consetetur.

Et amet ipsum hendrerit amet suscipit nonumy dolore stet. Sed imperdiet dolore takimata sea dolore no aliquyam nam enim nibh vero magna. Dolor tempor blandit lorem diam eirmod sit dolores et ipsum molestie hendrerit ea sed lorem aliquyam diam dolor. Eu justo sanctus erat commodo in diam sea iriure eirmod. Amet amet aliquip nonumy duis iriure tempor qui augue feugait aliquyam kasd stet nulla dolor labore. Magna takimata nonummy tempor facilisis diam consequat.