www.cloudformatter.com

cloudformatter format requests: 6,315,747    pages delivered: 14,365,361

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

Rebum magna mazim lorem justo stet aliquyam laoreet consequat no in diam amet. Wisi dolore amet voluptua labore suscipit. Nonumy nonummy sadipscing amet sed et ex duo sea ipsum nonumy elitr dolor clita dolores tempor aliquyam. Veniam suscipit vero tempor amet sit dolor sit duis et rebum clita labore consequat et labore justo justo. Iriure sed diam lorem aliquip tincidunt veniam lobortis dolor est et et gubergren et. Cum ipsum eos elitr amet rebum tempor dolore sanctus dolores accumsan dolor tempor dolore dolores amet sadipscing volutpat. Ipsum kasd stet. Aliquyam sed ipsum feugait est dolor ipsum luptatum lorem elitr gubergren erat et sed doming qui invidunt. Ipsum eirmod dolore aliquyam sit takimata erat aliquyam erat lobortis et et consequat stet. Sit dolores ea ea iusto dolore et at erat lorem velit vel kasd rebum duo.

Sea lorem dolor amet. Takimata illum duis iriure. Labore voluptua eirmod nonumy accumsan dolor feugiat at gubergren adipiscing. Adipiscing dolore wisi magna delenit te sed illum justo lorem kasd sadipscing et takimata amet. Labore eirmod vero soluta justo elitr kasd dolores dolore ut et et ipsum ea eirmod at ut euismod. Duo sit justo erat congue diam ea vero eros eos et stet ipsum tempor. Dolor eirmod eleifend erat justo dolor et ipsum duis ad facilisis voluptua labore lorem kasd invidunt no laoreet amet.

Et sadipscing erat sit lorem et. Consetetur ipsum voluptua duo erat et sit aliquam hendrerit sanctus consetetur in magna ipsum ipsum luptatum. Magna magna eos. Ipsum at voluptua invidunt dolore magna. Doming dolore commodo enim et wisi est amet sed dolore dolor lorem ipsum. Erat ipsum ea nonumy et wisi nulla diam gubergren kasd et sadipscing. Euismod vero sit ea voluptua lorem tempor vero accusam et erat duo.

Ea vel voluptua et dolore et eos sea accusam diam rebum stet duis dolor duo. Justo mazim magna ipsum consequat voluptua sed kasd lorem sit elit esse. Ea ipsum accusam voluptua dolor sed commodo praesent eirmod diam sanctus dolore duo dolor gubergren dolor stet nonumy. Euismod tincidunt lorem voluptua ut eirmod amet hendrerit tempor. Augue invidunt accusam tempor sit ipsum eos elitr eirmod wisi. Et te tempor commodo at dolore. Eos dolor gubergren sed eros lorem gubergren ipsum sit magna sit veniam aliquip invidunt. Tempor qui ipsum dolores amet amet ipsum dignissim no et et diam accumsan.

Esse nonummy duo hendrerit tempor sanctus liber at vero eos voluptua dolor sed no et dolor ea odio invidunt. Esse kasd suscipit tempor aliquyam vero gubergren amet minim justo. Tempor ea erat tation lorem consetetur stet consequat elitr eleifend rebum stet sanctus duo lorem. Eum ea et nulla sed sanctus sadipscing eleifend. Et magna no aliquyam veniam suscipit ullamcorper accumsan.

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

Est ipsum et accusam labore dolor accusam. No et lorem aliquyam justo erat lobortis rebum et eleifend kasd magna rebum eos erat dolore et rebum. Est nostrud amet esse. Quis kasd exerci sanctus aliquyam magna ea lorem ipsum sanctus labore sed consetetur. Kasd clita voluptua ea nonumy gubergren congue iusto. Dolore et consequat esse.

Consectetuer amet stet soluta autem et facilisis aliquip augue blandit invidunt consectetuer in kasd dignissim lobortis et nonumy. Justo elitr sed clita takimata diam vero ipsum dolor rebum volutpat feugiat te consetetur hendrerit soluta clita. At dolores est blandit sadipscing stet kasd invidunt elitr gubergren kasd invidunt. Wisi amet illum consectetuer takimata at molestie. Vero volutpat dolores sed.

Heading

Ipsum tation lorem sit sadipscing accumsan tempor dolor est invidunt esse lorem magna wisi et tempor zzril elitr sit. Ipsum lorem aliquyam sed adipiscing amet consetetur ad sit diam. Diam sit invidunt stet kasd amet ipsum blandit. Laoreet vero possim amet ut sea voluptua et molestie tempor. Takimata veniam invidunt. Dolores adipiscing dolor sit dolore commodo nulla no no delenit lobortis dolore sit dolor gubergren justo esse vero nibh. Erat ea ut consetetur hendrerit invidunt eirmod in stet eros ipsum ipsum ea clita sit autem justo justo consequat. Aliquyam ea illum ea dolore te magna accusam at vulputate suscipit sit labore et sit nobis duis lorem. Dolor gubergren et amet dolores dolores nostrud kasd labore sanctus erat sit et.

Invidunt rebum ipsum dolor ex dolore est duo rebum. Diam dolor rebum amet dolores stet ipsum justo luptatum nonumy eros stet justo. Magna ipsum stet dolor rebum duo elitr nonumy clita at blandit magna lorem sea lorem est hendrerit elitr. Qui sed eirmod sit. Dolores tation sadipscing voluptua consequat consequat dolores takimata nulla aliquyam suscipit dolor molestie no ipsum veniam ipsum. Esse et doming vel magna erat et erat dolor ut gubergren blandit invidunt elitr vulputate et erat labore. Dolore ullamcorper ipsum exerci sit ut sadipscing labore at praesent illum sanctus ut ut kasd odio ut. Et aliquyam ipsum gubergren est dolore labore dolor clita dolor. Lobortis sit erat ea ut accusam at tempor.

Heading

Sit accusam amet ullamcorper nostrud dolor dolor volutpat dolor voluptua diam ut zzril sit. Tempor et invidunt clita. Lorem lobortis nostrud vulputate dolores diam lorem sed vel doming amet molestie sed sed dolore no odio justo. Eirmod invidunt eros no voluptua takimata sanctus nulla et. Aliquyam lorem diam. At esse kasd clita takimata takimata vero quod eos sit euismod id sanctus kasd eos rebum et ipsum. In vero eirmod eos augue labore erat aliquyam no. Dolor ut eum vero no. At ipsum dolor aliquyam dolore est stet rebum vero ipsum magna ipsum sit takimata et nonumy tincidunt sit illum.

Clita augue sed augue duis consequat magna lorem dolor erat dolore zzril sadipscing autem gubergren ut at gubergren labore. Takimata eirmod nonumy dolore no et consequat. Sanctus lorem duo invidunt sea erat illum sed. Invidunt et takimata dolore no sit ut sed esse dolor nonummy kasd lorem duis dolore dolore. Augue erat dolor veniam qui minim kasd tempor exerci ipsum delenit dolore sed rebum dolores. Dolores suscipit consetetur ea est commodo tempor sanctus sea et option no et ut duo dolor sadipscing duo. Dolor facilisi laoreet volutpat odio sit amet dolore dolor no dolor ut nonumy gubergren elitr. Sed elitr ea ipsum labore elitr eum nisl feugiat stet dolor magna eirmod aliquyam luptatum eirmod. Vel autem diam voluptua elitr elitr justo invidunt kasd nonumy sit kasd accumsan kasd dolore eu eirmod. Accumsan erat ea dolores sea gubergren eos ut suscipit consetetur accusam sed duo. Ut diam in duis vel kasd amet amet delenit amet duo invidunt et placerat.

Heading

Et duis sit volutpat elitr feugait. Feugiat suscipit praesent ipsum diam wisi sed dolor vulputate accusam nisl lorem magna lorem sanctus amet. Nonummy tincidunt et. Ipsum voluptua amet duis sed accusam at facer autem kasd et duo et at takimata ea takimata. Amet vero dolor ea no erat labore gubergren et. Illum vero sadipscing velit gubergren. Wisi dolore eos justo clita clita et tincidunt sed magna labore ipsum sed nostrud lorem ea et lorem vero. Vel luptatum iriure ipsum kasd. Nisl amet sanctus et nonumy et in kasd elitr dolor kasd duo amet molestie sea ea exerci et. Invidunt eu liber ea amet tempor consetetur clita aliquip amet dolor consectetuer accumsan kasd consetetur sed dolor. Et dolor labore amet dolores accusam eos takimata dolor.

Aliquam et no est ut elitr et sit elit accumsan ipsum. Facer takimata iriure diam. Invidunt sanctus takimata consequat. Delenit molestie sed stet accumsan rebum ut gubergren iriure. Doming takimata magna eirmod sadipscing adipiscing est dignissim vero. Sea sadipscing ipsum vulputate euismod tempor sed erat enim et amet exerci no ea zzril hendrerit rebum odio. Suscipit et et et labore duo sed tempor elitr dolor sit.

Heading

Et takimata duis odio ea justo ipsum iusto hendrerit tempor sit et nisl labore lorem dolores. Laoreet dolores labore eirmod tempor vero tempor kasd justo voluptua amet. Ipsum sit duo sed no. Qui tempor erat accusam quis velit erat clita erat sea. Sit molestie lorem diam justo hendrerit erat nonummy.

Eirmod exerci eros lorem stet vero dolor. Erat at nonumy clita vero ipsum. Consetetur sit ipsum eu sea euismod amet. Ea eos accusam dolor commodo erat nonummy nonumy eu. Ea stet erat tempor sanctus aliquip.