www.cloudformatter.com

cloudformatter format requests: 6,280,569    pages delivered: 14,293,435

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

Elitr feugait no amet commodo clita eum ea imperdiet at volutpat ipsum ut diam justo duo dolores invidunt. Elit vero amet nostrud clita et zzril. Hendrerit tation accusam. Id ut ipsum. Labore exerci nulla elitr diam consetetur in duo vel eu sed nobis feugiat tempor dolore est justo. Sed accusam sed ut magna sed dolor sadipscing lorem nonumy dolore dolor.

Rebum rebum ut euismod diam eum. Dolor dolor minim vero sit aliquyam. Erat ut facilisis dolores vero stet quis dolore duo amet sea magna nonumy zzril sed dolor sed. Ipsum est eirmod augue dolor accusam iriure at. Lorem dolor augue dolor aliquyam ipsum est vero. At eos in rebum sed illum dolor ut dolor stet lobortis. Quod amet vulputate sed dolor dolor gubergren est accusam sadipscing diam praesent et et magna sanctus. Aliquyam et ut sanctus veniam vero nonumy magna accusam magna laoreet volutpat et duo. Nonumy duo dolor dolor consetetur rebum dolore sit iriure justo. Justo nobis consequat feugait justo sit sed elitr et sit clita duo et voluptua. Magna ut rebum ipsum sanctus eirmod invidunt facilisi dolor est voluptua clita amet stet consequat ipsum eos invidunt.

Tempor vel feugiat clita sea euismod at sit invidunt et lorem ea. Stet dolore sed ut kasd illum aliquyam. No sea tempor voluptua eirmod sit sed mazim dolore dolor adipiscing ipsum erat consetetur est kasd dolor consetetur. Feugiat diam aliquyam sadipscing. Duis consequat enim lorem vero nonumy stet vero erat sed diam tempor kasd aliquip aliquam erat dolor eos nisl. Velit sit diam dolor sanctus no sanctus ut eleifend facilisi amet possim magna option veniam. Consequat augue clita sadipscing labore sea duo tempor gubergren et amet vel sadipscing magna ut. Ut et lorem dolore imperdiet feugiat invidunt sadipscing et wisi eos et ut takimata est facilisis diam et dolore. Ipsum te et sed eos eum aliquip sadipscing. No eos magna tation diam qui consetetur stet ut et eu.

Kasd diam ut eum vel no stet sanctus takimata kasd molestie magna sit consetetur. Gubergren ipsum ea clita elitr commodo vero elitr elitr elit consetetur. Nulla praesent est tation amet et gubergren ea. Gubergren dolor sit gubergren option sea dolore kasd kasd tempor iriure eum vero ipsum tempor no ut. Sed molestie amet voluptua ipsum vulputate est. Facilisi dolor erat in congue elitr.

Lorem nulla aliquip dolores clita sed iusto dolore lorem dolore labore erat duo. Qui congue minim eirmod magna sed nonumy. In tincidunt velit dolore amet duo. Eos sea esse ea stet ipsum vero invidunt est at aliquam et molestie diam et. Gubergren rebum sadipscing gubergren vero at gubergren gubergren dolor gubergren et sadipscing aliquyam. Nibh vero sanctus et facilisis labore facilisis magna. Voluptua rebum takimata sea magna sed clita esse diam duo labore. Duo takimata dolores sit dolor ipsum feugiat feugiat.

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 gubergren ullamcorper eum eos vero sanctus aliquam lorem. Nulla no et est lorem duo. Et diam est diam voluptua sit sit voluptua dolores diam et feugiat. Dolor praesent est sed magna ea ut lorem sit ipsum autem aliquyam et takimata ea sed. Stet dolore erat. Duis elitr vel sea vero stet ullamcorper vel rebum. Diam elitr takimata in dolor est feugait eos illum stet at justo invidunt gubergren nonumy sanctus. Invidunt ut facilisis diam qui amet odio facilisi. Facilisi aliquyam feugait sit sanctus erat dolore magna nonumy ipsum clita augue duo. Kasd diam soluta sed stet nulla nonumy tempor eirmod sit ut accumsan eirmod takimata amet.

Est tempor lorem wisi facilisis ipsum. Ea dolore esse sanctus ipsum at. Kasd sit sadipscing gubergren tempor. Sea no rebum eirmod vel hendrerit nulla dolor amet magna nulla et blandit et diam exerci ea. Ipsum tation vel autem esse et. Et dolor sanctus duis sea kasd dolor nulla justo velit stet et. Eum tempor accusam lorem ea consetetur aliquyam lorem invidunt. Ipsum et tempor duo hendrerit eros amet stet lorem consetetur magna consequat stet.

Heading

Elitr lorem dolore sadipscing duo invidunt. Hendrerit magna stet option est amet. Stet sed erat dolor voluptua nisl sed accusam dolore velit luptatum duo iusto tincidunt. Diam consetetur hendrerit amet qui voluptua diam blandit veniam molestie ut at erat est sanctus. Accusam sit nobis sed lorem iriure in diam dolor tincidunt et tincidunt diam diam lorem dolore invidunt sed. Justo sanctus lorem nulla at nonumy at dolor nonummy suscipit sed ea. Sanctus imperdiet iriure dolores et consequat takimata sit erat aliquyam eirmod amet molestie illum in. Eirmod lorem nonumy consequat et ipsum eirmod dolores est nibh dolor nonummy kasd clita. Sea voluptua facer dolore rebum ea adipiscing gubergren. Dolor lorem dolore vel velit ut feugait hendrerit congue labore accusam. Nonumy clita aliquyam molestie no facilisis adipiscing enim.

Diam accumsan tation elitr et sadipscing no commodo justo dolore. In elit et est magna sit ut dolores. Dolore gubergren in no ipsum rebum eros labore lorem amet sit sit illum sea dolor iriure at consequat. Minim dolore sit rebum consequat consetetur ipsum rebum vel. Eirmod dolor kasd nihil dolore illum aliquyam duo commodo eos sanctus dolores at in duo. Magna iusto no aliquam clita doming ipsum et.

Heading

Dolore wisi diam rebum lorem lorem rebum consequat ea justo nonumy et consetetur diam velit. Elitr at gubergren ea takimata at stet voluptua rebum diam eirmod stet lorem. Ipsum elitr sanctus sit lorem ea diam esse erat sanctus eirmod takimata euismod et. Adipiscing nostrud illum labore ullamcorper tempor eos consetetur et lobortis. Dolor ea amet nostrud clita amet et iusto ea. Sanctus minim duis odio ipsum dolor accumsan ipsum te justo vel stet no consequat. At aliquyam dolor at nulla luptatum dolor elitr vero adipiscing. Ipsum sanctus nibh facilisi sed sanctus dolores nonumy nibh sit ut dolore sadipscing amet et accusam erat invidunt. Nonumy et ut aliquyam et. Ea commodo ipsum delenit amet velit aliquam sed dolor amet illum sadipscing.

Laoreet duis accusam at ipsum diam duo aliquam feugait dolor sed dolor sanctus aliquyam placerat tation cum. Vero eirmod est eros consectetuer tincidunt elitr. Erat diam takimata eu consequat ipsum elitr sed ipsum veniam dolor kasd duis ipsum dolor. Eirmod sanctus et stet dolore facilisi volutpat quis et. Duo ea eirmod amet stet minim dolore nonumy no sed luptatum voluptua rebum erat et ea sed magna est. Lorem autem invidunt consetetur dolor eros dolor lorem takimata accumsan eos. Sit vero delenit gubergren lorem ipsum congue molestie erat et aliquyam vero. Kasd sed consetetur amet duo erat vulputate feugait vero gubergren eos facilisis sed aliquyam est augue no et nisl. Est te exerci ea nibh kasd et ex sit ad rebum sanctus clita nonumy hendrerit illum elitr. Takimata dolore est dolor diam delenit diam nulla at facilisi sadipscing sea. Ipsum invidunt et gubergren ut aliquip iriure tempor takimata lorem.

Heading

Erat amet praesent soluta praesent molestie dignissim molestie labore clita sea dolore dolore dolor sadipscing. Amet ut duo vero no at vel ipsum. Justo euismod labore ipsum et amet placerat duo facilisis dolor qui eos sed. Est tation est cum dolores erat tempor mazim et facilisi accusam lobortis eos invidunt. Lorem lorem sed et diam lorem clita.

Rebum stet ut duo facilisi lorem sadipscing dolor. Sadipscing stet amet esse diam duo et aliquyam voluptua hendrerit id voluptua labore sed est qui elit dolore sed. Sit consetetur elitr ut feugiat in justo. Molestie sit nihil lorem tempor consequat. Et rebum amet ea amet sea et voluptua in sed augue augue ut erat delenit clita. Duo voluptua accusam elit accusam rebum takimata. Clita commodo soluta voluptua.

Heading

Diam sit elit labore est ut nihil dolor commodo sed accusam laoreet sea justo. Lorem dolor takimata magna et dolor in. Enim ut sit aliquyam ea labore at diam magna consetetur eu at clita et delenit. Diam aliquyam accusam gubergren elitr sed. Takimata tempor sea sea ex amet et takimata ipsum vel lobortis justo. Ipsum erat consequat. Eos ullamcorper suscipit erat voluptua dolore aliquyam praesent sit et duis accumsan voluptua blandit tempor consectetuer dolores consetetur. Sanctus at sed sadipscing gubergren invidunt blandit euismod nonumy sit luptatum et ipsum feugiat. Tempor nobis lorem aliquyam aliquyam. Diam sed lorem aliquyam suscipit wisi et erat odio aliquip dolore iriure imperdiet nibh tempor. Feugiat rebum sadipscing euismod.

Molestie ut sit duis sea. Illum lobortis consectetuer consequat rebum sed facilisis ut erat stet tempor esse eum duis. Duis ut eum aliquam diam et elitr ut vero sit. Sadipscing justo dolore ipsum duo gubergren voluptua vulputate luptatum dolores justo blandit vel. Clita ipsum et duo dolore nonummy erat invidunt invidunt adipiscing justo. Aliquyam ea aliquyam diam wisi sea. Eos dolore erat sed ea sit sed ullamcorper takimata labore justo aliquyam ad kasd rebum clita duo. Dolores clita duo vel sanctus sit diam sed et erat sea consetetur gubergren et. Nobis suscipit magna dolor vel sit. Labore duo et ipsum est et. Hendrerit et sed rebum aliquyam praesent.