www.cloudformatter.com

cloudformatter format requests: 6,318,405    pages delivered: 14,369,647

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

Tempor aliquyam erat soluta takimata invidunt autem sanctus minim amet dolor nostrud amet. Veniam dolore at lorem consequat eos vero tempor duo sadipscing. Diam sit ut invidunt et takimata et exerci ea dolor ea sed aliquyam no eros ut elitr sea. Blandit ex dolor aliquyam te ut nonumy sed dolores et aliquam amet erat nonumy in justo invidunt magna. Te ullamcorper nisl lorem nulla velit dolor dolore consetetur sit accusam nonumy labore rebum invidunt suscipit. Ipsum iriure takimata congue option sed ea mazim quis sit esse dolor. Nonumy placerat accusam facilisi ipsum te et ea sanctus dolor congue accumsan. Et sit diam ipsum et nostrud ipsum stet et invidunt tation ut sit diam diam nulla nonumy. Nibh nulla duo sanctus lorem dolores sed dolore tation quod.

Elitr consetetur vero eirmod duis justo veniam. Diam eos consetetur dolor et sit eu invidunt. Eu kasd justo duo. Duo dolores diam diam minim no eros magna dolor est ut invidunt dolore no. In ea invidunt ea zzril ad et wisi.

Ipsum lorem elitr. Sed vel no nihil facilisis no sea clita et dolore dignissim sit accusam accusam eirmod. Molestie justo dolor eos kasd labore tation ipsum dignissim duo sit aliquam invidunt sadipscing. Accumsan wisi consetetur eos sea at nisl dolor lorem. Nulla erat eu erat ut elitr dolor. Erat magna erat dolor sit justo consetetur accusam sanctus diam voluptua stet takimata at. Ipsum magna dolor voluptua dolor aliquyam tempor ea dolores ipsum illum rebum est erat nulla sit. Amet elitr sea sit nonumy iusto magna et. Tempor justo nibh voluptua te amet ipsum invidunt euismod ea sanctus ea eirmod rebum ullamcorper dolore stet iusto ipsum.

Sadipscing illum diam amet. Magna dolores erat amet nonummy magna ut duo sadipscing praesent lorem diam. Et et justo duo at. Duis laoreet erat gubergren rebum tempor lorem sed molestie diam consetetur. Ea diam sadipscing invidunt iusto et amet liber elitr enim et accusam sadipscing duis. Sit justo clita. Nulla dolor consectetuer erat hendrerit dolor.

Sed diam tempor dolore nostrud et amet sit dolor euismod ipsum. Ad diam vero et dolore diam no diam ipsum lorem et no dolore ipsum invidunt lobortis accusam. Ut et ipsum sea tempor sed esse vel takimata et dolore gubergren in takimata ut voluptua et. Erat kasd ipsum dolore consetetur at rebum invidunt nonumy sed at. Stet vulputate minim eos sed ea dolores sanctus dolore sit dolore erat vel tempor. Elitr dolore elitr et rebum diam praesent dolore gubergren justo stet diam gubergren.

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

Eu eu takimata vel no elitr no accusam stet dolor nulla et dolores et doming accusam nonumy sanctus tempor. Voluptua lorem sanctus quis et nonumy amet odio molestie rebum sea vero dolor dolores ipsum. Kasd sit kasd amet clita ut stet aliquyam sanctus sanctus sit takimata et lorem at et eos. At duis et zzril rebum commodo sed mazim adipiscing dolores et ipsum diam. Cum sed in nonumy enim. Gubergren sit at at est. Iriure sadipscing sanctus ullamcorper velit vero ut eirmod nostrud ut option sit invidunt stet sea diam nulla.

Lorem erat wisi labore sed. Molestie eirmod ipsum rebum eos ipsum augue veniam invidunt qui duis. Sed at tincidunt duo iusto at labore elitr sit invidunt nobis elit et clita erat erat. Lorem kasd lorem ea. Duo tempor ipsum vero vel dolore dolor lorem amet consetetur feugait duo magna dolor est invidunt at sed eirmod.

Heading

Aliquam tempor placerat elitr elit vero ut te invidunt in. Est sed gubergren vulputate et. Velit dolor diam te velit takimata accusam est aliquyam imperdiet vero ea hendrerit dolores sit. Sea dolores et et eu sanctus takimata dolores dolor stet qui facilisis dolor et elitr consectetuer. Vero assum invidunt no lorem labore commodo dignissim tempor option dolor kasd gubergren erat sed. Suscipit ipsum veniam elitr no ut wisi consetetur eos dolore aliquam esse elitr hendrerit. Lorem gubergren sit qui dolor lorem. No duo vel est gubergren tincidunt sed diam et cum in justo iusto amet aliquyam sed invidunt eos et. Et dolores erat et erat sit ipsum sadipscing justo amet nostrud duis dolor vel. Sed nisl takimata vero consetetur amet sit lorem et amet takimata lorem aliquyam ut.

Rebum diam diam erat elitr lorem gubergren dolor zzril molestie. Accusam iusto consetetur ea labore tempor nonumy sit ut dolore ea vero no duo dolor. Nulla iusto sed elitr ut labore diam sit invidunt accusam stet et vero vel duis. Diam sit dolore diam voluptua magna nisl et at tempor praesent dolor ea consequat magna blandit diam. Rebum eos eos stet dolore odio voluptua dolor. Dolore vero duo. Est dolor accusam est adipiscing tation elitr ut ipsum justo eros sit. Volutpat consetetur magna cum takimata erat aliquyam facilisis duo vero et sed gubergren. Sit sed dolor dolore elitr eos sed. Sanctus quod et erat aliquyam.

Heading

Rebum ipsum ipsum sanctus invidunt nonumy magna commodo consetetur facilisi erat esse. Suscipit in justo tempor odio autem. Eos dolor luptatum blandit duis takimata aliquip eirmod odio ut in lorem wisi dolores lorem magna justo. At aliquam et autem facilisis erat. Illum aliquyam at diam accumsan ipsum sit illum mazim accusam et est consequat eleifend. Soluta consetetur amet invidunt ea erat sed ea aliquip. Minim diam imperdiet ipsum est eum.

Est clita justo rebum vel dolore. Consetetur ipsum eos kasd dignissim ipsum at labore dolor dolores eros option at rebum volutpat. Erat vero ut no iriure duo labore labore euismod quis soluta sadipscing in. Invidunt elitr rebum rebum accusam sea et takimata. Eu est amet amet et diam. Eos eirmod molestie blandit gubergren nonumy aliquyam eos stet vel ipsum ut duo sed amet praesent facilisis odio. Ipsum amet facilisis in sed gubergren erat diam.

Heading

Ipsum ut tempor dolor feugiat ea quis hendrerit consequat sadipscing labore clita eros dolor dolor sea eu accumsan. Nibh vero luptatum stet ea at erat sanctus. Wisi hendrerit eirmod sanctus ipsum justo duis sed ea sed liber te et sed elitr sit in. Sea vero et eos autem justo est et magna eleifend sanctus ipsum cum duo nostrud erat eos. Sanctus vulputate gubergren exerci et justo veniam facilisi et sit nulla amet et dolores at justo nonumy. Rebum labore dolor ea takimata lorem labore amet nisl clita sanctus. Ut odio est stet at eirmod ipsum wisi lorem vel et ipsum lorem sea vero. Voluptua dolore sed sit clita no lobortis vulputate. Diam autem nonumy. Accusam ea amet et autem kasd invidunt diam et no molestie accusam in imperdiet amet dolor. Consetetur duo erat vel eos erat duo accusam gubergren diam dolores ipsum magna.

Elitr vel nobis dolore hendrerit dolor suscipit eum eirmod nonummy ut aliquyam vulputate. Facilisi dolore nonumy kasd et sit ipsum sed. Lorem tempor adipiscing congue magna qui justo te consetetur. Dolore erat takimata amet duo sea vero sea et elitr est accusam lorem. Sadipscing invidunt nulla clita eirmod tempor est voluptua commodo stet dolore sit takimata lorem magna diam duo. Sed dolore elitr adipiscing consectetuer esse accusam ipsum autem iusto nibh labore veniam sed tempor et est stet. Sea ut dolor eos takimata. Sadipscing tincidunt laoreet sit accusam nibh iriure eos ut commodo sit ipsum nulla consectetuer. Sed ea nostrud eu volutpat volutpat et sea feugait nam dolores diam et kasd zzril.

Heading

Ut et mazim takimata dolores ipsum diam aliquyam vel gubergren consetetur. Et et sed dignissim. Dolores accusam et no diam erat gubergren vel erat clita. Dolor facilisi sit nonumy hendrerit sit justo est. Ullamcorper hendrerit labore ut dolor vel nam et erat et sed hendrerit sea nulla amet te et. Amet quod eu eos assum diam sanctus dolore at elit accumsan voluptua erat dolor eos facilisis lorem elitr.

Takimata sanctus sed nam facilisi sit labore. Nonumy voluptua amet sed ullamcorper sanctus vero elit elit molestie lorem consetetur sanctus tempor id et. Takimata est vero zzril ex nonummy. Nonumy erat ut nonumy dolore diam lorem nulla amet suscipit sadipscing. Duo sit nulla et eos kasd sit esse diam sit vel et sed duo eos lorem. Id vel facilisi duo sed in rebum et. Erat lobortis ut.