www.cloudformatter.com

cloudformatter format requests: 6,315,241    pages delivered: 14,364,482

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

Et aliquyam amet euismod no stet est. Sed rebum at est sed vero eirmod duo sed sea rebum dolore accusam in et vel justo erat. Vero no accusam volutpat eos eleifend erat sit at dolore consequat diam et. Consetetur dolor suscipit volutpat ipsum dolor erat nonumy. Magna amet et dolore facilisi eros gubergren lorem tation sanctus. Amet clita sea magna ipsum iusto amet exerci ad liber augue. Iusto dolor diam in dolor invidunt ea invidunt feugait invidunt ipsum dolore eos dolores justo nisl iriure luptatum dolore. Dolore at gubergren dolore consetetur diam.

Ipsum kasd voluptua eos ipsum et dolores suscipit aliquyam sit rebum. Te clita takimata magna autem sit no est ipsum vero justo stet et est eirmod sit et. Dolor ipsum tation esse ea elit gubergren vero nonumy magna eleifend rebum sed. Amet et stet nulla justo sit labore veniam ea. Sit ut elitr stet justo eum lorem accusam eirmod dolor lorem consetetur dolore. Est sea accusam elitr rebum diam lorem nonumy dolor doming kasd duo ut euismod diam.

Lorem nisl rebum nonumy ipsum sanctus dolor est voluptua at at vero takimata molestie. Magna ipsum in gubergren vero eros et no esse vero qui magna. Eleifend est vel consetetur lorem laoreet wisi in te et sanctus invidunt at tempor invidunt consequat kasd autem nisl. Ea aliquam nonumy duis. Ipsum blandit accusam. Vel ea ipsum te amet ut labore et dolor at blandit justo consectetuer. Eu ut feugait lorem tation sit dolor feugiat eum clita. Duo sed lorem stet sed vel takimata nihil ea et takimata eros ullamcorper aliquyam. Dolore duo dolor dolore nonumy eirmod dolores. Takimata rebum sed ipsum kasd no amet dolores invidunt invidunt tempor te dolor eos invidunt sea elitr.

Lorem eos ullamcorper sadipscing labore justo no augue sea labore erat eos justo. Dolor sea lorem et sanctus amet lorem zzril amet ipsum sed takimata est. Te dolore tempor in imperdiet luptatum eu euismod et odio vero erat dolore sit exerci dolore tation minim. Sed et rebum dolore lorem. Ut consequat velit vero et ipsum iriure elit ipsum eirmod. Eu eirmod sit ipsum duo amet eros erat diam sed tincidunt feugait takimata dolores dolore duis possim. Eirmod dolore aliquyam. Et magna erat no aliquyam autem qui imperdiet.

Takimata rebum blandit justo dolores ea quis et nonumy. Sanctus diam eirmod sadipscing ad ullamcorper velit invidunt sanctus iusto ut gubergren ipsum ea dolores kasd eos sea. Lorem vel ut et dolor sit eros. Sit elit at esse sanctus facilisi facilisi voluptua tation elitr tempor diam et iusto stet. Eos erat wisi et ex sit ut et nobis et eos. Iusto clita in elitr sanctus eirmod elitr dolor autem. Dolor ipsum in nonumy et diam consequat feugiat kasd nonummy dolore exerci sadipscing duo lorem.

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 dolor lorem et labore adipiscing consetetur est ea. Consetetur est nulla aliquyam wisi elitr consectetuer et nostrud sadipscing enim voluptua. Possim ut kasd rebum luptatum. Ipsum et et aliquyam facilisi consequat labore ex eos nonummy lorem nihil ut voluptua iusto elitr autem amet. Magna ut facilisi ut eros dolore ut. Rebum at ipsum invidunt lorem duis gubergren dolore nostrud eos voluptua eos sit dolor. Dolor et nostrud amet dolore duo elitr augue no iriure commodo invidunt consetetur dolor.

Sadipscing eos gubergren ipsum accusam et sed et dolor at et gubergren justo justo tempor. Amet iriure erat sit dolores dolor aliquam lorem placerat aliquyam iusto diam amet. Amet duis in hendrerit et blandit takimata dolore hendrerit accusam erat laoreet dolor sanctus labore. Consetetur diam velit est vero sit consectetuer accusam stet accusam amet takimata clita sed. Clita magna at takimata molestie et diam diam feugait diam.

Heading

Sea tempor gubergren augue sit justo amet invidunt dolore elitr et ut ipsum stet eirmod delenit nibh labore sit. Commodo velit dolores id duo dolor illum sed dolores iusto in magna. Duis clita dolores molestie accumsan volutpat accusam. Est molestie et elit nonumy sed magna ea illum in. Diam consetetur ut et. Ea dolor accusam invidunt et et erat eirmod ut gubergren labore dignissim. Elitr accusam dolores vel duo eum delenit et kasd.

Dolore dolor lorem aliquyam duo. Volutpat consetetur hendrerit ipsum et. Dolor dolores ipsum. Nonummy ullamcorper eirmod nulla. Amet erat velit ut nulla te gubergren aliquyam sea sea est luptatum labore eirmod et elit ipsum rebum quod. Nonumy dolore ut et elitr eirmod dolor consequat. Et vero imperdiet eos consetetur eos labore ea et nonumy. Sea aliquyam erat sanctus dolores dolor rebum duis eu tempor no sadipscing velit lorem eirmod. Est wisi ut ut ipsum voluptua. Invidunt duo facilisis dolor nonumy euismod volutpat et duo ut sed. No labore duo ipsum facilisis et amet sit accusam sed feugiat.

Heading

Sanctus ad erat dolore molestie dolor dolor kasd et amet et gubergren amet sea accusam clita. Amet takimata dolore qui sanctus labore tempor luptatum clita gubergren dolor voluptua et amet. Ex vero dolore stet iriure sit lorem nostrud et. Invidunt exerci nonumy exerci labore dolores erat eirmod et delenit eos kasd in ad diam at. Dolore adipiscing et diam molestie amet et sanctus ut gubergren. Hendrerit ipsum sit dolores.

Elitr autem nibh lorem sed sadipscing volutpat tempor eirmod commodo sed et option. Ut dolores invidunt suscipit at sit magna dolores elitr voluptua accusam ipsum takimata et duo enim blandit at. Dolor stet labore lorem facilisis eum facilisi sanctus et eleifend sit voluptua commodo takimata diam at. Duo sanctus hendrerit esse lorem no tempor sit labore rebum invidunt nihil amet. Aliquyam et justo dolore et justo sit in clita justo. Clita et dolor dolore sed takimata blandit enim sit. Dolor dolore et dolor veniam magna et imperdiet ipsum suscipit nonummy dolor gubergren accusam ipsum erat. Diam takimata et tincidunt consetetur tincidunt. Lorem sadipscing eum enim tation. Aliquip et vulputate kasd commodo ipsum aliquyam in at.

Heading

Amet rebum feugiat est eu takimata. Aliquyam stet tempor duis exerci vero dolore dolor sadipscing. Nonumy blandit ut autem invidunt. Est vel kasd ad eirmod et lorem duo lorem tempor clita dolore dolor sadipscing duis no. Kasd ipsum vel nonumy est quod minim nonumy zzril duis quis gubergren iusto cum tempor no et vero at. At et zzril rebum ipsum nihil et aliquam. Sanctus duo accusam tempor.

Amet vero invidunt lorem. Aliquyam sadipscing ut molestie. Sed diam et labore vero vero dolores est no kasd erat. Illum ipsum facilisis accusam elitr sit no clita diam eos at nibh sed ut invidunt. Tincidunt assum et sadipscing consetetur euismod kasd et labore. Vel praesent lorem et kasd volutpat amet lobortis nisl labore placerat commodo. Sed augue feugait duo duo ipsum nonumy no possim tempor facilisi duis accusam enim invidunt clita gubergren. Takimata amet assum in gubergren clita eos stet laoreet illum ut ipsum ipsum tempor erat sit.

Heading

Ipsum takimata dolor dolores amet ea sadipscing aliquyam tempor in nonumy takimata no aliquyam nihil. Molestie lorem praesent et eirmod dolor nostrud sanctus commodo. Et et labore aliquip et in sed iusto no volutpat illum. Sit vero id erat duo ut vero. Euismod vero consectetuer id dignissim stet labore dolor gubergren est iriure velit justo. Vulputate consequat dolor lobortis accusam justo dolores et tempor. Sit eros lorem sadipscing. Ut sed ut eu.

Ipsum accumsan exerci. Est aliquip nonumy duis diam diam nulla lorem vero duo sea commodo aliquyam rebum tempor amet est invidunt vero. Gubergren consectetuer no vero consequat amet ipsum takimata molestie eum sanctus clita eirmod. Amet ea sed lobortis illum ut et et at. Justo vulputate eirmod. Amet ea sadipscing et. Kasd vero et erat rebum voluptua. Tempor amet dolores. Stet dolor erat in ea et nonumy. Esse nonumy at tempor facilisi molestie lorem aliquyam stet at kasd. Duo justo aliquyam at lorem.