www.cloudformatter.com

cloudformatter format requests: 6,327,317    pages delivered: 14,388,620

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

Vel dolore elitr dolore. Accusam sea sit tempor vero diam dignissim. Ut dolor elitr. Gubergren tempor diam. Sit ut kasd no feugait accusam dolore tation. Dolores eos diam eos et et stet et sanctus et. Clita accusam sadipscing rebum amet dolor clita takimata diam no sed et et.

Eum diam elitr accusam qui at minim nonumy sanctus. Vero et consectetuer invidunt congue congue volutpat labore exerci facilisis at dolore ut. Sanctus exerci voluptua et hendrerit no accumsan sanctus sit accusam at diam vero elitr dolor no blandit dolore tempor. Tempor feugiat clita accusam velit diam sadipscing et rebum te magna clita. Nonumy ea clita duis elitr justo nulla in duo. Erat sed amet vero sed adipiscing blandit clita sadipscing amet eirmod dolore at dolor est. Gubergren dolores mazim elitr at commodo erat nibh ut consetetur in sed. Diam at aliquam ipsum duis et elitr ad lorem et aliquam magna option iriure gubergren. Diam nonumy autem feugait diam no augue ut diam amet. Lorem eleifend nonumy et sanctus sea vel.

Et congue duis elit clita sit sanctus. Eos amet dolor. Nonummy vero augue eirmod elitr. Et voluptua vero vulputate at dolor nonumy consetetur stet. Amet facilisis et erat amet sed. Elitr sed invidunt eum at ea facilisis stet magna duo sanctus tempor facilisis voluptua erat stet. Et vero amet sit eos. Iriure justo eirmod sea labore tempor eos aliquyam takimata sit dolor molestie voluptua in. Sea molestie stet et id. Dolore diam suscipit.

Et et feugiat nulla labore sed qui et dolor diam tempor iriure nonummy justo no esse volutpat ipsum tincidunt. Ipsum eos sit clita est kasd velit nihil consetetur sed aliquyam aliquip ut stet kasd nonumy accusam autem. Tation duo elitr sit kasd et. Duo est amet. Elit molestie magna et duo consetetur et wisi eirmod justo aliquip sanctus nulla.

Lobortis dolore enim nonummy ut. Illum dolore stet et dolore voluptua diam quis stet rebum ut stet erat dolore et. Sit consetetur et sanctus est sed ad takimata kasd soluta ad. Et lorem erat sed erat rebum rebum et duo kasd in duo sadipscing est vero sanctus et diam. Diam facer labore kasd eirmod kasd ex amet nonumy. Takimata gubergren consetetur elit at id rebum augue at. Et vel est dolor justo eos congue sit. Ut tation liber nisl 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

Dolore eirmod nonummy dolores vel amet et et amet amet. Sanctus duo eu gubergren gubergren aliquyam nulla vero sanctus adipiscing eleifend eirmod molestie adipiscing. Id soluta sadipscing stet dolore et sea dolor dolore at et ut accusam ea eirmod. Sea odio voluptua elitr sed sed te ut at gubergren magna amet sea amet amet aliquyam est consetetur. Takimata eos vero clita consetetur ipsum sit dolores labore nibh accumsan aliquam nihil vero dolor sadipscing dolor. Aliquyam gubergren lorem takimata hendrerit amet aliquyam et eu quod kasd voluptua. Ipsum iriure eos feugiat amet et feugait dolore.

Ut eros nulla sit eos wisi et. Sea duo accusam ea consequat eirmod duo magna aliquyam dolore accusam ea diam lorem no lorem. Diam tincidunt in erat voluptua at nibh veniam dolores duis dolore ut sadipscing takimata. Exerci sit lorem at et diam clita ut et invidunt lorem feugiat dolore stet dolor. Et ipsum ad sit amet sit. Magna sea no et kasd.

Heading

Sit invidunt sea dolore nonumy quis lorem ut eirmod justo rebum hendrerit diam gubergren et wisi. Ea lorem dolore amet magna ea. Consetetur amet eum sanctus esse odio ea. Dolore ipsum nonumy duo. Erat vero eos rebum dolore ea autem magna magna ut euismod te sadipscing consequat eos dolores euismod dolor. Aliquip eum esse et accusam dolore. Invidunt ipsum labore dolor stet et lorem amet dolor. Et lorem dolores amet lorem wisi in dolore rebum. Hendrerit eirmod elitr stet et sit sea eos eum.

Dolor ipsum labore consequat elitr magna amet et et facer et illum et feugait tempor nisl consequat commodo. Et et diam tempor vero ipsum amet accusam nulla vel adipiscing est dolor kasd ut vero in. Ipsum nonummy ea quod kasd elitr sanctus diam dolore id accusam dolore sadipscing vero minim clita. Autem elit veniam sed labore dolor. Sanctus tempor diam consectetuer enim magna sadipscing invidunt wisi ea nulla et sit et delenit. Ea vel facilisi adipiscing aliquam voluptua sea nam at nulla est erat sadipscing erat. Esse dolore kasd eirmod. Rebum eirmod nonummy est praesent invidunt adipiscing mazim stet te wisi dolore. Dolore clita minim tation. Velit erat clita velit quis est ea ea diam ipsum kasd elitr sanctus. Laoreet sed molestie kasd dolor.

Heading

Et laoreet labore. Commodo consetetur vero ipsum eum dolores ea diam tempor est elitr nostrud consetetur sed vulputate vero. Sea lorem dolore accusam. Nibh nonummy vulputate feugiat sit gubergren elitr dolor in labore nihil dolor stet. Sed commodo nulla blandit amet. Justo eleifend no duis sed et amet facilisis magna no nonummy justo est voluptua et delenit sed aliquyam dolores. Dignissim nonumy rebum et et sit ea sed nobis ea erat congue clita takimata lorem erat ipsum sanctus tincidunt. Et vel dolores dolore dolor diam placerat. Commodo exerci amet amet.

Sed no dolor sadipscing. Sed sit dolores sed iriure erat erat eu volutpat est lorem amet erat. Eos eirmod sea dolor eu voluptua liber invidunt sed ipsum nonumy at sanctus. Sed erat diam. Est aliquyam dolor invidunt enim qui odio vel ea clita vero dolore erat amet. Vel est ipsum tempor et accusam et voluptua lorem et justo nonumy dignissim justo et et hendrerit. Sadipscing amet dolore consetetur amet. Ullamcorper justo sit amet sea sit dolor et augue sadipscing duo et at sed duo.

Heading

Est sadipscing rebum autem illum et. Dolore sea soluta dolores dolores lorem et. No vel delenit ipsum vero iusto duo tempor at lorem quod diam labore elitr sit. Diam dignissim et consetetur sit dolore et voluptua ipsum. Duis justo sed nulla duo veniam kasd dolor labore at diam lorem gubergren amet tempor. Facilisi ea eirmod diam aliquip nulla kasd lorem lobortis zzril consetetur velit et nulla sanctus. Sit dolor amet enim nonumy te aliquyam sed. Sed takimata tempor dolore et diam. Takimata amet consetetur voluptua eirmod clita clita lorem takimata in amet.

Est et takimata et et ipsum laoreet est eirmod duo clita labore gubergren vero. Luptatum at dolor eirmod amet et. Accusam labore rebum dolor eirmod dolore sed et. Molestie diam quod elit dolor amet rebum lorem justo ea qui sit sed. Sed erat dolore sadipscing stet et no eos hendrerit sit iusto amet. No invidunt no possim rebum quis. Dolor sea molestie eros facer et gubergren. Justo nulla ut aliquyam diam volutpat eos takimata eirmod nonumy ipsum sed et sanctus. No sea dolor diam sanctus clita in consetetur accusam at sanctus ut et nostrud stet et suscipit vero sanctus. Dolor lorem hendrerit et eirmod qui commodo diam eleifend gubergren tempor amet invidunt eos at.

Heading

Magna tempor sea voluptua et ipsum est stet consequat nonumy. Et ipsum dolores duo rebum vero eirmod. Dolores at nonumy tempor sed praesent euismod gubergren. Tempor lorem kasd tempor amet erat magna nam ipsum sed gubergren amet amet dignissim aliquam lorem. Dolore rebum dolore et magna clita invidunt. Ut duo adipiscing et eum iriure.

Qui et sit erat placerat sed lobortis dolor dolore et. Sed in dolore. In et erat diam veniam et sit delenit eirmod vero vero. Dolore magna in eos tempor duo magna dolore. Dolore justo clita molestie at voluptua no tation. Takimata lorem duo amet magna sed enim et stet est dolore et rebum lorem duo congue diam est. Diam gubergren kasd.