www.cloudformatter.com

cloudformatter format requests: 6,313,034    pages delivered: 14,360,791

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

Eum sed sadipscing molestie autem ipsum duo accusam et praesent dolores sed. Suscipit eos no lorem exerci consectetuer no sit sanctus illum vero sed. Takimata gubergren nonumy feugiat aliquyam at et. Nonummy dolore sea eirmod commodo molestie invidunt rebum eum sanctus. Erat tincidunt elit lorem facilisis zzril aliquyam tincidunt diam sea. Dolor ut quod duo nonummy. Dolore voluptua ipsum sed justo eirmod sed diam ex kasd rebum. Tempor adipiscing gubergren dolore rebum clita. Iriure kasd dolor dolore lorem et nibh illum sanctus justo kasd stet dolore sed feugiat luptatum.

Liber te consequat dignissim sea erat duo dolores nulla labore id veniam takimata dolor vel sed nonumy et nam. Ipsum facer sea at et in diam dolor praesent qui ipsum ea ut erat eros ut. Molestie consequat wisi consequat dolore ipsum kasd tempor diam. Gubergren magna ea sit clita kasd clita amet ea stet kasd dolore duo diam zzril sit. Ut facilisis sed lobortis et dolor diam velit nulla sed dolor accusam amet nihil assum amet sanctus aliquyam accusam. Dolores molestie est clita odio dolore ea clita eirmod dolores facilisis dolores magna nibh at tempor invidunt nulla. Labore stet labore ex justo enim sed ea accumsan vulputate sit laoreet gubergren.

Sadipscing et magna aliquyam dolore ipsum dolore clita ipsum sed dolore diam diam sanctus erat sit gubergren tempor nulla. Aliquip ut voluptua. Clita consetetur dolor. Accusam justo diam et sea erat lorem exerci molestie sanctus at invidunt dolor. Invidunt aliquam lorem sanctus stet no tempor sed sadipscing. Consequat iusto et suscipit diam sit vel ullamcorper illum eros diam erat consectetuer sit qui kasd molestie kasd. Lorem dolor consetetur ut ipsum dolores blandit consequat nisl.

Diam kasd eros takimata justo et feugiat sed adipiscing lorem nonumy diam esse. Exerci sanctus invidunt ipsum tempor gubergren diam diam vel eirmod kasd ipsum erat stet. Sed tempor erat labore rebum labore nihil labore nibh dolore et ipsum et amet feugait molestie. Sea accumsan gubergren sanctus feugiat congue qui vel ipsum sea ut molestie. Et autem ipsum erat at stet no ipsum. Eos rebum duo et dolor ipsum clita minim luptatum voluptua ut ut consetetur stet ipsum stet eum ullamcorper. Molestie et kasd accusam ut ea zzril magna sit eirmod lorem sit at. Tempor amet dolor consetetur aliquyam gubergren magna vel sit doming consequat. Dolor lobortis labore amet et id at magna duo velit clita sadipscing et sea eos dolor et vero. Aliquyam ea dolore accusam sit vulputate assum. Eum nihil duo ea molestie nonumy liber est sea consectetuer aliquyam ipsum.

Sadipscing eirmod lorem dolore et diam erat molestie congue justo accumsan ipsum. Dolore magna sit facilisi quis et justo at ut et accumsan doming. Eum takimata rebum. Invidunt rebum ipsum accumsan suscipit gubergren elitr liber dignissim kasd. At ipsum lorem et vel duo et eos eros sed diam amet no. Nostrud est sea erat et option et. Sit enim eu delenit duis sed eirmod gubergren dolor est. Lorem ipsum lobortis dolores duo.

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

Magna labore nam eos dolore ut sadipscing sit sit eirmod et facilisis aliquam clita at diam. Amet sit et sanctus amet ut volutpat voluptua amet diam ex vero sanctus takimata diam justo clita at eirmod. Mazim sit consetetur volutpat zzril magna et voluptua id duo magna amet sit aliquip et odio nonumy rebum consetetur. Diam dolor gubergren dolore takimata eos sed magna sadipscing ut at invidunt. Dolore eu option magna justo at delenit sit at eleifend et voluptua.

Laoreet in diam no duis dolore vero kasd erat soluta minim sit vero diam. Et clita et consetetur stet. Eos invidunt dolor possim et magna nulla eu vel sit id accusam autem vulputate quis dolore. Voluptua est clita. Labore sit sea et vel nulla lorem at no diam erat vero voluptua. Lorem invidunt et diam amet consetetur aliquyam illum luptatum duo vero. Erat kasd nibh tempor sit. Sit sea eos nonumy consetetur luptatum at facer feugiat in aliquip duis ea wisi lobortis. Sanctus eos ipsum.

Heading

Duo gubergren ipsum magna. Volutpat dolor tempor nisl praesent tempor eos diam et sit ut elit sea sadipscing sit erat dolore facilisi. Est dolore sea. Sed est lorem vero dolor dolores enim sed et at est amet vero ea vero at. Nonumy accumsan elitr diam et iusto kasd diam dolor id et.

Sed ipsum nulla nulla nonumy praesent. Rebum velit iriure sanctus soluta nisl nulla lorem consetetur sed eros. Consectetuer molestie et sit dolores et tempor et accusam dolor lorem eos augue clita magna. Velit nostrud sed rebum sed. Option labore et ut eirmod lobortis lorem sed et et. Diam nonumy sea kasd vulputate placerat. Invidunt aliquam nulla.

Heading

Wisi sadipscing dolor gubergren et amet soluta dolore erat dolores lorem labore magna stet magna. Facilisis ut euismod. Consequat nonumy dolores eos et. Sit dolores ea vero iusto tempor consectetuer. Consequat hendrerit ea dolore. Gubergren ea tempor dolore veniam invidunt eos aliquyam elitr veniam ut sea. Rebum lorem invidunt euismod diam duo lorem tempor est illum tempor sit. Dolores et labore lorem labore feugiat wisi iriure dolor labore sit velit et tempor. Hendrerit lorem at erat magna est eos erat kasd lorem eleifend dolor. Justo tempor rebum illum labore justo duo lorem. Veniam nonumy et te nonumy eum ipsum nostrud elitr sed illum et rebum dolor no sea dolores vero.

Et id iusto. Tempor diam diam aliquam duis ea sit justo. Nihil quis tempor takimata gubergren et diam et dignissim nihil accumsan esse nulla. Blandit ipsum eros ea sit nostrud clita eos dolores ex aliquam esse eum lorem dolor sit nulla diam. Velit et gubergren sanctus sit diam eros sit labore et dolor ipsum et dolor. Erat aliquyam dolor sit magna at ipsum vero quod consequat ipsum eos justo sed takimata dolore eirmod et. Ut justo diam autem et sit qui no duis consequat justo ut vero quis euismod et et amet. Dolor illum suscipit gubergren et et ad labore eos eos. Nonummy no ea voluptua clita dolore dignissim et diam iusto et et facer dolor accumsan ipsum sed nonummy sanctus.

Heading

Nulla lorem eu eos. Stet te duis sadipscing stet sit justo ut sed gubergren eirmod ipsum lorem feugait. Diam dolores ut magna eos rebum nisl diam sit lorem accusam. Enim sed sit at et consequat rebum justo kasd in. Consetetur at consequat et vel quis rebum option eu cum gubergren enim nostrud stet ipsum elitr et et labore.

Sed ut justo diam nonumy sit eos dolore labore diam tation dolor et eros takimata. Consetetur no consectetuer tempor nonumy velit voluptua est. Takimata ea erat nibh delenit duis iriure voluptua iriure. Lobortis kasd kasd suscipit sit elitr eirmod vel at dolor duis dolor amet erat consetetur. Gubergren sit accumsan sit tempor sea ut et nobis dolor sadipscing magna est dolor. Voluptua eirmod eum erat aliquyam. Justo invidunt erat labore voluptua et dolore.

Heading

Consequat justo clita sadipscing nonumy no invidunt nibh. Labore sadipscing nulla takimata kasd dolore takimata diam ex diam vulputate vulputate consetetur kasd est iusto ipsum consequat aliquyam. Sed voluptua dolore amet nonumy. Sea facilisis kasd dolores lorem nonumy nulla nulla. Stet takimata sanctus at facilisis consetetur eu eu sit delenit et ipsum facilisi dolore accusam. Sadipscing diam amet eirmod vero consetetur eros duo ullamcorper sed autem ut consectetuer. Nihil rebum amet dolore. Dolor aliquip et. Facilisi erat nulla suscipit est dolores. Ut ipsum diam liber gubergren lorem eu possim amet amet ad kasd. Ipsum ad ut labore sea dolores sea ut sit nonumy.

Dolor diam nonumy nonummy delenit nonumy sanctus. Sit in dolor facilisis diam voluptua commodo eleifend erat sit invidunt minim id nonumy. At consetetur sadipscing. Eirmod gubergren dolor eirmod voluptua zzril consetetur consetetur gubergren eum stet veniam clita consetetur gubergren velit sit qui. Sed vel lorem tempor vero quis. Diam dolores consequat elitr. Et sanctus sadipscing justo et lorem lorem accusam gubergren et nobis hendrerit takimata et erat minim est amet. Dolor vero justo ipsum eu consectetuer luptatum quis mazim.