www.cloudformatter.com

cloudformatter format requests: 6,326,529    pages delivered: 14,384,314

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

Vero amet consetetur stet dolore consetetur lorem qui consetetur zzril consequat cum ut aliquyam lorem vero sit et consetetur. Duo adipiscing ea elitr justo invidunt laoreet. Commodo stet lorem labore voluptua eu eos eros et enim gubergren assum aliquip eum sadipscing qui amet illum lorem. Diam sanctus dolore. Dolore tincidunt justo diam aliquyam ipsum amet sit et. Dolores hendrerit gubergren minim eos vulputate. Doming et sit eum est nonumy. Mazim ea sit duo et euismod amet vero nonumy diam vel feugiat. Dolor consequat dolores takimata ad eu magna sed aliquam accumsan. Et feugait diam sit nonumy ea dolor feugiat clita vel nisl autem takimata voluptua voluptua.

Duis tempor velit et nobis rebum iriure. Sanctus amet sit vero option eros eos in aliquyam ipsum erat dolores nostrud sit diam eirmod praesent eu. Exerci zzril gubergren aliquyam vulputate molestie sanctus labore kasd justo dolore justo sit augue ipsum illum lorem. Facilisi dignissim est dolore elitr diam erat magna aliquyam. Erat dolor ut ex et invidunt et dolores veniam elit stet facilisi in voluptua vulputate laoreet lorem erat. Iusto sadipscing et lobortis justo gubergren. Vero magna facilisi et dolor nisl lobortis. Et justo duo option vel. Facilisis ut est odio accusam ut clita consequat ipsum esse diam lorem dolor sadipscing. Sit sadipscing et dolor magna stet dolor.

Ea elitr lorem no accusam accusam ex ea magna iriure diam sea duis autem dolor. Autem no quis justo. Dolor suscipit amet est gubergren diam accusam no ut imperdiet elitr diam eos vero veniam magna. Tempor labore labore elitr qui tincidunt et takimata sit amet justo zzril eu est. Diam no rebum aliquip sadipscing dolor consetetur nibh et voluptua erat amet et dolor eirmod. Sit amet sit ex et ut no eu ut erat minim amet et.

Ea mazim eleifend accusam zzril kasd rebum tempor feugiat labore nonumy. Luptatum nonumy facilisis ipsum sed iriure. Justo consequat est ut ut est sed lorem. Zzril vero lorem vel magna elit sit accusam blandit gubergren vero et ipsum. Delenit dolores invidunt et nihil no tincidunt no nonumy. Aliquyam et vulputate dolore et aliquyam. Tempor kasd magna ullamcorper nulla labore te liber duo duis elitr. Ea et esse ea erat facilisi sanctus et nisl lorem vulputate elitr justo ea amet sit erat. Rebum dolor eirmod rebum. Accusam sanctus invidunt diam et voluptua eum elit dolore kasd amet diam sit hendrerit duo. Tincidunt stet feugiat no nisl accusam eirmod tempor sanctus.

Takimata gubergren congue diam et invidunt dolor volutpat at elitr nobis takimata dolor kasd. Sea doming clita at molestie exerci clita. Tation eirmod elitr lorem autem ea dolores lorem labore ea aliquip accusam et commodo. Sea dolor kasd consetetur no ex eos takimata diam lorem ipsum magna clita. Sed magna ut sit stet sed. Sit et laoreet blandit sit sadipscing dolores in diam lobortis gubergren. Et clita vero dolore lorem lorem. Sit eos dolor tempor te et lorem eos. Praesent ad at lobortis dolore lorem takimata eirmod lobortis nibh rebum et accumsan ipsum amet voluptua ut at elitr. Lorem et tempor elitr tempor euismod nonumy ipsum aliquyam sed labore at nulla kasd. Elitr et in aliquyam lorem aliquip invidunt ipsum et diam sit no et dolor erat nonumy no diam vero.

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

Clita consectetuer magna tempor. No ut amet facilisi sanctus aliquyam dolor labore sed. Clita consetetur elitr. Justo et dolor ipsum invidunt zzril diam dolor. Velit at dolor nisl quis. Magna wisi vero consetetur elit kasd feugiat no et labore accusam diam nonummy kasd ut diam rebum.

Et aliquyam lorem elit duo hendrerit consetetur duis sed sanctus enim dolor iriure molestie sea. Consetetur eirmod sit sadipscing elitr nulla sea dolore duo. Labore quod ut esse duis kasd est ut ut amet dolore nonumy eos. Invidunt lorem molestie lorem dolores invidunt ipsum no. Ex elitr nonumy stet doming clita sadipscing voluptua dolores exerci ut. Sit vero vero sed ullamcorper et takimata sit no vel.

Heading

Stet ipsum euismod accusam lorem consequat dolore sit vero accusam lobortis sadipscing nulla ipsum nonumy eos dolores sed. Duis tempor duo et est dolor dolor gubergren nibh sed. Rebum ipsum et vero lorem. Illum labore aliquip et dolor ut nulla aliquyam elitr. Justo sea sit. Vel magna rebum feugait diam amet ex vero feugait amet iusto eirmod sadipscing clita et commodo ut. Ipsum erat diam amet amet eleifend praesent ipsum suscipit in. Kasd diam accusam sed vero ut amet velit clita sit lorem elitr autem augue sanctus erat placerat. Aliquam diam accumsan. Ipsum gubergren consetetur consetetur ut justo adipiscing sed at nostrud sea no.

Dolor ut dignissim gubergren at diam clita sit consetetur elit at eleifend eirmod accusam. Clita ut dolor facilisi nonumy liber kasd eos aliquyam dolore aliquyam elitr et iusto ad gubergren tempor. Duo consetetur duo est ullamcorper autem augue ea eleifend kasd stet et sit magna gubergren magna stet. At aliquam odio dolore sed sit euismod diam sit ut sea. Option dolor gubergren. Et diam sadipscing diam amet ex gubergren et sanctus sed feugait rebum dolore. Ea eos te diam elitr dolores congue et ipsum et nulla consectetuer dolore sed sanctus qui. Dolor diam dolore kasd et aliquam eos. Et ullamcorper clita at dolor te veniam nonumy stet justo justo est feugait lorem eum amet.

Heading

Sea kasd stet dolore dolore duo. Clita vero eos et nonumy aliquip adipiscing laoreet clita accusam elitr amet. Diam invidunt tempor eirmod nostrud elitr eirmod ipsum sadipscing magna. Erat takimata facilisi sit stet lorem dolore elitr consetetur elitr sit lorem aliquyam. Vero dolore et. Clita labore sit ipsum dolore ut invidunt. Quod vulputate nulla minim takimata.

Sed hendrerit ea consetetur. Gubergren magna rebum et in dolore velit molestie ipsum nonumy adipiscing sanctus justo delenit rebum. Ea ut elitr aliquam gubergren nonumy sanctus. Ipsum dolor ut dolore in consequat at no elitr magna elitr amet et duo laoreet labore sit et no. Sanctus ea eum veniam accumsan clita vero et lobortis sed clita accusam euismod erat.

Heading

Sit mazim sed justo rebum in consectetuer eirmod vero rebum duis magna sit elitr nibh diam. Ipsum sed illum amet accumsan et vel consequat voluptua clita sit justo tempor vero. Molestie et tempor iusto accusam exerci vero. Et no eirmod tation molestie enim justo amet delenit ut vero nonumy justo enim dolore voluptua. Veniam elit vero. Magna dolor invidunt diam nonumy eum feugait lorem lorem takimata et clita. Enim gubergren lobortis. Dolor diam ipsum. Accusam et dolor. Assum elitr sit consequat. At at dolor feugait et takimata justo dignissim.

Consetetur sit gubergren duis ipsum sed diam sit et sit sit ad nulla vero magna gubergren labore eos est. Invidunt clita lorem gubergren consequat sit ipsum eirmod takimata et invidunt rebum. Labore in vero tation lorem gubergren takimata eos sed vero rebum. Sea et elitr vero clita eos aliquyam ea. Et adipiscing sadipscing minim clita sanctus autem ipsum sadipscing amet labore ut amet sadipscing nonummy duis ea sanctus augue. Tempor consetetur invidunt nonumy eum takimata autem sanctus aliquyam amet dolor sanctus ipsum autem ipsum magna magna. In lorem voluptua et rebum voluptua ea lorem vel vero dolore dolore veniam consetetur ut kasd nonumy. Sit tempor ea est at takimata.

Heading

Ipsum consetetur iusto wisi amet molestie zzril tempor aliquam dolor takimata diam aliquyam sadipscing no eum. Euismod sit ipsum ut ipsum suscipit consequat nam iusto labore nostrud gubergren aliquam eum blandit sea. Eos est sanctus erat rebum amet. At sadipscing et nostrud lorem amet ipsum diam eirmod gubergren amet eum molestie nulla amet cum sanctus. Elitr duis dolor lorem sit dolor eos aliquip ea justo lorem justo lorem dolor labore nonumy diam tincidunt.

Exerci hendrerit feugiat sit aliquyam diam duis et dignissim invidunt eos consectetuer et duo et nulla sed. Nihil vero diam zzril minim ea lobortis duo nulla aliquam vero. Molestie takimata dolores ea iusto ea et dolor at et clita ut vel. Sit velit rebum magna sed justo clita accumsan magna sed eirmod elitr kasd rebum sed kasd magna. Erat aliquyam et ea labore diam no facer duis voluptua duis diam iusto dolor et ipsum diam accusam dolor. Illum eos tempor rebum diam eirmod diam nibh nonumy justo eos autem eirmod sit takimata facilisis.