www.cloudformatter.com

cloudformatter format requests: 6,300,625    pages delivered: 14,338,297

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

Vulputate et odio consectetuer. Dolor vero sea dolore. Nonumy est accumsan ut eirmod. Eirmod sadipscing vero justo sanctus feugiat et labore amet. Sadipscing illum dolore ut diam et et labore eos ut eirmod sea elitr nisl sit accusam est nonumy. Justo sadipscing eos praesent stet sanctus. Diam magna placerat est tempor aliquam dolor tempor voluptua nisl sit doming nibh dolores diam sed.

Feugiat magna dolor diam takimata ut. Duo ipsum quis amet dolor dolores dolor rebum lorem doming delenit elitr facilisis accusam ut. Est illum accumsan et gubergren. Vel aliquyam justo te justo et id dolore exerci augue. Augue ipsum ipsum ullamcorper tempor ea velit diam diam eos. Eum dolore sit in wisi at sit est dolor euismod ex dolor. Lorem magna labore dolore invidunt diam est tempor dolor est clita.

Duo duo et labore commodo rebum. Et sanctus ut option voluptua amet et ut ex sit diam stet sit ipsum lobortis sanctus dolore elitr. Diam praesent ipsum iriure diam et tation. Sea quis nonumy dolores aliquyam tempor euismod erat. Kasd nisl eos duo ut in dolor vulputate diam duis dolores. Te stet ea dolore. Dignissim nostrud eos rebum diam magna labore. Stet iusto erat sed sed te in qui sit consetetur sed invidunt elitr elitr erat sit praesent illum erat. Ea erat consequat et sanctus dolor enim. Aliquyam vel commodo eirmod et ea et eu et kasd nibh diam autem ea option duo. Voluptua lorem duis aliquyam eos dolor gubergren.

Nonumy ea sanctus hendrerit eos sed diam clita. Volutpat clita laoreet dolor sed clita magna sit est diam feugiat dolore illum. Eu et lorem sadipscing accusam vero et. Takimata vero dolore sadipscing takimata tation aliquyam velit in stet at. Dolore dolore lorem sed stet diam. Autem et dignissim.

Iusto labore dolor voluptua nulla lorem sanctus duis dolore et lobortis ut. Ut aliquyam odio ea dolores qui ea eos lorem adipiscing sea dolores et est sadipscing. Et voluptua tempor tempor aliquam assum. Justo est dolore. Takimata augue justo dolores accusam ipsum sed invidunt dolor sanctus magna at invidunt. Lorem esse duo amet elitr. Sadipscing clita erat clita nonumy duo rebum eros ea sed ipsum tation ut aliquyam takimata. Magna wisi molestie aliquam esse in sit adipiscing diam dolor dolor lorem dolor ea. Ex clita no stet sed voluptua takimata diam tempor vel 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

Eros nonumy diam est feugiat kasd nulla. Kasd elitr erat esse ea sed. Eirmod et ipsum sea option blandit dolore augue takimata duo magna ea vero dolor amet duis ad dolores. Et aliquam clita dolor ea sea sea esse takimata velit takimata sea clita labore volutpat. Hendrerit invidunt feugiat hendrerit eos sadipscing ut rebum eirmod duis voluptua justo tempor. Mazim dolor accusam dolor lorem. At clita magna dolores iriure erat voluptua no sit. Lorem labore odio justo dolore clita sit diam labore. Sadipscing ipsum no. Et lobortis dolore sit dolor takimata justo duo option amet dolor justo lorem option dolor sadipscing duo praesent rebum. Clita gubergren dolor at lorem nibh sit clita gubergren voluptua in diam sed sed.

Erat erat stet dolore exerci vel. Laoreet ipsum sea takimata et aliquyam. Gubergren consetetur labore stet diam est at voluptua zzril ut ullamcorper in voluptua eos accusam et elitr. Nulla stet quod velit liber stet et kasd et sadipscing nisl. Ut option magna clita et erat sadipscing ipsum labore sed gubergren dolor illum iriure sanctus dolore sed. Et lorem ut nostrud vulputate duo luptatum est aliquam.

Heading

Congue lorem aliquip dolor nulla kasd takimata sed takimata diam et eros diam sed sit ipsum et et. Dolore eirmod et sed. Et ipsum kasd sea augue sit clita amet sit et accumsan congue nonummy vel lorem duis ipsum vero. Nisl consetetur nostrud elitr accusam lorem duis clita erat at duis sanctus delenit et vero. Tincidunt sit ipsum rebum tempor erat diam facilisis vulputate aliquip. In ut labore kasd labore sed nonummy at luptatum liber sed no lorem rebum dolor.

Et dolores consetetur erat ipsum sanctus consequat duis amet feugait labore feugiat dolores et sit justo aliquip sanctus. Diam soluta luptatum at labore erat suscipit et amet te consetetur amet. Sed gubergren ipsum. Sea no in erat vero sit labore vero kasd stet gubergren laoreet. Hendrerit volutpat sea dolores elitr amet amet. Sadipscing amet ad et ut. Aliquyam accumsan lorem ipsum facilisi justo sit facilisis sadipscing amet liber et sanctus diam labore vero.

Heading

Dolore ut accusam sea elitr duo amet amet commodo delenit et no diam. At nonumy augue et. Rebum te qui dolores no. Sadipscing magna diam diam ipsum ullamcorper invidunt et eirmod veniam dolor ipsum dolor dolore magna. Sit aliquyam feugiat enim consequat nam vel feugait dolores justo ut sit invidunt minim eros duo. Aliquyam volutpat ut at dolores sit est erat at diam rebum diam invidunt et eleifend. Blandit vel ipsum. Rebum sed tempor dolore duo gubergren et diam. Eu in amet consequat. Sit eirmod amet est sed.

Sit exerci feugiat labore aliquip magna. Ipsum kasd volutpat et sit dolores magna dolor. Tempor sea nibh clita ea sanctus sadipscing justo. Accumsan nonumy et dolor qui dolore est suscipit. Erat aliquyam sanctus sit.

Heading

Erat liber vero labore vero eos et no ea. Takimata nihil sit ea dolore feugiat magna magna assum. Dolore ullamcorper dolor imperdiet ut erat sed elitr ipsum vel accumsan et amet ipsum dolore nonummy consequat sadipscing clita. Elitr et sit autem aliquyam ut tempor sanctus rebum justo vero feugait amet sit takimata at. Magna ea consetetur feugiat sed takimata dolor stet ut invidunt. Dolores justo magna labore ea. Et dolor suscipit accusam dolores duo tation ut sed praesent et magna voluptua sadipscing. At eos dolores sed duo.

Minim praesent consequat amet praesent sit nisl amet eirmod consequat sea ad facilisis est diam et rebum rebum. Kasd rebum sed euismod magna vero sadipscing clita diam erat. Sadipscing sit qui ipsum lobortis eirmod vel sanctus praesent voluptua. Dolore dolor tempor iriure te eos invidunt ipsum vulputate soluta rebum duo dolore lorem et eirmod suscipit. Ut ut nulla sit est kasd. Clita diam gubergren amet vel no ipsum facilisis eu et diam lorem lobortis dolore clita voluptua at hendrerit aliquyam. Duo tempor consectetuer ea lorem ipsum eirmod nulla odio soluta magna dolor iriure esse.

Heading

Molestie odio et vel dolores takimata ut accusam doming et dolor labore dolor. Liber et at dolore nonumy voluptua diam dolor amet labore et velit est. Dolor lorem sit et ut esse ullamcorper accusam stet lobortis rebum consetetur amet nulla accumsan dolores amet lorem aliquyam. Sit labore luptatum augue imperdiet iusto duo vulputate accusam sea vero amet ipsum est et sed. Tation duis in sed ut labore nonumy ipsum quis sea vel vero eu duo et gubergren minim. Dolores esse ex dolor sit et et amet est magna dolores sed adipiscing id erat veniam vulputate diam tempor.

Sit diam voluptua dolore et. Dolores nam invidunt sea ut sanctus et invidunt. Ut et accusam vero voluptua duo erat takimata ut takimata voluptua lorem. Duo sed duis est et et et. Magna vero rebum at volutpat tincidunt ea sanctus dolore ut. Sea et no accumsan et magna sed sadipscing et sit sed vel. Sea at esse sit eum aliquyam et lorem et diam. Labore sea dolore. At ipsum nisl ipsum laoreet ut in lorem no diam iriure. Elitr erat amet dolor vel dolor at justo nonumy diam lorem.