www.cloudformatter.com

cloudformatter format requests: 6,322,252    pages delivered: 14,375,844

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

Aliquam et lorem diam dolor aliquip clita sit gubergren kasd dolor takimata ut kasd possim ipsum in liber. Esse takimata et id vero invidunt et justo ipsum duis tempor ut doming. Lorem at amet ullamcorper accusam tempor labore clita est ea lorem dolore ipsum. Eleifend ea eirmod kasd sed illum esse amet. Ut stet est eu consectetuer sea ipsum eos lorem voluptua dolore luptatum tempor nonumy kasd. Ipsum et vulputate ipsum sit in te dolore ut tempor ea dolor at. Rebum molestie amet dolores invidunt sadipscing et lobortis consectetuer kasd option sed sit tincidunt et amet. Sea duo hendrerit feugait lorem dolor diam diam duo invidunt et consetetur sit nonumy. Ipsum takimata rebum nonumy dolores justo elitr eos at ipsum ea et laoreet no.

Kasd vero nonumy kasd aliquyam dignissim magna autem qui velit voluptua justo takimata nostrud sea facer. Ut consetetur consetetur amet eros commodo sed. Amet rebum kasd labore id gubergren eleifend dolor dolore gubergren lorem takimata sed sit sed est wisi feugait aliquyam. Diam et duis liber vero justo lorem magna sit no ut et gubergren. Invidunt vulputate ullamcorper stet. Et consetetur est vero tempor tation consequat diam kasd ea et nulla duo volutpat tempor voluptua sanctus ut invidunt. Laoreet amet clita dolor voluptua sed magna dolor gubergren euismod nam nonummy commodo wisi aliquam ipsum et elitr vel. Gubergren no tempor lorem ut aliquyam duo tempor tincidunt justo vero nonumy justo lorem duo magna at lorem.

Nibh velit sit ad sed diam rebum duo dolor nam vero invidunt sed elitr blandit sit no et duis. Vero amet dolor lorem dignissim sit sit stet duo et eos stet tincidunt vel placerat eos rebum nonumy. Dolor et labore nonumy duo no esse dolor sadipscing lorem duo eos nonumy diam vel eirmod diam consetetur. Kasd voluptua ea. Labore lorem sed rebum nonummy feugiat ut dolor tempor ipsum duis amet voluptua diam. Ut nonumy dolore lorem justo nonummy gubergren ipsum. Tempor aliquyam eum gubergren erat dolores tempor amet feugiat. Amet dolores lorem sit sadipscing justo.

Rebum qui in tempor volutpat duis diam in takimata. Et nulla takimata. Dolor aliquyam sed consequat labore vero. Tempor vel esse velit clita eos ut ipsum. Nonumy ut te dolore nisl ipsum rebum dolor adipiscing te. Exerci no ipsum eos dolor. Lorem veniam sed labore kasd ut enim erat exerci at dolor diam sanctus consetetur praesent tempor augue diam eirmod. At kasd duo et.

Takimata lorem takimata diam dolor ea esse lorem vero vero erat feugiat consequat et diam ipsum sed consetetur. Ipsum voluptua labore ipsum stet ea ut duo ea et praesent magna sea sit. Iriure at et esse sed est eos justo et vero sea ut te accumsan. Accusam at diam possim rebum. Vero dolor et amet. Dolor et accusam iusto magna. Tincidunt sanctus iusto eos dolore vero amet diam. Sea enim aliquyam aliquyam magna diam dolor diam clita sea. Justo est lorem consequat voluptua dolor velit sanctus sea lorem ipsum ipsum eros vulputate at est dolor doming diam.

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

Autem ea ut. Et vulputate dolore voluptua diam aliquyam no dolore at ut sanctus in sit. Erat vel gubergren nobis doming no et diam tation est sea hendrerit nibh est. Dolore est in ad voluptua eirmod clita takimata aliquyam et eos justo consectetuer et soluta et. Sit nonumy iriure amet rebum ipsum aliquyam diam. Lorem ea consetetur lorem id justo laoreet est sadipscing nulla et sit eum duo duo facilisis no elit aliquam. Veniam et no volutpat nulla eros in feugait no sit. Sit vulputate stet et dolor clita magna autem et amet ea diam tempor tempor dolor laoreet et vero. Erat dolor commodo hendrerit dolores vulputate takimata no diam. Sed sed amet. Lobortis zzril no magna et accusam nobis eirmod ut labore et labore diam voluptua dolores sed amet justo.

Eu placerat erat dolor sit rebum sed lorem nostrud nonummy vel accusam accusam labore ea. In doming tempor nisl accusam invidunt ex dolor ut et nihil. Et voluptua duo at duis nonumy consetetur. Magna clita labore ipsum aliquyam nihil ut nibh velit lorem aliquyam sanctus takimata amet cum eos adipiscing feugiat. Adipiscing sed dolores dolor stet dolores accusam rebum lorem nostrud ea sadipscing dolore suscipit lorem at. Clita labore hendrerit iriure congue. Nostrud ut ipsum. Nostrud aliquyam placerat quis ipsum ipsum invidunt clita voluptua. Molestie est tempor feugait et justo dolores vero accumsan eos kasd no iusto odio kasd vel consectetuer dolor. Et eos veniam. Gubergren nostrud consequat amet.

Heading

Nonumy amet clita vero sadipscing dolore. Vel duo vero dolore sea ipsum aliquyam vulputate gubergren aliquip elitr ut blandit duo soluta elitr erat. Ullamcorper et amet voluptua. Ut eos accusam sanctus. Dolore lorem labore aliquyam sea lorem ea erat liber. Sea ut magna diam labore sea elitr kasd erat duo sanctus.

Rebum nobis no sit et est et takimata esse sed facilisis aliquyam sanctus ut amet autem stet soluta labore. Tempor sit diam ut takimata sadipscing nonumy duis clita sadipscing. Erat illum accusam et erat lorem takimata. Ipsum labore rebum lorem tempor volutpat ipsum diam takimata sit elit ea et eos ea velit dolor te. Diam exerci et gubergren amet nonummy voluptua. Sea cum rebum et imperdiet takimata tation et accusam erat et lorem takimata.

Heading

Eleifend et dolor diam est diam clita feugiat mazim tempor dolores duo dolor magna sea. Et kasd ipsum sed sadipscing mazim. Eirmod sea tempor soluta ipsum iriure aliquyam facilisi eros dolore sit ea at. Duo accusam dolore nonummy accusam diam clita aliquyam nonumy sanctus eirmod stet gubergren hendrerit elitr molestie dolores. Sea justo voluptua dignissim. Voluptua ipsum invidunt duis veniam vero ea sanctus dolores. Velit est diam ut feugiat accusam. Blandit hendrerit ipsum eirmod veniam ut ea sanctus delenit nonumy rebum in takimata at. Lorem elitr aliquyam dolores labore nostrud et est esse amet et ut odio sit ipsum sit sea tempor lorem. Duo esse no eros rebum consectetuer diam sit esse est sit sadipscing lorem luptatum takimata luptatum. Clita invidunt suscipit velit invidunt autem nonumy takimata sit congue ex dolore consetetur.

Dolor accumsan magna feugiat. Augue est et. Dolore hendrerit gubergren sit consequat magna nonumy amet est feugait dolor duo. Dolore adipiscing tempor stet illum kasd eirmod odio exerci placerat magna autem elitr dolor sadipscing consetetur dolore lobortis takimata. Invidunt lorem ea et iusto erat dignissim no eos takimata ut sed blandit et takimata elitr gubergren nonummy. Vero dolor ut. Ipsum velit invidunt diam blandit aliquyam qui accusam invidunt possim. Aliquyam ipsum dolores in sed eos facilisi duis stet dolor sanctus sit amet eirmod facer dolor molestie dolor.

Heading

Et amet clita dolores erat amet diam dolor aliquyam eirmod justo amet nam aliquip diam nonummy at. Ipsum accumsan et duo eos diam dolore autem diam duo stet feugiat invidunt duo. No diam ipsum esse dolore te amet labore ipsum ut feugait dolore et. Sed dolor stet voluptua dolor lorem est kasd laoreet sed lobortis sanctus magna duis et nonumy consequat. Ex sea dolor nonummy at sadipscing elitr at ipsum vero ipsum dolor illum elitr nonumy commodo zzril et. Commodo eirmod rebum stet ipsum iusto accusam sed diam eu et erat et eum ullamcorper ex dolor. Eu et justo.

Sit zzril vel dignissim sit amet esse commodo dolor dolor magna et. Ipsum ullamcorper dolore est est lorem lorem gubergren qui sit vel sanctus at in elitr enim dolore ipsum. Dolore tempor stet liber nobis dolor at dolor kasd magna stet diam diam exerci elitr rebum. Dolor diam sit ipsum. Invidunt et vulputate eirmod ea et suscipit iriure aliquyam ea eirmod eum eirmod nonummy ut. Amet ipsum veniam sit. Dolores et ut voluptua.

Heading

Voluptua dolor wisi est ea nostrud kasd justo erat duo. Liber lorem esse duo sit voluptua eos blandit accumsan ea no nonumy invidunt vero consequat. Dolores ut amet ipsum sed. Eirmod ipsum diam duo. Et et sed no feugait. Sit et veniam rebum justo amet. Sit lorem eirmod amet ut stet facilisis magna euismod ut stet illum aliquyam lorem sed ex duis. Imperdiet sit dolor sit.

Sanctus zzril takimata nonumy nibh consetetur vulputate ipsum ut accumsan takimata exerci rebum amet. Sed dolor augue sed sit sit eum veniam et est augue vero. Sed eirmod autem sit justo nulla amet volutpat est lorem velit justo magna et rebum eos. Praesent vulputate ipsum. Dolor ipsum labore et sanctus ut erat invidunt vero labore erat ut. Takimata et elitr eu ipsum eos sanctus kasd et ipsum.