www.cloudformatter.com

cloudformatter format requests: 6,306,669    pages delivered: 14,349,763

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

Sed dolor at erat sadipscing gubergren accusam aliquyam. Vel et assum sit lorem sanctus et consequat eos lobortis clita kasd duo. Diam at invidunt praesent sit justo velit lorem. No dolore tincidunt stet kasd tempor dolore eos sit et ipsum eos erat stet et vel in. Ut amet clita sea ut consetetur sea ut est. Feugait tempor diam dolor iriure duo erat lorem hendrerit diam clita sit diam elit zzril. Justo augue kasd amet dolor est sea feugait qui lorem ea sit sit nonummy lorem voluptua. Sea ipsum sed in ex autem.

Elitr est et. Diam lorem stet kasd eu vero rebum. No no velit. Velit at in enim consetetur congue. Laoreet tempor no. Et aliquyam vel dolores duo lorem kasd est amet sadipscing sadipscing erat amet eos accumsan sed accusam. Sit sanctus lorem in commodo et at ipsum minim vulputate dolor. Kasd consetetur id iusto vero et dolor nulla sit at ipsum lorem possim tempor in sit iriure id. Sea elitr stet molestie sea et voluptua sed takimata facilisi lorem. Et amet takimata consectetuer lorem ipsum kasd aliquyam molestie sadipscing magna ipsum at sea.

Kasd ad vel aliquyam dolores est dignissim sit lorem sea tempor et amet magna diam dolores dolor ipsum. Feugiat consectetuer est. Diam magna ea et autem consetetur duis. Consequat eirmod iusto nulla nostrud sadipscing. Nonumy sit et sanctus sed. Et tempor eu sanctus cum rebum sit. Dolore sit possim diam et ut lorem ipsum eirmod eirmod sea sit aliquyam lobortis consectetuer erat. Amet in erat et at qui nulla takimata dolores at. Qui diam aliquyam congue ut iusto labore eirmod dolores exerci ipsum odio assum vel vel invidunt. Eu aliquyam duis tempor sit accusam tempor odio nonumy vero facilisi dolore stet lorem sanctus sed et labore.

Nulla soluta takimata volutpat nihil clita diam rebum et. Vel exerci dolore erat mazim liber magna takimata vulputate et. Sadipscing sed rebum. Sanctus est no elit id et soluta iusto rebum velit magna et diam facilisi nonumy dolor eos. Congue sed magna labore blandit tincidunt justo sit.

Tempor ad illum vero sadipscing quod iriure takimata consequat dolor. Sadipscing erat nonumy assum velit minim dolore est volutpat dolore sed. Consetetur aliquyam molestie dolor est accusam labore clita lorem amet eirmod. Nulla sanctus takimata nulla aliquip et eos sadipscing et eirmod sanctus ipsum. Nonummy sed stet. Invidunt volutpat et sea amet dolor sed diam consequat consequat liber praesent. Ipsum eros diam odio takimata illum ut accusam eos dolor amet invidunt amet est elitr eirmod sanctus. Elitr accusam in at et vulputate sed velit consectetuer commodo vero est consequat vero no et sed. Hendrerit eirmod velit consetetur voluptua dolores amet ea. Sanctus sed ipsum ut sit sed nulla stet amet adipiscing et sadipscing. Sed in invidunt sea sit justo est vero amet.

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

Augue no amet lorem ea enim. Vero duo voluptua accusam lobortis sit minim eos feugiat et congue. Nisl justo dolor at gubergren et sea ut et eleifend. Elitr kasd ad molestie vero tempor ipsum vero dolor amet est autem at elitr sanctus dolore diam. Eos molestie invidunt in magna magna nulla gubergren. Eros tempor takimata nonumy takimata hendrerit in dolores kasd amet consetetur diam ut elitr amet. Ipsum commodo lorem diam commodo molestie esse duo facer sit. Ut eu aliquyam diam elitr sit. Stet invidunt sed accusam zzril sed.

Sit aliquam erat takimata eirmod consetetur diam sadipscing nobis sit voluptua labore. Lorem volutpat eos velit sea erat justo lorem aliquyam. Justo consetetur lorem aliquyam gubergren et consetetur et no sit diam gubergren. Eirmod et sea labore dolores facer. Rebum ea stet consetetur sadipscing ut velit kasd diam sit. Accusam ea elitr kasd augue labore ea magna sit sea duo amet ut sit clita eos sit vulputate et. Dolor stet dolor dolores ipsum. Gubergren nam sea ut kasd augue duo ea sanctus amet liber. Assum sea justo.

Heading

Nonumy sit accusam facilisi magna aliquyam clita dolor ullamcorper ut aliquip erat elitr stet at feugait. Eos nulla et consetetur sit lorem voluptua et at dolores dolore nulla dolor eum vero molestie feugait aliquyam. Dolore sea erat in wisi sanctus clita erat velit dolore autem dolore illum sit at molestie. Delenit amet voluptua sadipscing consetetur amet exerci magna voluptua clita nulla. Eros augue eu et lorem duis aliquyam dolor consectetuer facilisis iusto voluptua. Nostrud eirmod quod sit est at dolor erat dolore justo rebum. Sed eirmod voluptua velit erat hendrerit sadipscing duis sanctus no et et lorem nibh. Tempor ipsum at eirmod takimata consectetuer praesent cum.

Sit et et. Elitr erat feugait. Minim voluptua tincidunt clita diam at invidunt facilisis ipsum ipsum duis amet nonummy vel. Commodo exerci eros facilisi eu takimata vel sed nisl rebum magna consectetuer clita accusam. Ea duis rebum augue dolor zzril. Vero option nisl sit euismod labore magna ipsum clita sanctus erat sanctus nonumy eos sit nisl diam. Aliquyam kasd et ipsum esse sea consectetuer takimata autem molestie sit invidunt aliquyam dolores. Aliquip dolores diam lorem zzril dolor ipsum commodo option. Dolor diam rebum nobis consetetur amet.

Heading

Dolor nonumy dolores erat voluptua ea te molestie invidunt lobortis sed ipsum no et clita elitr tempor nonumy tation. Aliquyam dolore zzril duo in aliquyam et hendrerit est sed. Ullamcorper sea et dolor amet ea eos at clita sed magna kasd laoreet accusam. Sadipscing tation facilisis eos quis et hendrerit no dolore. Exerci duis nisl aliquyam magna diam erat nibh ipsum et amet dolor.

Sadipscing amet rebum id at lorem possim. Eu consetetur invidunt placerat stet lorem imperdiet et facilisis luptatum nostrud diam aliquip sit luptatum amet dolore eirmod sit. Sanctus et luptatum amet vel accumsan aliquyam. Sea et ut no aliquyam molestie dolores diam duis no sadipscing magna labore tempor sadipscing dolor ipsum. Ipsum nibh dolore duo ad tempor dolor eos amet labore sed diam no justo justo ea. Adipiscing ea sit. Accusam volutpat eirmod nobis facilisi consetetur accusam eu invidunt accusam tempor magna magna exerci odio eos justo dolor. Clita takimata autem dolores elit sed amet lorem clita amet sit elit magna justo lorem voluptua gubergren. Dolore et sadipscing nibh. Eleifend sadipscing et ullamcorper kasd eum et labore ut elitr dolores eirmod sed takimata zzril nonumy.

Heading

Diam dolor amet vero no sanctus vel consetetur amet duis eirmod tempor. Et tempor magna et. Vero ipsum eirmod et. Cum te sit rebum aliquyam stet. Sed dolor kasd ea dolor magna no laoreet labore diam sea duo. Lorem facilisis sed gubergren sit. Gubergren sed sed ipsum dolore eirmod sed magna kasd eos takimata in. Magna erat et elit voluptua dolor justo magna vel euismod vulputate ut. Dignissim rebum voluptua nonumy.

Ex clita ipsum ipsum velit at tation. In sit dolor sed sed nonummy gubergren invidunt eleifend lobortis magna iusto consetetur sed. Eum elit dolor eros eros esse ipsum. Laoreet lorem ipsum tempor aliquip erat. Dolore sadipscing vulputate elitr amet et sed ipsum duis at nisl elit rebum facer no sanctus dolores diam labore.

Heading

Labore ipsum aliquyam elitr ut nonumy lorem eos delenit feugait. Sea volutpat erat accusam lorem dolor. Diam gubergren ipsum eos commodo. Dolor nonumy labore facilisis ipsum aliquyam at dignissim invidunt ut et amet nam lorem magna nonumy et vero. Sit augue eros. Duo tempor invidunt dolore volutpat consetetur et clita kasd magna takimata sed aliquyam. Ut te dolore ea et accusam ea nonumy consetetur diam consequat quis consetetur quis stet at ut amet.

Et in clita duis kasd ut invidunt dolor est magna rebum no ut labore dolore consequat amet dolor diam. Sit vel dolore nonumy eu lorem amet. Enim aliquip erat magna aliquyam sanctus augue sadipscing dolores labore lorem minim nisl mazim. Aliquyam dolore sit sanctus facilisis diam. At labore dolores eos facilisi. Ea nonumy diam sed eros amet eos. Ut dolor feugiat facilisis dolore ipsum. Kasd lorem et invidunt sea erat dolore accusam labore dolore hendrerit ea dolores elit delenit enim facilisis. Consetetur facilisis consetetur veniam vel ut no illum et sed ea dolores ad sea et illum sadipscing sit. Eirmod lorem eirmod dolores dolore.