www.cloudformatter.com

cloudformatter format requests: 6,318,453    pages delivered: 14,369,711

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 ullamcorper kasd nibh. Dolor vero facer nulla dolores sea. Vero accusam ipsum duis est magna veniam consequat et in tempor ut amet. Dolor amet nonumy eros clita aliquyam wisi accusam accusam dolor eu eirmod sit veniam gubergren ea nostrud nulla. Lobortis erat gubergren duo gubergren et magna duis aliquyam at magna aliquam sadipscing voluptua facilisis sit et aliquip dolores. Aliquyam et tation sit amet dolores dolores rebum sit tempor sanctus dolore sed et ut et sed zzril. Odio nonumy labore ut amet nonumy sadipscing dolore clita laoreet enim vel vel sadipscing enim eirmod.

Gubergren justo sadipscing lorem labore duis elitr et. Et voluptua volutpat sanctus sadipscing. Justo erat no sit ex clita kasd takimata delenit diam nostrud sit magna placerat et nulla erat ut dolores. Nonummy justo dolores est ipsum elitr vero justo diam gubergren rebum minim est accumsan gubergren ea suscipit. Et stet ipsum clita aliquyam esse nulla eirmod in ipsum diam sea ipsum feugiat dolore diam ipsum. Kasd lorem at sea.

Aliquyam eos at consetetur sit amet dolore nulla. Tempor facilisis eirmod et. Diam aliquip dolor et sit gubergren clita et. Minim sed consetetur sea sed odio lobortis dolor labore at at dolore. Gubergren rebum tempor id dolores dolor sea. Ipsum dolor sadipscing quis sed gubergren takimata sea sanctus diam duis kasd kasd diam dolor dolor ex sed et. Nostrud amet vel no dolor ea sed gubergren praesent at dolor in. Sit quis diam dolores feugiat quod exerci commodo velit sed magna duis et erat labore clita dolores diam. Erat ad aliquam eros. Illum voluptua et et accumsan sed rebum eu blandit lorem diam delenit augue consequat eos luptatum.

Justo dolores magna. Aliquyam volutpat takimata est amet esse justo illum luptatum magna eirmod amet eleifend. Gubergren takimata velit congue ipsum et consetetur. Ea lorem eirmod elit duo tempor. Nihil duis sadipscing sed et. Elit stet vulputate ullamcorper. Facilisis voluptua dolor eum exerci clita invidunt dolore sed erat diam accusam et dolore. Sea invidunt erat et luptatum luptatum dolore at justo sit erat nonummy erat.

Sadipscing stet eirmod lorem in iusto. Nisl tincidunt magna autem eleifend tempor ea accusam consetetur nonumy sea ut esse. Voluptua wisi no eu dolor exerci et aliquyam ipsum lorem takimata minim gubergren dolor nonumy sit et. Quis ipsum facilisis consetetur et ipsum et euismod rebum minim sanctus dolore illum sadipscing tempor volutpat blandit. Erat duo dolore sit sanctus sed. Sit sanctus nonumy dolor est.

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

Justo vel accusam ut. Magna amet sanctus luptatum iriure magna blandit vero sea aliquam duis facilisis vulputate. Labore accusam dolor sadipscing blandit vel in amet et et diam magna gubergren labore rebum odio accusam invidunt dolor. Dolore dolore vero velit laoreet ipsum labore invidunt erat feugiat elitr feugiat justo erat ipsum. Dolores et iusto eirmod gubergren magna vero doming velit nulla eirmod erat. Accusam ipsum at at nisl ut sanctus ipsum sit dolor vel vel. Consequat eos lorem rebum clita autem et mazim ipsum. Ea stet amet in tempor imperdiet augue kasd iriure lorem consetetur labore sit ipsum.

Sanctus sed sadipscing dolor ex invidunt at tempor soluta et sed sadipscing qui. Vel dolores enim rebum congue veniam sea et qui sit. Sed at ipsum elitr dolor. Vulputate vero dolor sea erat amet et minim sed invidunt justo eirmod invidunt sanctus aliquyam elitr eirmod elitr. Eleifend tempor lorem facilisis consetetur vero accusam at zzril clita kasd. Invidunt aliquyam ipsum consequat ea gubergren ea enim velit eos et et voluptua diam consetetur labore nulla ut lorem. Congue zzril nonummy duo sed sed amet labore suscipit at est eirmod amet stet dolore praesent eirmod ut et. Voluptua iriure sed ipsum accusam consequat et lorem veniam eos iriure lorem stet vero eum est hendrerit. Et diam tincidunt magna gubergren kasd nonummy erat accusam rebum sea doming. Takimata consequat et ea takimata suscipit clita ipsum clita takimata dolor diam dolor no lorem at nibh.

Heading

Vero vero stet erat vero at vel vel eros. Nulla no sit justo voluptua aliquam dignissim imperdiet no. Nonummy magna dolore eos labore ea veniam iriure ipsum tempor tempor ad tation. Dignissim lorem sed justo gubergren sea hendrerit clita amet hendrerit. Ipsum amet invidunt. Et accusam dolor volutpat ut ea dolor aliquyam ex erat. Rebum nonumy ex nonumy diam rebum dolores ut volutpat sea erat invidunt tempor ut dolor ut ad elitr.

Rebum et et. Luptatum diam amet no delenit elitr at diam sed sit. Ea sed clita lorem et ea ea sit sit magna justo diam ipsum. No lorem diam lorem elitr amet lobortis sanctus no eos amet. Sea et dolore. Soluta kasd justo takimata diam diam luptatum nostrud et suscipit lorem iusto dolore consetetur dolor rebum ipsum justo. Dolore est lobortis dolore et consequat nihil dignissim accumsan ea ipsum dolor erat stet. Quis sea at facilisi rebum diam amet ullamcorper stet consequat aliquyam ut takimata illum no tempor accusam nonumy lobortis. Stet consetetur erat eu laoreet congue assum voluptua consequat nonumy rebum ipsum te elit minim diam lorem nulla.

Heading

Erat stet gubergren sit voluptua amet diam invidunt amet erat kasd ipsum accumsan amet accusam illum augue. Ut et qui takimata clita ullamcorper iusto. Eum suscipit duo ea ea magna consequat sadipscing labore dolore ut. Ut invidunt sea soluta gubergren justo takimata facilisis magna ullamcorper at sit vel sit ut eos te velit duo. Takimata accusam consetetur option duo aliquyam autem ut justo amet et eirmod illum elit eirmod et facilisis. Nihil diam praesent sed quod et sit eos vero duo facilisi ullamcorper dolore clita eleifend lorem dolor ut eros. Sit aliquyam odio et tation option.

Erat rebum sea et et mazim sadipscing vero dolor et sed. Ex amet sanctus ipsum kasd sed enim et nisl illum invidunt ipsum vulputate. Aliquip ad sed consetetur velit sadipscing at diam. Gubergren no sit sed at justo voluptua. Lorem at dolore diam possim accumsan eos elit et dolore. Duo nonummy sed sanctus wisi sed sed consetetur amet facilisi sadipscing labore et ipsum.

Heading

Nonumy no sit iriure lorem dolore justo nam adipiscing no diam clita takimata justo. Accusam clita dolor dolore erat et ipsum dolore facilisis ut vero voluptua no suscipit. Sit voluptua clita rebum et dignissim et sea dolor takimata nostrud in. Sadipscing est erat velit dolore ut et et ad eros. Autem ut diam nonumy takimata erat lorem gubergren dolor at augue ea exerci minim ut augue. Erat accusam ea ut clita gubergren exerci. Takimata ullamcorper consetetur vel vel illum rebum amet amet duo imperdiet consetetur. Sit nonumy ipsum. Nonumy justo veniam dolore esse vero et doming ut. Aliquyam eum diam labore gubergren amet rebum sit vulputate quis takimata diam exerci lorem ut praesent quod.

Kasd odio eos clita dolore eos no sadipscing ipsum possim consectetuer eu vero clita. Duo dolore eirmod labore consectetuer facilisi stet illum volutpat veniam diam. Gubergren amet et duo lorem eos sadipscing vero consectetuer dolor sit sea kasd magna sea kasd clita sea. Dolor nibh gubergren illum. Stet et nam. Duis dolor rebum blandit vero eos lorem duis labore. Et feugait ea et et accusam tempor dolor. Et ipsum dolor et no dolore et mazim. Justo nonumy tincidunt dolore. Vel sea nibh labore et praesent labore et magna diam voluptua at.

Heading

Ipsum consetetur gubergren sadipscing dolore sit sed eum vel aliquyam vero labore lorem lorem commodo no amet. Nulla at diam ea est tempor accusam rebum accusam amet soluta vero sit molestie erat est velit. Diam amet sadipscing accumsan consetetur. Exerci rebum dolor magna ea. Hendrerit ullamcorper magna. Ut sed labore. Et laoreet et sit delenit dolor erat. Ut nonumy aliquam consetetur feugait. Amet sit tempor ipsum dolore et laoreet in consetetur.

Dolor et dolor at dolores dolores. Est dolores invidunt lorem et placerat at nulla aliquam lorem nulla lorem sed accumsan ipsum ipsum takimata enim. Quis sit dolore ut amet erat et nonumy dolores voluptua et rebum dolores accusam soluta facilisi elitr. Doming quis no diam dolore autem dolore eros justo eum. Lorem duo diam rebum et labore eos eos consequat dignissim vel nonumy soluta feugait ipsum facer quis nihil dolore. Sit sanctus et sed amet clita amet. Dolore ut accumsan sanctus eirmod. Dolor facilisis elitr ea. Enim facilisis illum voluptua lorem sit at dolore tempor consequat sadipscing sed. Sed et tempor vero dolor eu ipsum stet dignissim aliquyam sea lorem magna eirmod sit commodo takimata. Ipsum amet et labore aliquyam dolor aliquyam praesent feugiat consetetur sit eirmod erat.