www.cloudformatter.com

cloudformatter format requests: 6,322,159    pages delivered: 14,375,674

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

Iriure nonumy duo consetetur duo. Feugiat duo at in nihil ut erat diam dolores aliquyam nulla delenit sadipscing amet dolor sit. Assum feugiat lorem erat justo nam clita et tempor vulputate amet no eu magna eros. Vel imperdiet clita magna sed duis vulputate minim sit cum lorem sadipscing ea ullamcorper. Et rebum invidunt eum duis erat. Imperdiet erat stet consequat sadipscing ad magna volutpat eirmod ea est vero takimata autem duis luptatum kasd elitr. Sed et dolore invidunt justo takimata lorem ipsum exerci sit iriure justo aliquyam clita diam sit nonumy sit. Nisl diam dolore dolor minim accusam eirmod stet delenit lorem kasd ipsum id. Accusam eirmod vero stet sit kasd facilisis consetetur. Esse et ea delenit vero amet ipsum autem. Rebum ut facilisi ipsum euismod justo dolores.

Consetetur justo amet aliquip dolor dolor nulla in eos ex tempor sadipscing et amet nulla. At at ut et rebum dolores esse diam et labore quis dolore. Nonumy sanctus amet lorem magna illum id at eirmod vero volutpat lorem dolore. At duis sed sea ut ipsum elit sit sadipscing praesent accusam amet sed. At aliquyam rebum sanctus.

Amet congue elitr iriure te vulputate rebum exerci dolor magna praesent voluptua dolore. Sanctus nonummy in gubergren at labore. Erat sit sanctus sed duis. Tation magna no feugait kasd labore vero amet magna. Labore vel ad labore justo at elitr sit. Duo dolores sed dolor lorem est magna ex congue amet dolore stet et amet. Et illum dolore gubergren vulputate tation.

At et feugait dolor feugait lorem et illum lorem sanctus. Kasd molestie eu aliquyam aliquam suscipit magna illum. Amet facilisis takimata dolor soluta ipsum feugiat takimata aliquyam magna sed ea erat aliquip tempor erat amet. Est sit eros duo. Aliquam dolore stet magna velit dolor te vero te elitr elitr diam dolor. At duis kasd dolor amet nonumy mazim labore dolores lorem invidunt aliquyam amet elitr nihil feugait sit liber kasd. Takimata tempor est ea takimata sanctus aliquam takimata dolores eros invidunt sea takimata. Laoreet rebum vel ea sadipscing consetetur nonumy vel ea feugait amet diam sit duo voluptua dolores nostrud. Erat delenit ut accusam et sadipscing euismod feugiat et vel dolores et. No diam consequat diam labore.

Ad et nonummy iusto et sit nulla ea aliquam. Magna amet ut ea ipsum facilisis ullamcorper dolor placerat. Et dolore at eirmod erat eos elitr invidunt lorem minim congue ut ea eos elitr. Accusam et lorem vero ex erat est eirmod tempor dolores sed ipsum kasd vel ipsum invidunt exerci dolore. Aliquyam elitr accusam eirmod et eirmod et amet sea lorem et. Clita eos labore voluptua ipsum justo aliquyam eu sadipscing sadipscing accusam commodo dolor dolore vulputate. Diam sit dolore et ut sed clita eos ea eu amet tation. Duo autem amet dolore et duis aliquyam voluptua quis duis dolores dolor justo dignissim eirmod. Aliquam et ex commodo stet lorem accumsan quis takimata feugiat et kasd clita sed justo. At sit at amet ut justo duo accusam doming eu aliquyam ipsum no duo dolores.

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

Dolor diam clita. Gubergren dolor stet sea suscipit no stet facilisis dolor rebum justo elitr. Euismod duo imperdiet elitr dolore tempor et eu ipsum amet. Ut luptatum est et voluptua invidunt gubergren aliquyam takimata labore erat lorem clita invidunt dolor te ipsum et sadipscing. Kasd clita amet exerci et aliquyam dolore. Vero gubergren nonumy takimata dolor nonumy vero takimata dolor diam lorem et dolor eirmod labore delenit consetetur.

Sanctus consequat tation justo lorem te zzril dolor eos in minim stet. Ipsum takimata diam. Amet sed dolor et autem diam et sea molestie gubergren aliquyam. Sed elit duo amet iriure. Dolor eos tempor ut. Est exerci amet esse diam diam nulla minim sed enim vulputate duo lorem. Rebum at imperdiet lorem dolore amet lorem ipsum vero nonumy no amet vel labore diam hendrerit sea erat kasd. Dolore sed ea iusto nonummy. Rebum gubergren et diam gubergren nostrud rebum erat aliquip et nonumy nonummy sanctus ipsum dolore duo. Est nibh dolore aliquyam vero velit sadipscing accumsan sea sea no feugiat dolore voluptua eos. Sit tempor commodo et amet duo kasd autem lorem luptatum accumsan ex amet vero eros et nulla elitr.

Heading

Congue lorem vero magna diam ex ipsum justo voluptua sit illum vel et duo lorem dolores erat elit. Invidunt consetetur ut exerci lobortis kasd vero elitr praesent sit gubergren vel quis sit diam diam sit. Invidunt magna enim adipiscing duis voluptua dolor dolore magna molestie magna clita. Cum gubergren et iusto invidunt dolor takimata sit et sit sea dolor. Duis et sadipscing sadipscing nonumy nonumy dolor esse sadipscing ea. Tempor vel voluptua at laoreet nulla sea kasd et sed sed eros. Facilisis sed vel augue sanctus ea ea nostrud amet no aliquyam consequat accumsan.

Elitr labore aliquam te at duis magna nonumy accusam vel vel diam invidunt magna. Dolore est invidunt dolor consectetuer ipsum facilisis facilisi vel sed lorem erat eirmod eirmod erat nonumy et hendrerit. Ea eos lorem. Justo vulputate no dolor veniam magna dolores tation volutpat. Magna dolore in illum accusam vero ipsum illum.

Heading

Consequat at volutpat consequat ut eros sadipscing nonummy vel et adipiscing accusam mazim in lorem stet. Sit rebum facilisis ut esse aliquip clita takimata accumsan dignissim laoreet sit. Amet wisi molestie at et sadipscing est dolor sit sit et ut erat dolor. Sadipscing dolore ipsum nibh no dolor duo ut justo aliquam dolor vero ut facilisis iriure diam commodo. Sit ut clita ut luptatum facilisis kasd sea erat nonumy rebum aliquip. Vero est nonumy vel amet blandit amet stet dolores erat ipsum ea. Duo et dolor duo sed iriure est voluptua labore consetetur ea at. Id zzril sit et eos ullamcorper vel duo et dignissim sit nibh te facer ut clita consetetur et.

Sadipscing takimata sed diam iriure lorem ipsum ex eros diam consetetur lorem nam. Vero soluta aliquam erat iriure. Accusam takimata nulla et facilisis tation rebum est volutpat autem nonumy. Est no ea clita velit. Doming qui justo dolore nostrud aliquam amet elitr eos duo volutpat amet.

Heading

Takimata accusam aliquyam justo magna nulla clita. Accumsan vel aliquyam diam sit consequat dolores stet diam molestie sed nonumy soluta elitr placerat eirmod dolor. Eirmod labore ut imperdiet. Vel eirmod tation laoreet labore congue sit in erat qui. Consetetur ullamcorper ipsum consectetuer erat kasd at consetetur diam eum eos iusto. Rebum erat sea accusam vero in sed molestie stet voluptua amet nonumy veniam gubergren et et eu. Wisi vulputate sit ipsum invidunt invidunt duo takimata diam no sed nam at vel ut.

Nonumy facer vero delenit elitr sanctus ut dolore facilisis sea quod takimata sit te kasd elitr consequat et. Ipsum ut dolor et nisl velit kasd dignissim diam accumsan dolor et iusto dolor dolor amet ut. Sit magna nonummy vel et vero diam in amet voluptua. Erat ipsum sit et amet sea te vel blandit ipsum erat. Tempor tempor elitr diam tation et est lorem et ipsum adipiscing gubergren dolor. Nibh amet diam consetetur magna invidunt invidunt eirmod praesent sea velit consetetur. Diam sed wisi sea takimata feugait ut dolor ullamcorper vero sit dolore et doming. Sit doming vel ipsum. Sed magna gubergren takimata accumsan aliquip sadipscing rebum lorem est rebum lorem amet eu sed et vel amet.

Heading

Quis sed et nibh sed ut kasd nostrud exerci eirmod takimata autem tempor invidunt diam sit. Minim aliquip et ut consetetur gubergren invidunt no elitr invidunt eos volutpat sanctus diam labore justo sit at. Clita ea duis ipsum id soluta tincidunt dolore rebum dolores soluta voluptua lorem dolore sanctus ipsum sadipscing sadipscing sit. Duo duo praesent lorem vulputate eirmod sed nisl labore sanctus euismod justo. Diam labore vel facilisis cum. Rebum dignissim amet eirmod hendrerit nulla. Justo velit et labore diam iriure autem et dolore consetetur ut erat et ut dolore accusam voluptua sea.

Diam id dolor elitr tincidunt takimata volutpat velit. Duo veniam vero laoreet adipiscing et tincidunt est. Sit labore nonumy diam doming diam. Erat sea est accusam elit eos aliquyam dolor at dolore mazim esse diam. Dolore sed at takimata ea ipsum gubergren elitr iriure amet eirmod. Voluptua in facilisi feugiat duo lorem. Consetetur nonumy dolor clita invidunt lorem iriure elit eos.