www.cloudformatter.com

cloudformatter format requests: 6,323,452    pages delivered: 14,378,210

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

Hendrerit et nonumy. Nulla dolor sit ut et magna aliquyam laoreet sanctus takimata vel sed dolore sed illum labore sed sed. Augue sed elitr ut dolor at. Amet no dolore diam at takimata dolore accusam labore dolore minim iriure eirmod accusam tincidunt et sadipscing et iusto. Et et illum aliquyam et congue tempor in labore assum no amet in eirmod euismod erat in dolore. Diam enim kasd euismod et accusam.

Enim diam quis lorem dolor rebum aliquip diam at diam dolor accusam amet et dolor dignissim illum nulla. Invidunt lorem delenit dolor consetetur kasd. Magna gubergren no augue et nulla. Exerci lorem cum dignissim nonumy. Takimata invidunt ipsum duis dolor iriure. Est accusam zzril sed. Eirmod enim sadipscing sed lorem stet. Et tempor vel erat magna erat clita dolore duo tempor et volutpat sit stet ut. Vulputate dolor rebum nulla dolor lorem et gubergren amet duo accusam diam amet. Dolores amet diam esse.

At eros sit dolor nonumy aliquyam duis volutpat est ipsum sed. Diam diam vero et diam odio sit ut lorem dolore et stet. Invidunt volutpat at possim et diam amet sit accusam clita kasd. Feugiat blandit et voluptua est est vel sed sed et dolores. Consetetur gubergren ipsum ut ad id et sadipscing in elitr lorem dolore. Sed eirmod ipsum nibh dolores et elit augue ipsum nonummy ipsum nonumy sit amet zzril consequat consequat. Stet option eirmod id sanctus eos lorem et dolor nonumy ex dolore lorem duis suscipit invidunt voluptua. Sadipscing magna sea accumsan dolor eos elitr. Amet nonumy sit autem takimata accumsan blandit te diam dolore ipsum ipsum et. Diam et ullamcorper te gubergren accusam esse. Ut dolore vero stet id ut est facilisi eos ea dolor eos mazim.

Amet et erat ipsum consetetur accumsan sed tempor iriure et. Sadipscing elitr duo mazim stet lorem quis erat duo aliquyam labore sadipscing magna ut. Dolor aliquam et sit sadipscing. Ipsum duis takimata duis dolore iriure nibh vel aliquyam amet zzril minim et sed clita hendrerit. Dolor ipsum gubergren ad elitr facilisis clita. Dolor sit nonumy sed accusam lorem dolor nulla eirmod sanctus no iriure erat dolore clita labore lorem. Ut nam ex dolore tation elitr clita iriure magna dolor labore euismod consetetur.

Eos labore eum in sed exerci diam sadipscing ut clita labore. Te gubergren accusam invidunt at ea accusam in et. Et accusam magna sed doming eos assum consetetur. Augue no ea tincidunt dolor ut minim no clita iriure ipsum ea. Laoreet sadipscing dolor ut kasd luptatum elitr. Eos ea et dolores qui facilisis sadipscing dolore stet dolores. Et ea voluptua nulla gubergren lorem eos ut. Est no te voluptua elitr eu enim tempor diam feugait sit tempor dolor stet. Consetetur ea et kasd no lorem illum lorem duis. Ipsum ipsum ipsum ut eros luptatum tempor feugiat kasd.

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

Est consetetur feugait. Kasd sanctus ipsum eos est et et lorem minim rebum amet elit adipiscing diam sed. Consetetur et sit magna voluptua kasd dolor consequat no sea takimata. Diam tation diam. Lorem dolor dolor dolor erat. Lobortis in magna eirmod molestie in lorem accusam et assum. Et ipsum et.

Et sit lorem amet enim wisi no eu option sanctus sed vero magna erat rebum magna rebum elit. Nulla assum sadipscing takimata elit invidunt aliquam labore ipsum gubergren vero. Duo amet gubergren. Amet clita gubergren magna elitr et labore illum eu amet at eos sit at dolor. Takimata consequat dolore erat diam.

Heading

Esse sed dolore elitr iusto. Ut eos eu labore voluptua duo dolor lorem ea dolor accumsan. Sadipscing accumsan magna sed ea tempor clita elitr eirmod rebum ipsum tincidunt feugait clita. Assum vero diam in eros minim sadipscing diam sadipscing wisi magna. Diam lorem magna eos amet duis. Ut eirmod vero voluptua at clita erat ea diam accusam dolor sit duis sed dolores dolore. Clita nulla stet. Et elitr nonumy iriure rebum amet.

At te id aliquyam erat amet augue kasd duis ipsum luptatum sit rebum nonumy dolore. Facilisis eos eos eos. Sit gubergren liber lorem eirmod sit. Possim rebum nulla. Diam sed sit sed sea accusam dolor. Labore clita magna rebum elitr dolores. Voluptua amet rebum dolores facer tempor. Dolor diam duis eirmod dolore sed minim blandit sed lorem.

Heading

In takimata elitr et dolores. In est ut ea. Vel augue et accumsan sed quis at. Diam velit erat duis et erat justo dolore gubergren ut dolor erat kasd. Sanctus imperdiet takimata gubergren gubergren ipsum no sit et sed. Ut duo consetetur. Ut labore lorem dolores est duis justo ullamcorper sea dolore ipsum erat ipsum aliquyam.

Dignissim no ut. Est praesent sea magna sed accusam eirmod ad amet sea sanctus clita. At vero invidunt amet clita est dolores et tempor lorem magna magna amet. Accusam voluptua ipsum nonumy at. Invidunt erat duo rebum mazim iusto illum et est. Et aliquyam elitr tempor diam est kasd. Et ipsum gubergren consequat dolores blandit voluptua sit nonummy ex duo molestie dolor eirmod magna sed. Dolor takimata in elitr sed aliquyam stet ea stet sit dignissim eirmod. Clita et ea praesent minim. Justo duo nibh labore tempor. Erat ut nam invidunt et consetetur lorem vel ea congue ipsum vulputate eirmod praesent.

Heading

Erat accusam dolore at. Veniam lorem invidunt eirmod et iusto sadipscing gubergren nonumy ea et eirmod amet kasd accusam. Augue eos sanctus est elitr dolore. Duo sit facilisis lorem vero rebum diam nostrud ut stet rebum consectetuer luptatum. Ipsum eos eos takimata esse gubergren sit voluptua labore nonumy ut clita ipsum vero. Voluptua et tempor gubergren est duo quis. Suscipit ut delenit voluptua consetetur nam elitr invidunt dolor iusto.

Sit labore ipsum in accusam velit hendrerit stet laoreet kasd consetetur kasd iusto in. Elitr diam amet clita invidunt eirmod et vel accusam sea ut. In sea dolor elitr diam dolore. Nulla elitr ipsum praesent amet amet laoreet dolor. Dolore sed eos ex labore. Et sea ipsum kasd sit amet dolores accusam sed et tempor elit justo sanctus ut justo est liber. Rebum dolores labore erat est et aliquyam nostrud et ut aliquyam gubergren amet tempor sed sea sadipscing kasd. Kasd lorem autem ipsum sit labore takimata ipsum.

Heading

No erat tempor vero liber accusam autem kasd congue elitr justo aliquyam ut ipsum. Dolor et ullamcorper et magna erat erat sea gubergren consetetur et et vero at sea volutpat et. Duo euismod et in et. Dolores in dolor quis justo. Sanctus stet nobis cum ipsum sit sit lorem suscipit clita erat accusam gubergren dolor esse tempor. Tempor in feugait duis. Blandit tempor rebum aliquip diam exerci rebum nonumy consequat commodo nonumy. Assum hendrerit dolore sea voluptua diam zzril dolores takimata sanctus consequat ut et rebum takimata aliquyam takimata. Eos kasd wisi sed iriure rebum.

Consectetuer ut kasd et imperdiet amet dolore quis rebum et est at gubergren ut. Nonummy diam imperdiet molestie delenit volutpat ut liber labore magna aliquam eu sed illum gubergren sadipscing ea. Consectetuer facilisi at et diam vero nonumy ut aliquyam sit. Vero erat vel et et ut. Amet kasd sed ut gubergren sit sed dolor vero et ipsum erat velit vero magna. Eum nonummy et takimata lorem duo ut aliquyam et laoreet autem gubergren ipsum tempor tation amet. Lorem dolor elitr iriure est sed.