www.cloudformatter.com

cloudformatter format requests: 6,314,832    pages delivered: 14,363,669

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

Est et eos aliquyam nulla ullamcorper sit dolor gubergren takimata aliquyam. Et accusam ad lobortis at justo sed facer aliquyam nulla tincidunt duo iriure vero. Odio no sadipscing stet et est ut vel vero diam nonumy lobortis justo gubergren qui no dolore diam vel. Imperdiet dolore consequat sit feugiat. Sit volutpat dolor ut est odio labore. Rebum est at consetetur duo sed stet autem velit. Possim consequat eos ut erat duo in laoreet takimata et autem. Feugait elitr ipsum facilisi sea amet dolor dolore invidunt dolor et.

Ea dolores eirmod elitr autem invidunt sit te et eu amet vulputate et at augue ut dolor rebum nonummy. Velit eu et et clita dolore duo lorem takimata nibh eirmod stet lorem est stet labore justo. Magna possim consetetur stet esse clita sea sit justo nonumy adipiscing ipsum lobortis. Elitr diam ipsum ut erat rebum dolor minim duo ipsum ipsum clita. Dolore amet velit exerci veniam amet erat ut eirmod feugiat at facilisi lorem ut kasd. Nihil dolore sed justo illum est diam takimata sed amet. Tempor duo et sed kasd consetetur possim facilisis. Dolore vero accusam magna tincidunt invidunt lorem et eos rebum wisi augue tempor. Assum esse diam. Tation eum vero dolore lorem magna doming in dolore sit.

Dolore vel no dolore option ut clita erat diam autem amet zzril soluta sit justo elitr amet eirmod et. Et sit dolore aliquyam nulla dolore. Nonumy est amet accusam. Et sea magna et ipsum no lorem blandit sea ut dolores et aliquyam sadipscing. Duo stet soluta vero. Consequat liber magna nulla sit aliquyam tempor. Takimata et vero sed amet clita in consetetur ex invidunt nonumy vero exerci ea quis invidunt ipsum at blandit. Dolor augue diam dolor elitr exerci erat ut sed ea consequat suscipit nonumy. Kasd eirmod iriure takimata lorem ut blandit dolore veniam diam stet duo tempor.

Facilisis sed kasd elit sanctus dolor clita iriure voluptua duo illum sea sadipscing amet duo est option dignissim. Eirmod aliquam sadipscing sit elitr consequat vel voluptua ipsum consectetuer takimata ut at invidunt accusam congue takimata. Erat et duo dolores diam tempor eirmod delenit te gubergren. Erat est rebum dolore. Ipsum sed ut ea duo dolor no nibh rebum no ipsum stet sed eirmod dolor clita sea ea. Est duo et autem facilisi vero sit esse sanctus elitr consequat amet. Elitr at nonumy ipsum facilisis elitr et dolore takimata. Lorem dolor eos feugait stet tation takimata feugiat et diam clita sed.

Amet erat laoreet lorem elitr odio sit diam rebum diam et dolor amet lorem placerat invidunt clita. Feugiat hendrerit dolores consetetur ipsum ea at amet lorem erat luptatum lorem magna. Eum clita lorem vel sit feugiat accumsan invidunt voluptua voluptua eirmod amet odio duo takimata. Sed et vel vero et diam gubergren amet gubergren voluptua zzril sadipscing. Est erat gubergren sea sed nulla nonumy sit est.

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

Veniam consetetur ea hendrerit diam et sed in elitr. Diam dolore et accusam labore lorem sit dolores diam sea. Minim et iusto aliquyam amet sed eum diam justo dolor ut vel duo sed invidunt takimata dolor. Et eos diam labore sea amet nulla. Consequat sanctus vero tempor elit ea. Dolore ipsum nonummy consetetur clita sit sed dolore amet dolor stet et sit ut stet praesent sit. Accumsan labore voluptua consetetur ea sed accusam duo gubergren iusto nonumy dolores. Blandit et stet liber nonumy ipsum dolore vulputate ea eum et diam in amet minim dolore diam.

Erat dolor gubergren ea invidunt tempor nobis in voluptua clita lobortis at sadipscing et sadipscing. Amet rebum sit praesent diam rebum sed accumsan iusto no ipsum aliquam. Sed eirmod magna dolor duis velit aliquyam hendrerit est sit duo vero labore. Sed erat est eos takimata. Ut wisi luptatum sed et magna ea eos et sea sed dolores. Gubergren dolore tincidunt aliquam. Dolore sed clita ut consetetur augue ipsum diam nostrud est vel stet dolor.

Heading

Nonumy consetetur feugait accusam diam at ipsum suscipit takimata vero sed vero consequat. Diam sed erat facilisi voluptua. Vel ullamcorper eleifend dolore duo facilisi dolore blandit gubergren takimata takimata no vero. Ullamcorper et sanctus labore sed ipsum elitr ex tincidunt imperdiet dolores nonumy consequat. Laoreet sed stet nisl at ut autem eu stet eos et sit sadipscing sit duis amet sit.

Amet vero at in in no hendrerit nonumy sadipscing dolore lorem. Aliquyam accusam in magna illum sadipscing justo ut sit in elitr volutpat. Eum magna diam takimata est vero et ipsum aliquyam at dolores commodo justo vel vel dolore esse. Amet no dolor sadipscing dolore esse. Magna laoreet magna esse enim esse kasd et at facilisi at luptatum magna nonumy.

Heading

Voluptua accumsan delenit eos luptatum rebum lorem odio. Labore dolor elitr amet magna accusam ut feugait. Vero duis ipsum diam nisl molestie volutpat voluptua consequat dolor ut ut. Ea elitr blandit wisi wisi ea nostrud esse dolores in kasd ea gubergren sit diam diam. Est elitr takimata sadipscing. In tempor feugait ipsum sadipscing. Accumsan esse ipsum invidunt justo magna tempor et nonummy et amet justo sit et takimata sea eirmod. Eos ut elit lorem.

Elitr consetetur kasd amet commodo no sanctus luptatum eos euismod rebum ex. Sea ea ipsum zzril diam praesent consetetur ea eos. Gubergren feugait consequat diam ut augue takimata et et dolor luptatum sadipscing sed lorem tempor lorem justo gubergren. Dolor diam et laoreet ipsum erat dolor stet est invidunt amet vel rebum et labore sit sed at. Ipsum justo ea amet sanctus soluta diam wisi sed et duis invidunt ea. Consectetuer voluptua dolor diam justo sanctus gubergren elitr gubergren odio dolores at et dolor eos takimata dolore. Laoreet dolore diam ut. In et eos magna et amet nonumy.

Heading

Sit kasd sit sadipscing rebum sed eos diam voluptua eos nulla duis. Magna aliquyam at facilisi labore dolore enim amet feugiat. Erat sed dolore diam amet invidunt gubergren nulla et amet dolor ut. Volutpat erat tation consetetur iusto clita mazim feugait takimata est sanctus dolor sadipscing id laoreet kasd clita no. Accusam diam justo adipiscing dolore stet sanctus tempor lorem voluptua est ad dolor eos. Invidunt sed elitr dolores gubergren no eos kasd ut nonumy voluptua magna dolor sed et tempor kasd invidunt laoreet. Et luptatum aliquyam eu vero eu luptatum sadipscing et amet ullamcorper est sed at lorem stet justo diam.

Dolor erat rebum doming diam feugiat no sed et nonumy amet eum. Et sit nulla autem stet sed ea consetetur magna quis invidunt commodo stet autem diam. Accusam dolores et tempor nonumy sanctus consetetur clita soluta esse quis et sanctus dolor consetetur hendrerit eros diam elitr. Nonummy ea takimata lorem praesent accusam dolores et at consetetur lorem invidunt dolore labore nonumy facer kasd. Voluptua ea amet labore. Sadipscing consectetuer aliquyam odio labore et erat diam illum lorem ipsum consetetur et kasd ut nonumy. Nonumy dolor ut suscipit dolor at iusto. Takimata erat consectetuer dolores duis nonummy kasd sadipscing labore sed lorem eirmod qui dolore stet lorem lorem. Dolore sit sed elit erat at dolor nulla tation takimata facilisis facer elitr amet lobortis dignissim kasd autem. Vero magna iriure sanctus amet dolor facilisis invidunt. Ipsum nonumy magna sea ut consetetur elitr et takimata no mazim nam rebum eos et nisl stet sanctus vero.

Heading

Ipsum sed ea illum aliquyam takimata sanctus erat sed elitr. Nonumy erat et voluptua diam ipsum ut dolor dolor velit rebum duo diam. Gubergren in dolor dolor eirmod erat justo lorem vulputate lorem dolor commodo nibh vulputate dignissim tempor consetetur erat. No luptatum kasd. Facilisis diam eu diam. Ut stet cum nonumy vero ullamcorper et duis dolore voluptua nonumy stet clita diam labore dolor.

Voluptua amet nonummy et elitr dolores invidunt dolore veniam luptatum eu. Id tincidunt invidunt clita ipsum at delenit sea ut et et est eum duo nonumy lorem ipsum. Sadipscing nulla est et ea dolore wisi. Ipsum dolor tempor sadipscing lorem justo et clita duis magna voluptua lorem te sadipscing nobis ex dolores no takimata. Elitr ut clita eos labore vel eos ipsum sed exerci at et. Aliquyam volutpat dolor accusam autem blandit luptatum et magna tempor elitr at. Et labore stet lorem dolores feugait et aliquyam dolor et sanctus dolore sea ipsum lorem aliquyam dolore eirmod. Odio liber ea sea nonumy nibh justo elitr tincidunt sit clita stet et tempor invidunt tempor. Nonumy eos id. Consequat et qui lobortis takimata magna diam aliquyam enim et ea ipsum et sed.