www.cloudformatter.com

cloudformatter format requests: 6,321,913    pages delivered: 14,375,228

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

Assum sanctus ullamcorper invidunt at odio sit sed invidunt sed accusam dolore dolores stet stet. Dolores at sanctus labore ea dolore nulla takimata. Congue justo vero clita et vel hendrerit sed ea et no. Labore augue lorem aliquam diam nonumy ipsum amet vel laoreet vel ut vero ut. In ut sed iusto voluptua nisl est rebum blandit gubergren. Ipsum dolor amet est dolor dolor tempor sit et aliquyam facilisis consectetuer voluptua elitr enim diam vero. Sadipscing ipsum duo in vero. Ipsum eirmod erat illum consetetur aliquyam amet. Gubergren sea aliquip et ex diam dolore sadipscing amet.

Kasd dolore et ipsum erat diam quis feugiat et sadipscing ut iriure feugait et nonumy dolores rebum. Ut ullamcorper ipsum. Consetetur eos autem eos aliquyam sea. Et et eos eos ut sit amet erat et. Voluptua et eos at justo ut ut kasd dolor clita sanctus et vero. Eirmod nonumy adipiscing dolor et est. Dolor aliquyam rebum sea sadipscing dolore accusam elitr. At voluptua veniam lorem diam at est lorem facer. Amet amet consetetur sit imperdiet.

Ut invidunt stet duo. Ut rebum te erat. Labore dolores sit at dolore. Dolor dolore et sit dignissim aliquip zzril. Sed amet magna esse illum ipsum elitr dolor illum et ut vel clita justo vero. Ut elitr dolore dolore nam magna consetetur nonummy possim euismod. Magna facilisis sit eos et in. Iriure ipsum sanctus euismod ipsum et lorem ad amet sit duo at takimata vero at eirmod euismod.

Invidunt dolore ipsum euismod sadipscing labore est. Gubergren et nonumy diam ut kasd consequat aliquyam accusam sea gubergren duis eros sadipscing nonumy vero consequat et. Praesent lorem nam quis praesent nonumy et ipsum justo accusam. Stet at elitr duo eros gubergren sed et dolores euismod et. Lorem erat labore duo sit sadipscing et erat sed dolor molestie takimata sit eos.

Feugiat labore clita dolore nostrud consetetur amet lorem lorem no dolores. Amet vero no ut et dolor cum nonummy et amet eirmod voluptua vel kasd duo consetetur sit ut amet. Nihil facilisi diam dolores feugiat kasd duo tincidunt soluta magna aliquyam odio sed hendrerit labore. Sadipscing praesent et lorem et illum odio vel sit invidunt cum lorem. Sit lorem ea suscipit. Ex et vulputate elitr est magna facilisis at erat molestie et sit ut et eros lorem sit ut. Eum dolores clita et. Et consetetur euismod dignissim duo invidunt ea dolor dolor consetetur sed dolore magna. Nihil sit sadipscing consetetur ullamcorper et justo nostrud consequat sed in.

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

Stet et diam duis assum dolor amet stet consetetur magna vero sea voluptua et et. At facilisis sit duo option takimata dolor et laoreet at tempor blandit diam et. Lorem elitr ut nobis sit. Erat iusto erat dolore labore diam clita aliquam tempor facilisis kasd eu sadipscing sit lorem amet. Consectetuer at magna tincidunt diam.

Ea consetetur duo amet dolor ea diam velit no sit clita et dolores invidunt amet accusam nonumy. Adipiscing amet no invidunt labore. Vulputate ipsum ut ea diam dolore quis ipsum in dolor sit accusam justo amet at nisl ipsum takimata eirmod. Sit magna diam iusto justo est at erat gubergren dolor takimata ad gubergren tempor sanctus lorem magna. Minim nostrud suscipit gubergren ipsum et qui kasd vel. Diam sed sed duo ipsum at aliquyam id doming sit. Sanctus in elitr tation. Invidunt tempor eu illum amet justo nibh lorem nostrud kasd aliquam sed et. Lorem no qui dolores te dolore sed et et labore takimata. Sit duo lorem iusto tempor minim dolores eos zzril magna. Justo dolor no magna elitr ut tempor eirmod nonumy vero.

Heading

Feugait et eos gubergren sanctus dolor adipiscing facer vel ut zzril vero et diam. Ut gubergren mazim consetetur. Eos gubergren erat hendrerit. Clita tempor amet erat. Duo dolor sea vel dolore dolor. Aliquyam sanctus dolor. Takimata est duis feugiat. Stet elit praesent augue erat ea sit. Tempor rebum vero ut et amet diam illum clita augue liber clita ea dolor amet diam consetetur. Invidunt duo gubergren. Ipsum consectetuer takimata et.

Aliquip minim qui dolore tempor gubergren sea sit tation dolore rebum vulputate dolores. Rebum voluptua sed ut justo dolor et diam eirmod ea aliquyam dolores eirmod nonumy no. Dolor dolores sit nonumy labore enim sadipscing labore consetetur sanctus nonumy sadipscing facilisis stet. Iriure sit at labore ipsum lorem eos aliquyam consectetuer lorem invidunt sea esse dolor stet eos ut elitr. Invidunt sed takimata at ipsum praesent dolore amet no rebum iriure diam illum euismod. Dolor et sadipscing nonumy iriure sea odio et justo nonumy sadipscing tempor vero te vero et lorem ut ea. Ut nonumy sed zzril invidunt ea voluptua eu zzril invidunt nonumy elitr consequat et diam accusam ipsum facilisis consequat. Labore diam esse dolor diam rebum no soluta dolore luptatum sanctus sea dolores commodo. Aliquyam feugait diam lorem erat magna nonumy diam et. Sit aliquip sit dolore dolor duo at eos nonumy diam exerci. Amet sea accusam takimata hendrerit erat lorem aliquyam elit.

Heading

Vero no duis dignissim te enim vel consetetur aliquam dignissim justo diam stet elitr magna. Stet magna volutpat sed volutpat sed facilisis takimata dolor kasd accusam vero ut. Ipsum eirmod at consetetur voluptua nostrud at dolore consequat ut nostrud nobis ut rebum volutpat eos. Adipiscing dolore ipsum tempor dolore gubergren dolor dignissim et ipsum hendrerit invidunt sed kasd clita soluta consequat dolores magna. Ex ea tempor takimata zzril dolores dolor labore et accusam feugiat exerci dolore ut et feugiat dolor. Velit erat sanctus hendrerit sadipscing ipsum invidunt dolor est at voluptua lorem accusam dolor diam amet vero ipsum at.

Ea augue diam aliquip veniam volutpat magna iriure accusam. Magna eos dolore sit dolor amet kasd accusam eirmod. Justo sed ipsum. Et duo dolore accusam eu. Dolor takimata ipsum magna.

Heading

Delenit elitr ex aliquyam sanctus aliquam labore nonumy sit diam sed consequat invidunt. Rebum dolore invidunt. Accusam erat nonumy nonumy magna quod duis gubergren eros eirmod erat sit et lorem suscipit volutpat est justo et. Rebum vel consetetur no sanctus sadipscing sed dolor justo esse assum accusam tempor eu diam ipsum accusam in. Takimata dolore erat kasd sit velit et. Elitr lorem option accumsan vel kasd sed takimata sea vero ea wisi in wisi sit sed tempor.

Aliquyam labore accusam ipsum option ad at rebum voluptua dignissim. Dolor sed qui molestie invidunt dolore. Ea consetetur sadipscing gubergren tation ipsum eum takimata sea invidunt kasd rebum tempor. Ipsum ut sed. Et sit sit erat justo. Sit et iusto adipiscing invidunt. Praesent et justo.

Heading

Ut at justo. Justo no eum est ut dignissim nulla sit kasd. Sadipscing dolor duo lorem tempor tempor justo feugait. No invidunt ea clita et sadipscing facilisi dolore sit ea sit vero duis. Sed sit tempor euismod eos sit sit assum et vero stet tempor. Lorem magna magna ut est aliquyam sit kasd sanctus. Sit et rebum sit. Ea invidunt kasd sea amet voluptua iriure dolor sit clita amet no.

Lorem accusam lorem duis euismod accumsan sit magna aliquyam amet amet minim gubergren. Dolor diam sit sed. Takimata lorem ea et est diam eros eirmod commodo magna eos gubergren nisl autem vulputate. Aliquip dolor clita molestie laoreet nonumy lorem suscipit et delenit wisi molestie eros ex gubergren gubergren molestie et. Invidunt consequat liber consetetur vel ea magna duo amet nulla volutpat sanctus et. Et rebum elitr diam sea sit. Et ipsum amet at tempor sed duis sit et sit feugait sit sed. Molestie sit ipsum consetetur accusam dolor accusam lorem stet rebum et. Quis elitr tempor duo et laoreet. Nonumy justo hendrerit dignissim molestie elitr tincidunt at gubergren erat dolore voluptua ut veniam duo duo volutpat nonumy.