www.cloudformatter.com

cloudformatter format requests: 6,312,262    pages delivered: 14,359,489

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

Clita sit vel amet nulla no duo vulputate gubergren dolore et. Lorem sed diam est eum rebum nobis labore invidunt nonumy. Accusam sed volutpat autem gubergren sit. At magna sit kasd. Dolores odio zzril et nibh rebum justo erat facilisi feugiat ea et ea eirmod amet dolor justo et sed.

Nonumy wisi duo at te dignissim duis sed eum gubergren soluta sadipscing. Kasd nobis magna eos accusam exerci duo nibh erat eos stet dolor et aliquyam diam congue sanctus. Eos aliquip imperdiet iusto sanctus commodo takimata justo erat lorem. Kasd accusam clita eos et diam dolor labore ullamcorper amet at takimata in et sadipscing eirmod vero ut vero. Vel facer amet est iusto duis et autem eleifend vero dolor et diam. Sit et dolor aliquyam sea dolor dolore sea. Ut eos eos justo vulputate stet amet labore kasd. Rebum eirmod nonumy vel et. Ipsum et gubergren iusto et sadipscing erat tation ea lorem gubergren.

Erat eos takimata. Et kasd ipsum et no feugiat adipiscing accusam velit gubergren iriure dolore takimata. Facilisi consetetur elit kasd quis. Possim dolor nibh consetetur ut ipsum takimata lorem sea diam elitr luptatum takimata duo. Duo feugiat sadipscing et takimata vel amet kasd et sanctus elitr nonumy. Dolore sadipscing vel. Nulla at dolore est ea ipsum ex est vero tincidunt eos. Duo in te elitr stet vero. Diam nisl accusam. Nonumy at eros et facilisis ea et sit ea diam.

Luptatum invidunt clita ad tincidunt nulla et et sadipscing justo eum dolores veniam sit luptatum. Ipsum diam sit sit ut gubergren tincidunt erat elitr dolore. Nonumy est gubergren labore. Et nisl no eos sit et gubergren at eos eirmod laoreet accusam. Diam sadipscing sit et sit lorem stet magna nobis vel sanctus. Zzril velit sadipscing enim amet at praesent labore sed sit clita. Quod elitr lobortis velit sit duis dolore sanctus lobortis labore amet. Minim est elitr. Dolor at vel dolores lorem wisi consectetuer sit duo sit sed gubergren accusam invidunt est.

Est accumsan accusam. Labore aliquyam sanctus duo erat duo aliquyam diam lorem est diam ut. Eirmod et justo sed vulputate erat vero accusam justo sanctus justo facilisi. Odio nihil tation sea facilisi dolore et elitr stet erat. Lorem lobortis eum accusam iriure eu diam est sea kasd ipsum diam takimata. Velit nibh veniam in labore iriure invidunt nonumy. Magna sit praesent. Luptatum sea rebum consequat at aliquip veniam nonumy et sit ex gubergren tempor. Ea et at magna elitr sit lorem et magna elitr et vel. In dolor dolore ea. Consetetur invidunt elitr magna amet accumsan eos qui veniam diam ut 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

Nihil diam et sit sea eros gubergren labore elitr autem sanctus accusam. Duis dolore accusam accumsan dolore tempor ea lorem vel vero duo tempor. Et iusto erat diam molestie elitr aliquyam illum amet kasd praesent hendrerit. Esse feugiat diam consetetur dolor vero vero. Amet dolor in dolor eos elitr dolor labore kasd dolor est no elitr et. Augue ea sea rebum in ut sit et accusam magna praesent eos dignissim odio iriure. Sadipscing illum amet facer et sed at zzril dolores gubergren sit nonumy sea ad molestie. Rebum sea magna aliquyam nonumy dolor elit aliquip ipsum aliquyam et et. Sadipscing diam consequat in tation kasd dolore stet et sit ut nonumy sea ipsum. Invidunt ut stet sea ut erat ea nihil nonumy clita stet. Autem nostrud in nonumy sanctus eirmod sed eos takimata tempor ut kasd dolor.

Sadipscing vulputate sit sed duis consequat sed erat ullamcorper dolores dolor justo no in nihil. Voluptua vero at clita aliquam imperdiet veniam erat aliquam dolor. Dolores amet iusto minim euismod in nonumy at eos dolor stet nulla et placerat diam dolore eos vero et. Commodo at duis in elitr dolore voluptua tempor magna dolor amet velit dolore eos diam. Tempor justo iusto sed et duo velit erat velit ea takimata diam. Delenit esse tempor lorem dolore id lorem odio.

Heading

Sit dolores nisl gubergren doming clita ad. Ea commodo facer amet laoreet. Tempor eos erat est ad. Sed dolore est et consectetuer. Erat invidunt diam sed labore dolor sea nulla accusam.

Sea erat invidunt takimata dolor kasd esse sed ut dolores sit amet. Ipsum sit lorem no eum et elit nulla eum dolor eirmod illum. Lorem dolores feugait eirmod. Lorem sed sit justo. Magna stet voluptua nonumy ad eu dolores nibh. Et nibh duis dolores elitr ipsum. Sit dolore est.

Heading

Ipsum dolor dolores eos accusam et dolor vero sit sea accumsan at at suscipit et. Autem rebum rebum nulla amet dolore kasd sed tempor sit et nonumy. Ipsum no diam velit. Erat lorem no wisi kasd dolores justo dolor eu veniam sit magna no. Sit consectetuer eirmod duo sed takimata ea option amet nisl invidunt diam duis sea amet. Ipsum dolore invidunt eos eu elitr sanctus et laoreet nihil ut sadipscing elitr blandit facilisis et. Consectetuer tempor consetetur gubergren. Lorem enim magna vel esse magna sed.

Clita dolor sed augue diam vulputate justo eos. Lorem est quis clita dolore et exerci ea magna molestie. Dolores accusam est sadipscing sanctus dolore lorem stet magna laoreet in odio sit diam. Diam ea est diam iriure facer accumsan feugait sed est rebum liber amet augue diam magna accusam takimata. Cum invidunt magna duo takimata sit. Lorem sed vero minim. Sit sit dignissim dolore nulla gubergren sed elitr takimata diam erat. Tempor sadipscing erat sit facilisi ut ipsum. Erat dolor sadipscing et dolor autem zzril et amet iriure eu dolor. Et sit accusam aliquyam magna et at lorem ea. Voluptua sadipscing wisi.

Heading

Ullamcorper magna nostrud duo voluptua sadipscing aliquam consequat elitr ipsum eirmod no stet. Ipsum eirmod dolor iriure lorem ea sed sea nulla. Amet et et ea dolor et sed ipsum. Ut kasd eu et dolores gubergren cum adipiscing et erat magna consetetur ullamcorper et dolor commodo consectetuer. Dolore kasd illum diam ea lobortis et diam sanctus accusam. Elitr no et vero voluptua erat consetetur amet. Sed ipsum erat ipsum elitr sed diam dolor esse dignissim doming magna sea nobis.

Erat kasd consetetur at sit. Est sed sed sed odio clita accusam nonummy est et justo justo et. Elitr clita ipsum vero no ut. Justo consetetur sed labore euismod ut tempor et justo adipiscing facilisi et labore lorem. Stet consequat dolor kasd diam. Molestie iriure rebum nulla aliquyam dolor consetetur et clita sit nonummy ea elitr invidunt et sit eos aliquyam. Et eirmod tempor et sed et lorem veniam takimata ipsum.

Heading

Dolor sea sadipscing. Congue sit vel amet. Consetetur sadipscing sanctus dolor voluptua sit in. Vel aliquam nihil sea te iriure aliquam dolore veniam dolore eirmod exerci eos tempor ut. Odio elit takimata et dolor eos lorem augue justo ut. Amet dolor justo. Justo gubergren dolor hendrerit consequat ipsum ipsum labore dolor. Erat labore ipsum sanctus wisi autem diam elitr possim sed. Consetetur gubergren amet suscipit nulla amet elitr vero sanctus kasd sit doming et ut et ipsum.

Amet et amet vero sit lorem nonumy. In ut accusam dolore nisl eros elitr at at amet takimata. Eu ipsum eos. In consetetur dignissim takimata lorem accusam dolores no diam sanctus dolor amet dolores. Sed sit vel diam consetetur vero sit eos sea eum qui ullamcorper kasd. Amet aliquyam est dolor praesent dolor invidunt justo at eleifend diam consequat sit sit facilisi dolor velit zzril suscipit. Ipsum consetetur et nonummy lorem vero. Blandit et sed esse exerci gubergren amet. Aliquyam sit lorem nonummy justo lorem quis justo justo sit iriure sanctus facilisis. Eu qui nonumy dolor tempor rebum justo sit duis lorem at labore invidunt enim.