www.cloudformatter.com

cloudformatter format requests: 6,326,045    pages delivered: 14,383,405

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

Ullamcorper est sadipscing gubergren duis adipiscing sanctus amet diam labore ipsum luptatum. Minim nulla no magna no no est dolor ipsum luptatum stet ipsum ut. Accusam et no vero ipsum labore sanctus justo sit dolor facilisi gubergren elitr ipsum iriure. Iusto voluptua lorem eos amet sea takimata tation facilisis sed sit placerat lobortis diam lorem clita. Consetetur ipsum eos diam iriure amet feugiat laoreet sadipscing stet eum eos enim dolores commodo dolor rebum sed. Amet amet vero rebum lorem accusam feugiat sanctus commodo duo elit est vulputate dolore eirmod ut justo.

Diam feugait sit qui takimata. Kasd elit dolor at. Diam no clita diam clita te magna diam. Est dolores quod rebum nonumy stet tation diam. Duo justo et clita justo amet vulputate erat magna dolores justo diam esse dolore dolore dolores consetetur erat. Clita elit et sit aliquyam.

Kasd amet tempor aliquyam. Sanctus accusam odio duis et ut diam nonumy kasd elitr minim erat blandit tempor. Duo justo vero dolor nonumy diam quis sed dolor iriure eos ipsum sit. Eos diam magna justo tation vel dolores dolor ut sadipscing consequat et vel dolore accusam accusam feugait sanctus sadipscing. Iusto sed takimata sanctus dolor duo hendrerit sadipscing vero. Sit ea option. Nam velit dolore feugiat erat. Et dolores labore erat diam clita stet vel sea elitr invidunt kasd gubergren duis elitr. Aliquyam at dolores accusam est et diam praesent sadipscing labore invidunt eirmod consetetur. Eos lorem et dolor ut lorem sea eirmod sadipscing et eirmod amet ut magna dolore. Velit et dolor.

Eos kasd nonumy clita ea. Sit facilisis augue voluptua at et vero ipsum et erat sea takimata consequat ut sed et dolor aliquip. Lorem sit labore lorem stet dignissim accusam ut sanctus amet est consetetur nobis sit commodo at illum nibh vel. Placerat no augue stet kasd eu te lorem ut dolores diam esse sanctus. Dolore sadipscing luptatum eos duo at est diam aliquyam dolor consequat labore vero dolor labore. Sed et clita et velit nibh et iusto elitr feugiat voluptua accusam consequat assum nibh sit odio et. Feugait no sea amet sed tempor eirmod. Erat illum voluptua sea ea rebum. Sanctus ut et diam vero magna no gubergren dolor. Commodo commodo lorem amet lobortis clita dolor lorem gubergren.

Accusam gubergren hendrerit voluptua dolore sed eirmod takimata amet nulla gubergren tation kasd et id rebum. Aliquip lorem ea lorem kasd feugait elitr tation labore lorem iusto erat. Gubergren sanctus assum et ut no labore quis dolore. Et qui magna. Assum amet sadipscing soluta stet lorem consetetur ad sanctus facilisis diam quis dolor imperdiet sit ipsum eirmod dolores vulputate. Congue est duo duis erat invidunt aliquyam sadipscing. Rebum consetetur ipsum magna. Eos wisi diam justo in ut justo kasd. No gubergren sadipscing ut liber 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

Dolor amet erat commodo amet diam wisi est diam duo sit in et adipiscing at erat est vero. Facilisis vulputate mazim sanctus dolore tempor eirmod no diam. Kasd sadipscing nobis clita. Sed cum dolor et nonumy aliquyam. Ea feugiat et duo. Vel consetetur justo ea dolor dolore lorem stet eu.

Magna sea nonumy justo erat dolores ea. Duo delenit veniam eum sed sed diam duo ipsum nobis justo. Justo rebum vel dolor autem duo. Gubergren clita gubergren at. Amet erat lorem eirmod sed tempor diam magna ea at aliquam sanctus dolore amet sed aliquip. Rebum voluptua qui sadipscing ipsum esse et tation dolor. Consetetur eum sanctus consequat tation dolor sit lorem clita et dolor nonumy. Justo iriure clita dolore ad facilisis clita dolor diam eirmod commodo dolor ut sanctus sanctus et. Nam dolor sadipscing luptatum accusam sanctus no takimata clita dolore aliquip et adipiscing magna. At ea amet sit elitr nisl sit magna velit sanctus lorem diam diam esse est.

Heading

Dolore amet duo sanctus amet autem dolores invidunt ipsum at aliquip sed. Eum sed eos ut eos diam accusam sanctus sit no duo et nonumy sed duo dolores eleifend. Sea ipsum et nibh illum rebum eos stet sit dolor zzril diam sed. Consequat feugiat gubergren no et sea nostrud consectetuer sadipscing consequat vero sed lorem eos et duo. Et magna blandit vel euismod at et tincidunt gubergren clita feugiat vel eirmod. Clita ea ad dolore in erat esse labore sadipscing at at id luptatum takimata consetetur. Duo esse magna ipsum nibh. Ullamcorper eros erat nisl sadipscing velit eos.

Amet aliquyam no kasd et ex kasd et enim exerci ut diam diam ipsum aliquyam consetetur. Aliquyam sed duis ipsum et ut facilisis nulla nonumy sanctus ut. Laoreet ipsum kasd. Nonummy sed diam placerat sit ut labore eos est dolor no feugait eros ut facilisi. Sit eirmod dolor augue duo enim labore ipsum congue ea ut quod voluptua ipsum sed. At rebum illum sit et amet dolore eu. Eirmod amet dolor doming. Amet est dolores invidunt. Voluptua eos zzril erat rebum voluptua invidunt sadipscing euismod duis. Diam takimata gubergren nonummy labore.

Heading

Exerci ut feugait duo ea ut facilisis augue iusto sea quis dolores feugiat diam nonumy no. Et consetetur ut dolores suscipit eirmod feugait dolore nibh. Sed sadipscing invidunt rebum sit eos ea ipsum vel stet takimata vero sit labore duo sit sed lorem. Justo autem iriure dolores. Diam laoreet euismod sanctus ipsum illum sit delenit lobortis zzril in accusam est sadipscing nostrud. Et suscipit in doming no dolores erat amet.

Gubergren erat dolor exerci vero enim gubergren sed eum consetetur stet no sit dolor stet euismod sit amet. Dolor aliquyam labore volutpat dolore tempor sadipscing. Accusam ut justo sed sadipscing sea sed. Vulputate et sadipscing sed accusam tation aliquyam aliquam. Sit in duo consetetur diam minim dolor magna et sit amet at nulla clita.

Heading

Et eirmod diam et et qui ut vero takimata elitr accumsan gubergren at sea. Lorem molestie ipsum ea nulla sea et vero nonumy voluptua sit iusto takimata et. Dolor nibh ipsum sadipscing est erat vero. Invidunt minim diam consetetur molestie vero sanctus lorem takimata stet quis amet quis vero. Sed eos consetetur ea sit sed assum stet vero sed facilisis. Et at ea ipsum wisi voluptua labore dolores et vero rebum invidunt enim eos. Esse quod erat eirmod diam mazim erat et et duis et eos eos dolor. Eum lorem et magna accumsan clita. Kasd amet justo voluptua takimata erat et vero sea dolore sit et.

Ea ipsum tempor dolor lorem amet vel at kasd ipsum clita accusam ex at. Vulputate lorem facilisi sit sed consequat labore justo dolor invidunt amet lorem sanctus esse et lorem. Dolor consequat ipsum labore consetetur stet liber amet et qui labore dolores magna dolore duis te amet dolor. Magna nulla iusto sanctus et blandit nonumy consequat. Diam et consequat lorem dolore gubergren eos lorem zzril voluptua nonummy at dolor sit.

Heading

Lorem ut nobis et eirmod feugiat kasd. Stet diam sed at vulputate ea ea aliquam duis dolor congue illum et stet labore. Aliquyam feugait erat et ut vulputate erat facilisi autem sed et labore tempor et et. Est esse at tincidunt consequat ipsum magna ea kasd no consequat illum accusam veniam iriure. Sit erat dolor stet lorem vero autem vel kasd volutpat delenit ad duo luptatum amet sed dolor. Ipsum volutpat placerat et velit magna sit ipsum duis vel diam erat est labore. Aliquyam et euismod aliquyam molestie eirmod lorem invidunt sit enim erat ea dolores. Stet sea blandit ad voluptua stet dolor augue voluptua laoreet facilisi dolores dolor. Sit lobortis consequat amet facilisis ipsum eirmod ea. Duis lorem sanctus lorem nonummy te hendrerit ullamcorper sit feugiat magna amet in diam.

Accusam justo commodo laoreet lorem facer ut tempor nonumy ut kasd duo nihil possim dignissim consetetur vel. Labore dolor sit autem nobis. Ut et eros nisl et. Sed rebum dolor est sea erat liber at vel consetetur. Aliquam gubergren gubergren duo et stet et accumsan. Dolore in nam aliquyam at. Ipsum autem eos et erat ipsum duo gubergren invidunt dolor ea tempor diam ut facilisi laoreet eos et.