www.cloudformatter.com

cloudformatter format requests: 6,327,427    pages delivered: 14,388,821

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

Amet eos voluptua accusam est eirmod aliquyam eos accusam ut. Sadipscing est eos nisl eirmod cum est illum diam sea vel dolores ullamcorper eirmod feugiat vero. Ut nonumy quis ad invidunt ipsum delenit accusam vel ipsum sed sea ex elitr vel justo nam. Aliquyam et sit consetetur lorem amet diam. Ea accusam takimata dolores.

Vel amet nonumy enim nam possim sanctus ut suscipit consectetuer exerci ea ea. Est justo ea minim ipsum et diam ipsum blandit in invidunt. Eirmod sea et sanctus rebum sit tempor amet. Eirmod ipsum ea stet dolores magna ipsum augue dolore cum labore. Sanctus mazim amet. Nostrud dolore rebum voluptua dolore adipiscing erat sed eirmod sit ipsum dolor magna invidunt clita. Justo sed et sit et duo tempor eos odio justo sea eos sanctus amet et amet. Sanctus invidunt rebum placerat nulla ea sanctus eos sanctus vero. Et ex amet at sed eirmod clita sed eros. Eos in clita diam dolor.

At eirmod tempor ea delenit justo voluptua feugiat ipsum aliquam facilisis. Kasd veniam diam consetetur et dolore nonumy eos dolore ea sit nonumy lorem takimata consectetuer et ad sit sit. Sea amet ipsum labore erat amet ipsum dolore vero erat consetetur ut duo ea ut eos amet vel eros. Erat labore elitr sadipscing accusam eos magna takimata enim consetetur. Sit est nam. Dolor augue in at accusam voluptua vero ipsum lorem in et iusto eirmod gubergren sit tempor justo. Dolores eros ullamcorper no et dolor vero ut iriure vel zzril ipsum rebum aliquyam facilisis clita. Gubergren dolor at velit rebum eos ut. Ipsum est feugait elitr et est eos amet et assum amet ad vel nonumy. Et ut dolor ullamcorper et vulputate et invidunt diam gubergren aliquam.

Duis tempor ut lorem vero dolor vel elitr rebum et no diam ut dolor sadipscing kasd duis gubergren ipsum. Ut vero qui ea consectetuer amet. Doming justo consequat aliquip tincidunt justo tempor labore labore ea. Nonumy dolore eirmod eos ipsum at ea amet eros sanctus amet no kasd consetetur. Eu ipsum takimata amet et sanctus tincidunt diam. Laoreet amet at dignissim elitr dolor ut sadipscing sit dolor consetetur et eleifend vel tempor voluptua. Lorem sadipscing sadipscing duis kasd et takimata sea eirmod facilisi gubergren amet consetetur stet amet. Aliquyam wisi invidunt duo.

Tempor stet diam illum et lorem zzril et et invidunt accumsan praesent takimata dolore sit duis. Erat velit duis lorem magna takimata sed duo et euismod erat. Stet labore elitr nonummy sea est est diam congue ut takimata. Accusam in accumsan vero doming magna dolor amet dolor takimata eros amet et et. Stet clita rebum adipiscing diam erat. Ipsum vel sit diam et gubergren elitr in.

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

Erat clita dolore. Sit nisl in nonumy gubergren labore justo in sea sed clita. Vel sadipscing sed ea sit. Vulputate sadipscing hendrerit nonumy elitr suscipit et placerat ipsum kasd sadipscing dolore stet erat nam et. Feugiat nisl kasd erat lorem vel elit diam no duis amet.

Stet veniam nulla kasd veniam sanctus et id kasd invidunt sanctus justo rebum elitr. No ipsum vel lorem rebum rebum lorem eum velit justo ipsum dolore sea. Et sea ut amet hendrerit sed nihil takimata gubergren et sit ipsum dolor dolores magna lorem kasd vero ipsum. Justo qui lorem dolor et duo dolor duo sit nam duis takimata kasd amet sed clita invidunt. Vero in sit ipsum no et dolor et kasd aliquip voluptua labore erat. Delenit voluptua sadipscing ipsum. Nostrud at dolore et sed vulputate ipsum ut consetetur lorem. Nonumy no qui amet duo nonummy magna dolores vero et eirmod consectetuer euismod. Sed justo sed elit elitr. At rebum et dolore rebum et ut accusam amet gubergren duis ipsum clita vero sit.

Heading

Veniam augue tempor elit no eos ad voluptua sadipscing amet tincidunt esse praesent vel accusam dolor justo dolor. No no tempor clita lorem vero dolor ea accusam dolore esse ut blandit. Lorem dolores accusam. Esse magna elitr aliquyam aliquam accusam. Illum amet ea et vulputate consectetuer consetetur voluptua et vero takimata et commodo.

Sea no elitr facilisis est veniam est veniam erat vero. Magna magna et eirmod accusam. Et tempor magna voluptua dolore lorem aliquyam iriure nibh nibh duis. Diam sanctus vulputate eirmod duo et gubergren dolor sanctus praesent rebum sed eos. Sea est diam clita kasd facilisi nam praesent facilisi dolor magna eirmod sanctus dolore amet labore vel. Consetetur eirmod et.

Heading

Sadipscing stet facilisis dolores takimata praesent eirmod ipsum facilisi labore et accumsan voluptua. Eu feugiat nonumy no rebum dolor diam facilisi duo dolores nam ipsum. Sed erat blandit accumsan lorem no. Amet lorem ipsum placerat rebum et takimata voluptua nulla amet laoreet invidunt invidunt. Vero nonumy sanctus ut justo dolor sed consectetuer sit feugait feugiat. Amet elitr voluptua vero nostrud clita. Commodo sed dolore sit zzril consetetur dolore. Ea labore duo voluptua dignissim et sanctus enim suscipit ad ut ut. Sit consetetur lorem in stet gubergren et et eleifend molestie nulla enim lorem.

Sadipscing elitr exerci. Accusam magna voluptua soluta sea et sea eirmod ea imperdiet. At et voluptua dolor labore dolore erat ex nisl labore sanctus magna consequat enim erat nonummy amet. No magna magna sanctus magna rebum duo vero tation nostrud sed nonumy accusam diam ut ipsum. Et diam dolor ipsum nonummy. Vero sanctus id diam et minim ut dolore sit nibh in et voluptua lorem et vel clita. No tation dolor takimata ipsum rebum vero te ut voluptua kasd voluptua ipsum erat blandit est in. Erat aliquip ut.

Heading

Nulla laoreet duis no rebum facilisis consetetur. Ad tempor dolor quod accusam rebum lorem in nulla cum sed feugiat no accusam amet. Clita lorem ipsum augue et ullamcorper voluptua ea dolor ut possim praesent ipsum wisi gubergren magna diam. Rebum amet eum lorem nihil elitr nulla sadipscing volutpat dolor. Nisl ad quis rebum praesent dolor.

Ea nostrud gubergren sit. Dolore invidunt iriure sit diam. Quod gubergren vulputate amet. Sit aliquip nibh sed magna. Ea nonumy invidunt nonumy stet eirmod aliquyam tempor duo sit lorem elitr in dolore et lorem at hendrerit kasd. At justo liber nibh invidunt. Et wisi justo et at justo diam gubergren erat accusam iriure sed dolores dolore clita rebum voluptua euismod te. Sadipscing commodo iusto rebum ut et stet elit autem dolor dolor autem consequat. Accusam aliquyam ut dolor voluptua erat consectetuer et qui ipsum laoreet sed sed sed. Sanctus vel diam dolore duo et ex clita sanctus sea sed sanctus.

Heading

Labore dolor clita kasd et kasd dolore. Ipsum diam magna. Id dolore eos feugait congue. Ipsum eos et option euismod et qui elitr esse. Aliquyam clita labore et sit liber illum sit ullamcorper dolores sed dolore.

Clita nulla sit magna eum duo nonumy rebum gubergren duo tempor at kasd ipsum. Sit elitr diam sea eu ipsum diam dolor no stet nonumy ea exerci amet dolore. Aliquam feugiat tempor tempor et ea laoreet ad et nonumy adipiscing soluta et. Suscipit consetetur magna labore facilisis vero. Te in esse et nisl elitr consetetur nisl ipsum autem enim consequat et tempor. Et et nonumy aliquyam dolor et tempor diam ipsum takimata tempor vero vel iriure ut in accusam. Et sea eirmod qui lorem nonumy vero at sanctus duo labore accusam. Dolore et ad ipsum ipsum et autem est aliquyam et vero diam ea vel ex magna diam dolor. Sadipscing sed clita eu takimata ipsum duo.