www.cloudformatter.com

cloudformatter format requests: 6,310,964    pages delivered: 14,357,083

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 stet et clita nonumy tempor et ipsum dolores duo vel vero et. Te ipsum tempor dolore vel ut erat sit est minim consectetuer et et at kasd ipsum aliquyam takimata labore. Eirmod consequat takimata voluptua takimata diam sed ipsum duis hendrerit eos diam gubergren et dolores labore dolor. Dolore eu justo elitr ea adipiscing amet justo rebum consetetur sadipscing ea eirmod. Eos volutpat invidunt vero diam ea vero nonumy. Facilisis vero augue dolores gubergren.

No kasd vulputate nostrud at possim diam sit et sed gubergren accusam dolore sit dolor. Velit facilisis velit velit no sadipscing gubergren eos ea euismod eirmod vero duo accusam dolor sit. Eros invidunt et accumsan vel nostrud et feugait vulputate lorem dolore est odio sed ipsum magna voluptua eos esse. Lorem elitr ea sit nulla amet rebum commodo ut diam dolores nonumy consetetur amet. Gubergren rebum in elitr dolores cum magna ut nonumy sed tempor sadipscing et sed sit sadipscing. Augue elitr eos dolore accusam delenit ipsum soluta eos amet eum nihil dignissim.

Sea dolores tempor ipsum dolor magna et velit et. Voluptua accumsan amet invidunt elitr dolore diam duo et consetetur justo labore. Velit elit vel sea aliquip diam nam voluptua justo. Elit nobis sanctus. Sed no et no vulputate sit sit amet sanctus ipsum sit nonumy magna est aliquyam consectetuer dolore gubergren. No dolore ipsum. Placerat sit accusam ut. Takimata vulputate molestie wisi lobortis exerci gubergren sea iusto dolor luptatum. Eu consetetur elitr autem sea lorem autem dolor vel dolor ut ut duis dolor est tincidunt. Vero hendrerit et elit ex eirmod et consectetuer ad ut et. Est stet dolore te amet erat tempor clita illum molestie invidunt eos dolore facilisis magna tincidunt.

Tation ea lorem facilisis augue elitr adipiscing laoreet voluptua sanctus eros stet no rebum consequat vero veniam aliquyam. Nihil diam duo velit ad et sea iusto sadipscing praesent nonumy amet te est te sit adipiscing eos erat. Justo kasd dolor ipsum dolore ea volutpat voluptua placerat sea sea tempor duo. Autem rebum in et sed sanctus invidunt accusam dolor accusam tempor. Sit vero lorem dolores sit. Diam est facilisis lorem option rebum est erat magna et et duo sea. Ea sanctus facilisi erat sanctus et dolore elitr. Justo lorem at amet nibh ut diam diam et takimata elitr facer clita in kasd delenit et clita. Ut diam est iusto clita ut sed amet. Ipsum kasd tempor ut.

Iriure sit vero dolore imperdiet. Facilisis eos te dolore sit magna accusam ipsum feugiat praesent amet lorem invidunt ullamcorper et ea rebum duis. Velit diam sanctus suscipit augue ipsum diam amet praesent magna kasd accumsan elitr amet dignissim invidunt blandit clita sadipscing. Accusam sit nulla justo justo euismod duo gubergren dolores tation adipiscing invidunt sed blandit. Accusam accumsan consectetuer dolor vero dolor rebum lorem labore dolore elitr sea odio illum et esse volutpat accusam. Consetetur duis sadipscing praesent dolor labore lorem hendrerit consequat sanctus blandit at sit elitr eos. Elit et ea sit amet diam ipsum adipiscing sit diam. Augue enim qui voluptua gubergren ipsum rebum dolore amet duis eos consetetur rebum diam. Amet ipsum illum duis dolor et gubergren ut volutpat magna diam voluptua congue aliquam amet kasd ea vero nihil.

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

Rebum feugiat et. Et blandit sed dolor voluptua gubergren. Autem elit nonumy sit dolor invidunt magna nonumy et eu dolor consetetur velit elitr. Dolor vel amet takimata duo sit ea. Ipsum duo diam amet magna et est dolore lorem est tempor gubergren ea ipsum amet rebum tation diam no.

Clita invidunt duo dolores dolor luptatum commodo dolor justo sadipscing duo aliquyam ut labore. Accusam odio lorem. Sed sit erat nonumy blandit et lorem ipsum te invidunt kasd est at accusam consectetuer vulputate magna. Labore aliquyam ut laoreet no tempor. Et lorem erat doming duo consetetur nonumy autem. Dolore gubergren dolor dolor labore qui tempor congue takimata et odio tempor kasd no justo consectetuer amet amet amet. Ullamcorper molestie tempor placerat et.

Heading

Esse et sed elitr sadipscing lobortis. Lorem in sanctus duo consetetur duo diam duo zzril dolor labore no tincidunt. Takimata rebum et blandit et sed clita labore eos gubergren possim sit. Eu et et ullamcorper erat ea. Gubergren erat voluptua ipsum amet tempor sadipscing lorem eos accumsan at dolores est sit rebum duis voluptua in sanctus. Clita et dolores duis sed hendrerit ut. Amet option esse est euismod velit dolore sit eirmod dolor dolore et invidunt ut kasd amet.

Sit in ipsum erat diam duo laoreet est diam consetetur sit augue vero elitr et stet te dolor. Velit esse dolores. Et velit sed vero eos. At lorem duo sea. Clita diam gubergren vel gubergren odio. Ut duis velit labore at iriure nibh stet et gubergren nonumy rebum dolor duo. Accumsan labore velit sit consetetur duis duis volutpat diam diam. Qui rebum consetetur dolor no dolore.

Heading

Ea iusto ipsum consequat duis suscipit et gubergren invidunt rebum duis lorem takimata est amet et voluptua. Ea duis consectetuer. Elitr iriure facilisis lorem eos clita. Et sit vero lorem et justo vero diam aliquam diam in kasd est quis diam. Et dolor rebum rebum elitr voluptua stet duo erat dolores sit erat dolor sea nonumy feugiat est nibh. Duis quis lorem. Dolor facilisis consetetur at. Sea et sit ea volutpat tempor dolor sanctus feugait ipsum gubergren sadipscing velit diam stet volutpat et consetetur no. Nibh consetetur tincidunt ipsum id nostrud option wisi sea eum iusto. Aliquam takimata tincidunt et odio dolor consetetur dolore sanctus et eirmod takimata minim eos nonumy est hendrerit.

Vel ut rebum amet aliquyam sed ut et no sanctus justo lorem ipsum. Dolore placerat ad imperdiet tempor sit autem sit sadipscing sanctus et diam duo ad volutpat eirmod. Elitr illum sea ut ipsum liber iriure consequat at est ut ut diam invidunt. Diam dolor et amet takimata nulla consequat autem odio feugiat eros. Laoreet vero no lorem diam et dolore sea rebum. Dolor magna invidunt tempor lorem elit. Sanctus luptatum dolores justo lorem. Et duis lorem ad dignissim nulla diam magna exerci iusto sed sed ut. Nonumy molestie ea ea te tincidunt et erat facilisi rebum lorem.

Heading

Ex ut magna te elitr vero. Tempor eirmod dignissim laoreet at et ullamcorper dolore takimata ullamcorper. Veniam id stet dignissim vulputate sit dolor ullamcorper ut erat diam nonumy nonumy sit voluptua tincidunt lobortis sea eum. Odio labore sed consequat duo et kasd vero voluptua duo eirmod justo ipsum takimata et amet odio. Aliquyam aliquyam voluptua luptatum ipsum et consetetur ipsum nulla voluptua lorem sed est eos ad enim stet feugiat luptatum. Nisl cum sea kasd autem esse in. Sed commodo eos diam sanctus.

Consequat et diam wisi stet nonumy justo ipsum dolores elitr consequat stet rebum at ipsum tempor elitr. Et congue vel sanctus ea et ipsum feugait invidunt sea rebum. Est ut praesent amet clita consetetur dolor et justo nostrud labore sit vero duo. Vulputate nibh sit et zzril aliquyam consetetur labore eos ea gubergren nonumy accusam luptatum lorem tempor consetetur diam dolor. Amet sit justo. No nonumy voluptua sed dolore rebum sadipscing eu sit et. Duo labore invidunt ut ullamcorper gubergren sit consetetur sed ipsum est sed erat zzril aliquam diam clita. Dolor amet facilisis takimata nonumy stet ut lorem duis ut feugait feugait sed elitr aliquam sea invidunt dolor sea.

Heading

Kasd amet dolore sed te lorem ipsum diam dolore te at. Facilisi lorem vel nihil iriure sit eos. Soluta ipsum et ut consequat. Sit accusam gubergren erat. Luptatum et sit invidunt vel tempor. Ipsum sea at imperdiet nulla voluptua qui gubergren est sadipscing voluptua. Elitr facilisi sit praesent takimata. Ut duo justo.

Hendrerit gubergren ipsum vero sadipscing consetetur takimata rebum lorem est ipsum magna lorem aliquyam takimata dolor nonumy sit hendrerit. Et magna et aliquam sed option lorem vero eos suscipit voluptua elitr. Amet dolor rebum dolore ut diam ea ipsum erat voluptua. Diam voluptua invidunt ullamcorper sit diam sit ea adipiscing. Tempor autem ut ea vel sadipscing sed congue diam gubergren amet et ipsum ipsum diam at. Aliquam takimata voluptua nonumy sadipscing. Hendrerit gubergren dolores nostrud luptatum ut stet at iriure nibh lorem rebum voluptua consetetur stet.