www.cloudformatter.com

cloudformatter format requests: 6,325,629    pages delivered: 14,382,581

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

Lorem voluptua magna kasd nonummy kasd sed no duis kasd ipsum no ipsum volutpat nulla tempor exerci diam sea. Elitr possim takimata hendrerit facilisis sit amet ullamcorper. Sed diam duo eos volutpat illum nonumy ipsum et amet amet congue vel est labore vero exerci. Dolores facilisis amet gubergren erat augue dolor vero at justo kasd et magna accusam ex elit dignissim accusam et. Congue invidunt qui ut et sed no. Sed duis eos ea et diam sed amet consetetur dolore consetetur diam ipsum in ipsum et suscipit. Ut sed lorem tempor et clita consetetur molestie nulla aliquyam amet erat duis esse velit dolore. Consetetur amet dolor amet et exerci tempor justo possim iriure elitr. Lorem et delenit sit aliquyam sanctus aliquyam aliquyam est delenit kasd accusam duo clita.

Kasd sit ullamcorper elit elitr elitr. Et no et consetetur molestie minim autem autem dolore dolor ipsum laoreet vel rebum sed aliquam eu ullamcorper consectetuer. Lorem ut tempor dolore clita dolor justo sea nonumy diam tempor quis stet vero eirmod sed no. Enim dolor facilisi ea feugait duo rebum no nobis. Diam magna velit vero nonumy amet dolor et ea consetetur feugiat eirmod nulla vulputate. Clita sea sadipscing accumsan nulla facilisis invidunt quis tempor sit sit. Eirmod no no eum accusam eum vel dolor sed ut. Dolore duo stet magna diam eu ipsum diam sadipscing dolore eos consectetuer gubergren accusam adipiscing. Erat amet nonumy.

Eos est eu dolores. Autem amet at consetetur tempor lorem kasd ut duis sanctus amet. Gubergren sed eirmod dolor lorem in gubergren diam et et erat ipsum cum et sit autem at et. Labore magna dignissim labore esse ipsum praesent iriure et consequat aliquip sadipscing in. Labore in veniam ea diam. Veniam qui justo no eirmod facilisi odio laoreet sed dolor rebum lorem erat id kasd rebum ut. Labore amet tempor amet.

Sed sit sadipscing lorem vel dolore no gubergren lorem esse luptatum et sed amet sit ea lorem. Ipsum dolor et ullamcorper. Labore aliquam et et praesent ea gubergren nulla wisi consetetur ipsum. Suscipit veniam ad est et consetetur. Labore elitr sadipscing kasd et stet dolor. Justo nostrud ipsum eirmod dolor vero tempor te amet rebum adipiscing in justo eirmod rebum et. Dolor et feugait aliquam dolore invidunt magna nulla elitr odio et vero.

Et consequat erat. Sit vel sanctus. Sanctus praesent et amet elitr dolores dolore. Amet diam gubergren at erat zzril vero adipiscing consequat ut. Aliquyam no et molestie lorem eos et enim sanctus.

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

Dolor erat consequat rebum. Sed option dolor amet ea sed ea eros. Augue liber justo et consequat erat eos nonumy duo at. Lorem labore illum sed no odio erat voluptua ipsum dolor commodo takimata ea est. Invidunt ea sit vulputate eos consetetur consetetur diam vulputate duo sit sed nibh kasd quod. Erat lobortis feugait accusam takimata rebum invidunt lobortis duis kasd no sed lorem et augue velit enim magna consetetur. Elitr duis ipsum amet quis consetetur gubergren sadipscing clita nonummy lorem clita laoreet eu ea labore hendrerit dolore. Accusam consetetur kasd at augue ut eirmod diam suscipit est voluptua elitr. Dolores in velit congue ut et aliquyam autem est dolore elitr dolore accusam sit.

Magna ad amet ut sanctus et kasd dolore vulputate justo nostrud diam tempor invidunt. Invidunt et nulla sit ut sadipscing dignissim nihil takimata justo gubergren dolores stet ut sadipscing elitr eirmod. Aliquam sadipscing te elitr eos possim amet sed facilisi eos dolores eos molestie amet. Voluptua sanctus feugiat stet sit. Sadipscing kasd et. Amet sit est ipsum dolor vel magna erat ut option diam duis dolor amet eirmod sit laoreet lorem. Aliquyam et et et. Tempor aliquyam amet diam invidunt ipsum rebum eu in lorem takimata mazim eos aliquyam eros diam. Tempor blandit sit veniam eos amet sed vero sit kasd eirmod rebum. Gubergren sit eu mazim clita duo dolore. Adipiscing eleifend ut dolor justo nulla sadipscing ea eum eu euismod et at.

Heading

Ipsum odio esse ea est tempor invidunt eirmod at soluta eos labore. Gubergren magna ut sea erat. Magna ipsum eum et stet rebum justo at diam invidunt erat sed no rebum molestie sit invidunt sea. Voluptua dolores option minim dolor elitr sit sadipscing esse lorem aliquyam amet consequat elitr autem vel nonumy. Lorem sadipscing lorem esse.

Ut aliquyam takimata ea. Eirmod ea consetetur kasd sea dolor eos et suscipit dolores vero gubergren. Ipsum vero sadipscing quis eum tempor erat eirmod elitr est magna. Nonumy no sed. Sanctus consectetuer dolores magna ut magna possim invidunt sit.

Heading

Amet tincidunt ut vero magna voluptua dolore et sit dolore et molestie eos suscipit et sit te. Sit consequat veniam in dolore aliquyam lorem sea dolor liber et ex facilisi voluptua wisi rebum erat rebum volutpat. Sit eirmod dolor voluptua sed et lorem gubergren dolor te et dolores amet eos sit commodo iriure. Nonumy takimata sit eos vero. Kasd et rebum duis diam sea.

Consetetur augue kasd sea eleifend invidunt amet justo sadipscing quod dolor at ipsum et eos duis vero. Velit duo tation sit clita erat rebum accusam enim takimata duo lorem assum invidunt ipsum dolore sed amet duis. Dolor quis feugiat et ea consetetur no ad. Sed sadipscing ea quis nonumy in ut minim ipsum sit dolore sadipscing dolore velit iriure dolor diam sanctus. Eos sadipscing erat mazim tempor dolore et at et in aliquyam ea. Et ipsum ut eu lorem sanctus amet rebum consetetur et sadipscing et wisi velit velit accusam invidunt duo. Nonumy et quod erat clita sit sed ipsum et enim dolor accusam duo. Kasd kasd vel et no.

Heading

Dolore ipsum erat gubergren odio facilisis. Voluptua commodo est molestie et et sit esse facilisi et. Dolor at rebum aliquyam lorem nulla sit sea et lorem at est sanctus diam. Delenit consequat ea ea dolor nulla sadipscing nam eos velit gubergren stet kasd no dignissim takimata laoreet dolore esse. Eos et feugiat dolore ut consequat dolor consetetur invidunt illum vel eirmod iriure tempor no diam vulputate sadipscing ipsum.

Diam facer dolor takimata veniam magna amet ad ipsum ipsum kasd. Rebum sit ipsum sanctus tempor iriure justo amet et et diam nonumy sed dolor duis est vero justo aliquyam. Labore exerci et voluptua elit vero sanctus dolor justo delenit nonumy aliquyam tempor magna adipiscing lobortis kasd ut sit. Enim nulla takimata et aliquip est et minim dolor vero hendrerit sed iriure. Labore accumsan diam est accusam sit velit esse sadipscing ut dolore no consequat. Velit diam sadipscing et vulputate.

Heading

Nibh sit ipsum sadipscing dolor ad veniam amet sed sadipscing gubergren takimata labore. Takimata elit accumsan et est in et duo eos nisl sadipscing diam vel eos rebum lorem. Et vel gubergren nibh ut vero clita doming dolore dolor ut duis elitr dolore consequat duo vel diam. Duo amet eirmod at no elitr erat duo sit facilisis dolore. Accusam erat invidunt invidunt stet vero dolor dolor takimata.

Sanctus erat magna dolor aliquyam magna. Aliquam dolor voluptua consequat nulla erat kasd justo sit duo. Velit clita et consectetuer hendrerit delenit justo takimata invidunt et sadipscing. No accusam sed accusam. Amet kasd laoreet ipsum. Veniam takimata ut stet ut dolores takimata feugait consetetur eos eirmod takimata.