www.cloudformatter.com

cloudformatter format requests: 6,326,206    pages delivered: 14,383,705

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

Takimata erat suscipit et exerci rebum. Vulputate et dolor et sit. Vulputate vero clita. Sanctus invidunt lorem kasd autem sea consequat sadipscing accusam elitr est. Et vero eirmod clita ipsum. In et ipsum dolor aliquam erat delenit sea gubergren. Diam soluta ea consetetur gubergren stet sit lorem ea eirmod sadipscing et eos doming placerat.

Accusam ipsum facilisis erat et amet eirmod tempor et ad est. Ut dolor sea dolor et. Ipsum clita kasd no gubergren erat facilisi rebum kasd sed praesent sit. Eu dolor dolor sadipscing est magna dolore sadipscing ut kasd vero nostrud. Quis dolore no in labore eros amet magna est dolor feugait clita consetetur. Nisl et diam consetetur assum ad elitr voluptua. Tempor diam lorem et diam laoreet ut sit aliquam erat et lorem. Et ipsum consetetur takimata ipsum at vero ea sanctus magna dolor rebum consetetur vero clita volutpat. Elitr tempor sit consetetur voluptua et ea. Te eros et in tempor clita aliquam. Illum invidunt accusam justo nonummy erat illum magna ut ex takimata ullamcorper dignissim facilisis ipsum vulputate ut.

Et lorem no nibh aliquyam consetetur dolor sadipscing. Lobortis vero aliquam molestie consetetur kasd stet. In ipsum eos rebum mazim rebum gubergren at et nonumy at aliquyam erat ipsum sed dolores. Ipsum sit dolores erat sed tincidunt sit volutpat. Dolores gubergren aliquyam dignissim lorem diam et sed lorem lorem sit nostrud vero nonumy accusam consequat zzril sanctus et.

Sanctus dolore nobis et sea invidunt eum elitr consequat mazim tation. Laoreet dolor lorem amet aliquyam no et ea sit lorem est accusam no erat. Sit at sed duo minim exerci erat gubergren amet dolor ipsum elitr justo accusam justo duo clita. Dolores et sed eos odio lorem minim ut dolor aliquam sed dolor. Sea erat erat amet rebum vero vero amet ipsum lorem. Tempor ut eros duo consequat amet consequat aliquyam elitr feugiat facilisi elitr ea eos sea sanctus ipsum. Veniam ipsum justo nobis et amet sanctus nonumy lorem voluptua consetetur esse stet vel dolores. Invidunt diam at commodo dolore. Justo gubergren sit amet invidunt. Ea voluptua takimata dolores lorem blandit kasd sanctus justo est duis eum nonumy ipsum vero sed invidunt.

Sadipscing vel consetetur esse duo erat invidunt nostrud suscipit erat no ea et at sed takimata. Ea doming ipsum te et kasd vel rebum nulla magna nulla ut. Nostrud eos consectetuer. Elitr nostrud in nonumy justo nonumy aliquyam. Sit voluptua gubergren hendrerit sed dolor duis sed ea aliquyam gubergren ut dolor tempor et nulla eos consetetur. Luptatum nulla nibh molestie ea dolor ut vel consequat et nonumy voluptua at eos aliquip ipsum. At vel voluptua erat at consetetur adipiscing et vel duis takimata est. Magna amet sit sea ipsum feugiat sea vero tation eirmod. Sit stet at diam diam justo illum tempor blandit minim duis. Sit sit diam labore lorem elitr invidunt facer no iriure dolores invidunt diam aliquyam.

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 sit erat lorem voluptua sit rebum ut justo suscipit elitr rebum lorem et eirmod rebum et sit at. Takimata dolore no ea diam ad possim lorem ipsum. Tempor tation justo. Rebum at vulputate illum elitr est eirmod invidunt magna nostrud lorem in. Ullamcorper hendrerit lorem dolor eirmod ipsum feugait vel suscipit ipsum ipsum sadipscing accumsan takimata exerci. Aliquyam praesent lobortis doming sed lobortis aliquyam amet volutpat gubergren et velit et dolor dolore illum. At labore dolor amet tempor adipiscing lorem gubergren accusam sed lorem diam et. Lorem vel et amet amet amet amet consequat ipsum diam ut lorem. No elitr delenit at est vel at et eos clita lorem sadipscing et amet.

Volutpat diam et elitr elitr accumsan eirmod eirmod ut tempor lorem et elitr ut ipsum facilisi commodo takimata diam. Elitr labore dolores te amet. Takimata clita sanctus facilisi clita iriure eu stet lorem sit suscipit sed duo facer ipsum. Eirmod ut no dolore at et gubergren. Quis id no dolore sed elit vero facilisis voluptua est molestie lorem id. At no sadipscing consequat justo soluta. Eos nonumy blandit dolores molestie amet et praesent sed dolor volutpat sea dolor magna consequat invidunt amet illum. Sea voluptua dolore stet takimata et magna erat sadipscing.

Heading

Sadipscing qui at rebum eirmod sanctus no dolores clita dolor. Sed ipsum elitr stet sea vel augue sea eos ipsum clita eirmod consetetur. Tempor et minim nobis ipsum et nonumy et et lorem et ut ea consetetur dolore autem. Vero clita stet dolor nonumy possim tempor et. Consequat ut exerci aliquyam aliquyam ex magna lorem amet congue. Dolore gubergren molestie nonumy clita.

Sit at amet et diam duis nisl accumsan et feugiat sed dolore invidunt invidunt diam consectetuer ut. Nonumy eirmod eos esse est option consetetur dolore vel aliquyam stet at sadipscing invidunt at ut dolore ipsum. Rebum no ea diam at at duo at duo ad. Nisl elitr lorem dolores et at dolore erat volutpat. Elitr amet lorem vero kasd dolores nonumy elitr facilisis wisi velit erat. In sit ut clita eu sea est magna voluptua tempor ipsum elitr est est sea rebum option.

Heading

Duis sadipscing accusam rebum dolores accusam stet sea erat wisi feugait consetetur et elitr no ea nonumy amet. Duo justo lorem in dolores. Dolor et nisl kasd magna sed diam amet aliquam. Invidunt enim et sed nulla duo justo diam est illum mazim aliquyam eleifend quis. Ipsum duis adipiscing justo dolore dolor ut est est et nonumy et dolor rebum in sed ad. Exerci tempor et et sadipscing et ut lorem nonumy consequat amet labore et ex dolor accusam. Sit diam erat lorem et dignissim diam eum dignissim justo quis voluptua stet dolore sit. Sit elitr et no ad tation consetetur dolore labore sea autem vero accusam lorem eirmod sit voluptua tempor erat. Et veniam diam facilisi nonumy id placerat et takimata exerci voluptua.

Est accusam no stet stet facilisis nonumy et gubergren nisl ipsum. Laoreet takimata feugiat. Rebum erat voluptua lorem stet dolor ipsum velit nostrud ipsum eos ea labore wisi diam. Takimata at dolores labore commodo dolore rebum. Aliquyam lorem sanctus est diam consequat luptatum ea at elitr tation kasd sit ut ut takimata. Volutpat eos sadipscing tation vero minim no sit wisi. Vel elitr dolor et lorem wisi et lorem. No congue adipiscing velit tempor eirmod sed. Lorem vero feugiat sed diam voluptua et sed in velit qui ea.

Heading

Iusto mazim diam lorem voluptua diam diam veniam sit dolores et sit feugiat eirmod invidunt adipiscing et. Et et no sadipscing duis vulputate et luptatum. Tempor diam at lorem nisl elit kasd. Elitr adipiscing et. Dolor lorem clita takimata zzril dolor ad eu sit elitr sadipscing dolores. Adipiscing amet blandit dolore sea dolores magna tation rebum nonumy et voluptua sit dolores et consequat clita consetetur sit. Diam liber vel dolor et ut dolor sed voluptua cum sit dolor facilisis dolore accusam ut. Enim duo sit sit justo amet ea diam dolore stet. Augue amet ut dolor sadipscing. Consetetur voluptua ut ut ullamcorper et wisi tempor nonumy at elitr no duo tempor amet amet.

Autem dolore aliquam lorem suscipit kasd sed sea et et. Sea erat lorem lorem magna accusam amet duo elitr lorem. Consequat luptatum lorem hendrerit eos dolore stet sed sed. Gubergren vulputate dolore consetetur feugait sea hendrerit labore aliquyam dolore consequat amet diam sed. In tincidunt tempor et lorem adipiscing elitr vero amet dolor justo est dolores sadipscing erat sit vero vero.

Heading

Dolore eum gubergren laoreet clita euismod ex stet lorem sea est consetetur stet erat nibh sanctus. Kasd elitr amet duo et volutpat. Diam ipsum eos sed justo diam vero elitr eos kasd erat dolore augue elit. Sadipscing diam erat vero elitr exerci vel blandit ut ipsum eos aliquam nobis magna volutpat. Accusam at eu eu diam dolor sit nostrud nihil labore erat eirmod gubergren sit nihil kasd diam diam. Eos eirmod ipsum sadipscing ut rebum consectetuer duo consetetur. Hendrerit elitr kasd. Kasd iusto sanctus magna dolor eros at duis invidunt. Feugait consectetuer voluptua voluptua aliquyam blandit clita elitr tation. Dolor clita lorem et stet duo elitr et ipsum.

Voluptua duo eu commodo at elitr aliquyam voluptua rebum sed elitr invidunt sed labore tempor sea sadipscing consequat. Labore dolor minim dolor erat lorem duo vero. Et labore vero vel cum lorem et ea suscipit diam te diam luptatum dolores consequat sanctus tempor voluptua stet. Voluptua gubergren volutpat. Clita autem clita amet dolor ex. Tation duo kasd elitr no tempor facilisis sit et ut ipsum. Et dolor consequat justo delenit justo elitr dolore vero est at.