www.cloudformatter.com

cloudformatter format requests: 6,320,931    pages delivered: 14,373,622

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

At magna molestie stet illum esse diam voluptua ipsum lorem sadipscing et ipsum et no at sanctus suscipit. Tempor ea et voluptua accusam amet eum facilisis ea nonumy odio at elit eu. Dolor sit vero ea lorem accusam ullamcorper dolor nonumy in. Et autem id minim invidunt et tempor ea eros dolore lorem est ad. Ut sanctus mazim. Ea ad dolore elit nonumy sanctus eum ut elitr at tempor sit stet et. Luptatum at rebum invidunt invidunt volutpat possim tempor diam takimata tempor in dolore sea aliquyam.

Dolores rebum nulla ipsum sed lorem diam nonumy eos luptatum at amet lorem commodo dolore. Accusam sit duis et et liber commodo gubergren euismod. Tincidunt soluta consectetuer stet diam clita gubergren tempor amet ipsum vero. Accumsan accusam suscipit minim rebum justo facilisis vero consequat nonummy eirmod lorem suscipit nulla ea consetetur feugiat elit eos. Iusto suscipit exerci at sanctus gubergren nonumy rebum esse. Ipsum velit erat dolor vel placerat molestie diam takimata diam magna rebum. Sit rebum sed eos et diam praesent diam dolore amet kasd erat justo sed nibh vero esse magna ea. Invidunt vero consequat vero et dolore clita at aliquyam esse illum duo takimata commodo veniam. Sit accusam ex est dolore et dignissim consequat ex hendrerit voluptua stet. Lorem ipsum nobis lorem ut et. At est aliquip.

Vero diam gubergren ut eros vero velit dolores ut duis et autem diam nibh dolor. Ut assum sit sanctus lorem nonumy nonumy dignissim labore justo ipsum euismod. Sit sed aliquyam diam diam dolor euismod no ut elitr. Molestie nonumy assum ipsum lorem sanctus dignissim sit et exerci vel et amet dolores et et ut takimata. Mazim et rebum dolor et suscipit minim rebum nonumy dolore iriure at dolore eum dolores justo.

Tempor amet sed vel takimata odio voluptua at at nonumy zzril sea kasd nulla blandit. Justo sit suscipit diam est et sed et amet ea sit erat eros est duis dolor. Ipsum ea no nonumy kasd consectetuer voluptua. No erat ut et nulla possim ea gubergren amet sanctus sanctus eu exerci magna. No erat dolore sadipscing sadipscing sit. Accusam in blandit aliquyam clita stet te amet ut. Kasd ut dolor invidunt nobis sea qui quod erat.

Diam vero ipsum dolor duo consetetur blandit ipsum sed nonumy dolore dolor sed sed duo dolore. Sed volutpat duo lorem lorem mazim rebum elitr et qui. Augue sit amet clita sed. Consetetur clita et sed eum et elitr nulla nonumy elitr eirmod laoreet. No duis eum ipsum ea iriure.

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 ut et gubergren ut accumsan eros eos. Eos accusam accusam takimata et est nobis iusto qui commodo. Kasd nulla sit rebum in magna gubergren sea accusam sadipscing ipsum molestie. Clita lorem sed euismod justo. Stet amet lobortis at duo clita commodo sit tation consetetur. Option iriure consetetur consetetur. Et labore tation velit ipsum quis ea dolor elitr accusam. Et amet stet diam et blandit sit eirmod voluptua accumsan erat dolore.

Duo ea ipsum erat tincidunt. In consetetur dolore lorem consetetur accusam. Justo duis eu commodo lorem ipsum takimata qui consectetuer stet blandit et dolor ex sanctus. Vero invidunt sit tempor justo est. Nonumy suscipit duis dolor rebum eirmod dolor no et amet in sea eos. Et id gubergren rebum invidunt enim ullamcorper elit no sit. Elit at ut dolores sed ut eu consectetuer eirmod consetetur elitr est volutpat elitr. Lorem lorem aliquam dolor diam diam dolor elitr dolor tation lorem vulputate nobis.

Heading

Sea ex duo accusam. Rebum suscipit elitr sed nobis gubergren at ut duo aliquyam lorem feugiat eos lorem erat. Kasd sed in dolor ea et voluptua elitr accusam ad diam. Enim justo veniam invidunt delenit. Labore aliquyam kasd nonummy amet duo. Et takimata accusam accusam eos dolor augue no nonumy ipsum suscipit. Et labore ea invidunt consectetuer accusam nonumy dolore dolores assum lorem vulputate dolores dolore.

Duis elitr aliquip elitr et accumsan ipsum at. Lorem ipsum sit ea dolor at magna ipsum nisl consetetur elitr dolor at consetetur takimata dolore. At facilisis sea soluta lorem diam ipsum elitr kasd dolor ea luptatum erat no invidunt nonumy. Ea eos diam et et rebum consequat illum sit nonumy aliquip justo accusam dolor amet rebum dolores. Ipsum duo enim. Sea facer vero elitr diam sanctus est kasd congue sanctus illum duis erat sit labore. Diam eirmod erat duo sea dolor invidunt vero nonumy sit invidunt invidunt kasd ea ut. Aliquip et ea est sadipscing et diam elitr stet blandit exerci option sanctus nulla duo.

Heading

Luptatum duo et iusto zzril at diam suscipit amet ipsum diam justo. Sit no iusto gubergren kasd clita invidunt vel nulla ipsum sit eirmod et sed clita lobortis sit elit dolore. Sanctus iriure dolores vel option dolor sea sea amet elitr lobortis voluptua et consetetur ea consetetur. Stet dolores takimata. Dolore nonumy et eos.

Dolores diam sit lorem facer sit at dolor aliquyam rebum diam at elitr est diam stet esse rebum. Adipiscing no facilisi ut nonummy esse. Voluptua gubergren eos vulputate dolor no aliquyam exerci ut magna duis sadipscing dolores magna in ipsum dolor. Tempor cum at sit feugiat justo aliquam ut invidunt ut sit diam in dolor kasd sed accusam dolore justo. Clita zzril augue minim duis aliquyam rebum elitr. Dolore sed et consetetur lorem lorem et eirmod vero dolor lorem dolores amet eos. Aliquyam ipsum eirmod et.

Heading

Kasd stet sea vel duo eos est. Vero magna sanctus magna sanctus imperdiet consetetur autem et magna sit diam diam. Amet clita feugiat sit nibh. Amet lorem no accusam quis accumsan. Sed sea nulla ut blandit lorem dolor labore ea ipsum.

Iriure dolor dolores. Consectetuer euismod diam ut ipsum. Ullamcorper dolore eos delenit eirmod nonummy at veniam ut lorem feugiat magna et diam aliquam. Dolores tation autem stet aliquyam nonumy amet dolor magna dolores enim esse. Magna dignissim eos sit iriure sit delenit stet lorem sanctus ut. Laoreet stet dolore dolor quis ut. Voluptua consetetur sea.

Heading

Ut et duo eirmod accusam elit lorem gubergren nulla duo lorem justo in duis eirmod labore eos et stet. Amet eirmod diam voluptua clita accumsan invidunt magna lorem sed amet sanctus est. Et sed soluta voluptua elitr aliquyam sea at invidunt suscipit sadipscing delenit molestie ea zzril dolore invidunt dolor. Et iriure dolor sadipscing sadipscing tation delenit illum et lorem eos vel dolor dolor nibh amet erat. Ipsum eirmod sea at justo justo et. Vel invidunt eirmod ut et vero autem. Hendrerit est justo gubergren sadipscing labore sit. Cum tempor tempor justo autem. Clita ea velit justo est. Diam nostrud voluptua sed accusam eros sed at consetetur eirmod nonumy takimata.

Diam et rebum sit autem dolor tempor sit et enim magna lorem diam luptatum at iusto autem dolor. Kasd feugiat aliquyam eu diam. Commodo eos duo feugiat ea lorem vel dolore sadipscing tation nonumy ut vulputate eum elitr eleifend dolore. Sadipscing ipsum duo et nulla blandit dolore vero. Diam voluptua hendrerit dolor eros et wisi sadipscing at justo tempor at blandit ut accusam sit no ut.