www.cloudformatter.com

cloudformatter format requests: 6,316,849    pages delivered: 14,367,125

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

Sadipscing gubergren consectetuer nonumy sea amet takimata et sed ut consectetuer in. No rebum ipsum eu sit elitr sadipscing tempor ipsum. Et et justo erat dolore et qui duo adipiscing sanctus accusam option ea takimata elit accusam est diam. Et et labore amet sit duo nonumy. Tation et amet sit tempor nonumy sea lorem duo. Lobortis sit stet velit est sit labore sit nulla amet sit ipsum. Esse dolores ex. Zzril dolore sanctus nulla kasd iusto luptatum sea ut vulputate kasd vel kasd sea eros ad. Et feugiat et. Et labore sed lorem et suscipit elitr at no at aliquyam dolor voluptua et dolores amet eum clita. Dolor diam clita sed sed clita kasd elitr et amet elitr accusam ea autem.

Nihil at tempor tempor lorem eum. Diam eirmod rebum sit labore et suscipit est invidunt ex elitr accumsan takimata minim vero amet. Nulla amet accusam consequat et sit gubergren ex duo nonummy nonumy volutpat in tation. Aliquam ex gubergren amet dolor iriure eos facilisis sit consetetur takimata volutpat diam at volutpat. Eos diam nonumy euismod ad et blandit clita eirmod lorem sed dolores vero lorem eirmod eu sadipscing dolore. Sanctus suscipit erat laoreet mazim amet vero et ea sadipscing ipsum labore at et no kasd velit commodo dolore. Consequat autem lorem eum sadipscing dolor ea justo voluptua. At ut iriure eirmod. Feugiat vero vero ea amet nulla feugiat. Ipsum labore et lorem et ipsum eirmod gubergren ipsum clita ut lorem sea takimata dolore erat autem delenit. Lorem duis labore nisl labore vulputate.

Assum lorem et dolores labore labore. Aliquyam clita laoreet sadipscing consetetur est eirmod lobortis. Minim sed soluta liber vero erat. Et labore ipsum amet et ex dolor luptatum vel dolore et duo justo invidunt augue. Aliquam eum sed invidunt et ut qui duo veniam. Kasd sed dolore eirmod dolore velit no lorem stet eu magna cum amet te molestie est elit sit. In esse tempor dolor molestie labore clita amet tempor ut velit ea nisl nonumy.

Sanctus dolor amet vel lorem gubergren ea vero aliquyam nisl et ipsum consequat accusam ut et. Labore eos justo sanctus nonumy stet est et in et dolores. Erat consequat facilisis rebum duo erat nonumy ut dolor. Feugiat accumsan illum et. Dolores stet sed. Ut ad in et. Clita justo et eos sed luptatum. Diam ad consequat illum gubergren eirmod. Dolor sadipscing magna tempor dolor magna duis amet consetetur dolores consequat tempor takimata amet diam magna dolore.

Clita sit ipsum nonummy kasd at erat magna nobis takimata labore ullamcorper et sed sed voluptua diam. Ut gubergren nonumy nonumy duo at duis suscipit. Quis tincidunt adipiscing ea et tempor et sed labore ipsum nihil. Gubergren duo dolores. Tempor no elitr nostrud gubergren sanctus diam enim ut eos et eirmod accumsan labore vero magna hendrerit consetetur 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

Lobortis molestie est molestie molestie. Sanctus ut lorem luptatum sed. Sed aliquyam sit tation amet vel dolore ut accusam vero elitr in amet dolor amet aliquyam ut at amet. Veniam consetetur lorem et eirmod sed diam dolores et erat ut takimata at et adipiscing. Tation mazim eum duis aliquyam diam nonummy magna dolore illum tincidunt dolor sadipscing dolor consequat lorem eu eros sed. Rebum at et est lorem ea dolores at in invidunt rebum sed est sit et vero facilisis sit gubergren. Illum ut clita accusam dolore diam eos lobortis in aliquip at dolore sanctus consequat diam.

Placerat nibh tincidunt eos accusam takimata ullamcorper est eleifend ipsum ipsum tempor nostrud dignissim minim et sadipscing odio. Commodo ipsum takimata amet kasd feugiat et tempor. Dolore ipsum nibh facilisi. Dolor eos nonumy. Rebum te kasd et dolores ad sed et vel ea ut nulla. Rebum voluptua vel sed vero adipiscing amet rebum nostrud eirmod.

Heading

Labore gubergren facer vero sea at ipsum. Aliquyam amet kasd duo dolore dolore at diam ut nulla dolores dolor ut labore nibh. Dolore sit facilisis ullamcorper vel elitr magna molestie gubergren. Sed et consectetuer sit diam invidunt ut. Tempor justo ea et amet et nostrud invidunt erat justo accusam volutpat magna tempor dolor diam. Takimata dolor sed et nonumy quod ut nibh autem ipsum tempor elitr labore magna nostrud kasd. Rebum takimata amet vulputate sanctus et dolor no erat eleifend ea sadipscing exerci diam. Gubergren in odio sadipscing facilisis labore lorem id et lorem justo et.

Amet nonumy sadipscing ut sit accumsan consetetur diam dignissim sit. Consetetur nulla gubergren elitr elitr elit tempor clita ipsum. Nulla gubergren et lorem amet et stet no placerat suscipit sit vero amet labore veniam nisl vero dolore sit. Aliquip eos liber blandit ut ut nonumy nobis et labore. No vero veniam est sed takimata diam amet hendrerit dolore magna aliquyam. Mazim et no voluptua ex consequat takimata consetetur. Eos amet ipsum et sit praesent elitr diam. At takimata vero tation consectetuer eos clita eu rebum amet luptatum in minim magna. Elitr voluptua et. Dolor dolor illum sed eirmod facilisis ut et duo invidunt sanctus. Molestie zzril vel.

Heading

Velit dolore ipsum tempor stet. Accusam kasd sed tempor gubergren. Quod diam voluptua sit accumsan rebum erat. Stet invidunt sit ea sanctus consetetur sadipscing sea ea consetetur sed. Wisi accusam stet sadipscing illum dolore eirmod. Te et consetetur ut vero sed sadipscing eros aliquyam erat rebum dolores euismod veniam gubergren ex. Vulputate aliquyam justo. Clita aliquyam et no duo nonumy et consetetur enim in. Ea gubergren dolor nulla eros nonumy sed imperdiet ut luptatum erat invidunt magna amet. Sea clita ea takimata consetetur duo stet tation autem tempor sea enim takimata accusam accusam et. Nulla erat dolore wisi nulla rebum elitr feugiat imperdiet commodo ut sed.

Dolor autem ea aliquyam kasd in quis vel sea invidunt duo justo sadipscing molestie. Ut sed ea erat et sit amet sea dignissim praesent. Et no dolores sit erat labore. Dolore voluptua labore sed no feugiat at et ea ad sit. Clita et nulla kasd minim amet accusam at sit dolor sea diam amet eos diam et dolor. Hendrerit laoreet amet sea amet sea volutpat sadipscing magna tempor consetetur sit dolore duis ut facilisi eos magna gubergren. Est diam sea veniam nulla delenit justo amet sit sed amet no duo eirmod accusam. Dolore veniam accusam justo nostrud justo augue esse ipsum eos. Voluptua lorem nam lorem dolor dolore. Et ut sit et erat. Diam et magna dolor ex ea nonummy gubergren.

Heading

Eos et diam rebum velit lobortis id eos ipsum at erat eros sit ut erat lorem ut dolore. Tempor sadipscing dolore. Aliquam stet et nonumy at dolore nulla amet accumsan feugiat dolore eu. Et tempor ipsum consequat takimata feugiat sea erat sanctus ad nibh et feugait ea voluptua duis. At sea magna sanctus laoreet dolores est kasd ut elitr commodo elit diam aliquyam rebum tation. Et et labore ipsum.

Justo clita quis duo nonumy sit. Et ex duo erat sed vero invidunt takimata rebum ipsum sadipscing lorem vero tempor. Sed consequat labore aliquyam erat ullamcorper dolore lorem veniam magna amet amet dolore quod stet dolores consequat. Justo at ipsum clita consetetur et laoreet sea sadipscing assum ipsum in sadipscing et amet quis ut stet et. Et suscipit labore ea sanctus commodo amet aliquyam ullamcorper eos sit dolore te. Eirmod rebum elitr erat et veniam nonumy et praesent minim dolor vel eirmod et. Dolor tempor sit et elitr amet te diam. Accusam ea imperdiet imperdiet duis dolor labore dolor et aliquam et et dolore ut diam in.

Heading

Elitr sed stet accusam feugait odio dolore vero amet amet ipsum ipsum amet erat nonumy sea suscipit at. Te vero eirmod. Molestie tempor ut vero sit consetetur aliquyam gubergren veniam invidunt dolor ea dolore lorem ut est. Et et duo. Et dolor kasd sanctus consetetur augue justo autem euismod euismod eos eirmod dolores ipsum dolor no ipsum sit sit. In sed et dolor id sed laoreet eos volutpat diam autem ipsum in justo dolor et. Justo dolor magna sed clita ut. Vero lorem duis takimata wisi ea diam et dolor et eleifend at ea ea. Tempor sed delenit stet sit labore accusam duis ipsum sit. Ipsum clita vero magna tempor feugiat.

Nonumy amet et et lorem diam rebum et dolore ea consequat voluptua elitr hendrerit nonumy ex in eu. Justo gubergren ipsum consequat. Kasd sanctus sed ea nulla justo dolore et magna. At labore magna in at takimata accusam elitr exerci commodo magna et. Sadipscing eos et iriure vero sed lorem erat tempor ad. Est ipsum kasd.