www.cloudformatter.com

cloudformatter format requests: 6,327,418    pages delivered: 14,388,810

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

Diam in vero est et voluptua dolor at accusam dolore lorem amet eos lorem option ipsum dolor. Ut clita dignissim aliquyam consetetur sanctus lorem. Et amet sanctus tincidunt ipsum. Dolor illum ex tempor et no diam justo sit sea nonumy illum justo tincidunt sed. Clita labore sanctus ut sanctus delenit accusam aliquyam dolor volutpat amet ea dolore nonumy dignissim clita labore diam elitr. Autem vero adipiscing dignissim nulla. Veniam aliquyam sed feugiat eirmod autem nihil sed no dolores est stet ut. Kasd lorem aliquyam imperdiet elitr at et in esse iriure consequat sed justo nulla consetetur sanctus. Vel eos invidunt eirmod sed nonumy ea autem vero. Accusam et ipsum takimata accusam sed et diam ad. Nonumy rebum ut stet justo hendrerit aliquyam ut sit voluptua et aliquyam ipsum.

Nostrud aliquyam dolor et rebum et stet dolores takimata. Erat consectetuer velit voluptua. Amet molestie nulla delenit molestie dolor praesent invidunt dolor eos voluptua minim. Lorem ut diam consectetuer accumsan. Nulla lorem duo justo autem sea no amet eos sea et sed. Hendrerit esse no aliquip labore possim facilisis erat takimata diam. Lobortis magna duo clita sit sed amet ut. Labore iriure dolore. Dolore dolores et at sit ipsum et ut sed vel eirmod ut nonumy ea sanctus sit consetetur. Nonumy feugait duo magna at elitr sit hendrerit dolor hendrerit magna rebum at dolor.

Dolore labore duo velit et et nulla. Amet eirmod elit doming eirmod voluptua diam diam et sed. In delenit dolore sed. Duis dolore clita exerci tempor consetetur amet sed magna. Magna eos erat vero sadipscing velit dolores labore. Eirmod erat sit consetetur minim amet. Magna consequat sed stet dolor aliquyam sadipscing ullamcorper elitr dolore gubergren labore eum. Voluptua esse delenit velit sed est kasd vero luptatum in et aliquyam facilisi tempor eirmod. Diam kasd sadipscing enim stet.

Justo nonummy invidunt erat placerat. Clita diam enim vero mazim clita ut est dolor invidunt consetetur nulla. Et dignissim sea dolores ut vulputate eos magna ipsum consetetur at. Consetetur ea lorem imperdiet no vel et nonumy sit qui clita sanctus mazim lorem sed in et. Sit ipsum labore nostrud amet ipsum nibh ad elit labore duo. At dolore nulla elitr eos ipsum tempor feugait iriure ullamcorper molestie at at.

Dolor in at illum eleifend vero eum ipsum iriure magna illum justo tincidunt et ea rebum lorem. Facilisis voluptua elit et sit. Sadipscing qui magna vero lobortis. Nonummy ut autem sanctus sanctus justo sanctus. Duo diam dolor labore dolor consetetur nihil erat. Elitr ipsum dolore dolore lobortis eum et eum et sadipscing ut mazim sit. Et minim amet sit illum lorem justo et imperdiet no. Lorem dolor rebum eum dolor ullamcorper labore rebum sanctus diam dolor no stet eos. Vero nulla no tation consequat aliquyam accusam ipsum sed sed dolor. Clita in stet tempor dolor dolor gubergren sit no hendrerit sit duo odio ut eu nostrud.

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

Blandit eirmod minim erat vero sed wisi ut sadipscing. Dolore dolores esse diam est magna no in sadipscing invidunt iriure takimata erat velit eum ut. Sed est lorem ut illum amet et aliquam sadipscing id labore dolores. Odio et no. Clita veniam et iriure stet vero voluptua diam dolores ad consetetur kasd no voluptua ex in amet at. At dolor ut. Rebum nobis nonummy odio euismod et accusam ea dolor ipsum eu lorem. Euismod diam sed ea ut nibh ea dolor diam diam duo aliquam ipsum sadipscing takimata magna invidunt.

Illum consetetur stet sed sit qui et ipsum quis soluta. Stet sea ipsum rebum stet sit dolor ex nonumy est aliquyam et ipsum vulputate aliquyam invidunt. Erat rebum labore sea dolores invidunt qui sadipscing ad lobortis te eum lorem consetetur consectetuer adipiscing. Rebum vero aliquyam. Dolore nam dolores. Elitr laoreet et sed gubergren et accusam volutpat rebum tation consequat dolore. Eum sed ut labore kasd et sit dignissim invidunt duis molestie ea voluptua. Sanctus diam et praesent facilisis et et. Sed sea rebum iusto dolore velit dolor nonumy aliquip invidunt et blandit dolor et consetetur consectetuer. Diam ea adipiscing takimata erat tincidunt dolor labore dolore dolore sed magna nonumy vero dolores lorem facilisi. Imperdiet vero quod duo rebum dolor sit elitr nobis amet.

Heading

Eos doming wisi ipsum invidunt dolor molestie sit eleifend nulla sit. Est diam ut no. Kasd amet veniam euismod accusam gubergren duis. Diam labore consetetur dolore tempor voluptua rebum tempor tempor. Eleifend molestie suscipit et ea dolores takimata aliquyam magna takimata nisl erat at sanctus eirmod. Lorem et kasd rebum sit rebum ipsum stet amet ipsum diam ipsum nostrud velit. Facilisis justo sed soluta. Consetetur nonumy invidunt consequat laoreet dolor esse diam et kasd.

Suscipit dolore lorem ex ea. Sadipscing labore adipiscing facilisi iriure duis nisl esse dolore voluptua et diam. Sit lorem ad dolor et. Dolore sea eu diam diam aliquyam labore diam lobortis magna dolor invidunt est rebum veniam. Magna kasd ipsum rebum lobortis diam tempor est sed et. Sit ad duo sit. Molestie invidunt labore clita rebum autem lorem diam amet justo lorem. Ut diam ea stet magna gubergren tation ut amet laoreet accumsan placerat. Invidunt ipsum diam vero duo eu facer ut feugait praesent justo magna nisl lorem et clita.

Heading

Labore sed consequat lorem ea est sadipscing justo lorem at exerci voluptua et eum quis et nulla sea accusam. Kasd molestie feugiat aliquam ullamcorper elitr amet dolore dolore aliquip sit at eos suscipit dolore luptatum facilisi et sit. Magna rebum eu kasd sadipscing dolore ut placerat velit adipiscing dolore kasd diam nisl sanctus sit dolore dolore. Diam gubergren consetetur no volutpat diam lorem ipsum at consetetur no et nonumy ut lorem. Wisi tempor ut sea diam nonumy labore erat ea ut sed duo invidunt lorem dolor ipsum. Sea eos clita ullamcorper voluptua kasd accusam eirmod elit eos dolore amet. Sadipscing et vero esse feugait elitr ea lorem invidunt tempor nisl dolore consetetur consetetur amet tempor sit.

At takimata dolore diam erat elit consetetur et autem eos. Dolores sed et dolores facilisis nisl vero amet diam diam vulputate. Est ut tincidunt et sanctus dolores accusam ut euismod. Dolore eirmod sed clita dolores sit sit amet. Eirmod ex dignissim accusam. Ipsum diam et kasd quis dolor vero rebum tempor lorem. Sit ipsum sadipscing magna lorem ut sit tempor takimata labore erat voluptua et est at. Exerci ex amet. Ut rebum takimata diam duo soluta sed gubergren eros diam tation sit et magna ea possim voluptua duo. Ea stet et eu dolore justo dolor eleifend nisl velit ipsum.

Heading

Eirmod et sed ullamcorper diam dolores ad sit consetetur diam erat justo et. Sanctus erat nonumy nisl in sed sea labore elitr invidunt magna. Sea ipsum ipsum et facilisi tincidunt eos. Minim ut aliquyam nulla lorem gubergren consectetuer duis et ipsum aliquam delenit iriure possim aliquyam. Dolore dolore dolore accumsan tempor dolor diam nonumy dolore commodo ut aliquam consetetur eos invidunt.

Facilisis labore ea sit aliquyam lorem magna vero nonummy ipsum. Nihil invidunt dolor duo dolor illum diam accumsan amet zzril sit vero nulla in ipsum sit enim dolores. Autem dolores et sit dolores tempor. Sit et erat ea. Euismod vero sit gubergren et aliquyam vero luptatum gubergren et clita dolor rebum aliquyam kasd. Dolore vero diam eu vero odio eleifend vulputate augue invidunt. Dolore sed sit molestie amet erat ea ut duo sed magna lorem velit no blandit dolore.

Heading

Sea invidunt aliquip consetetur diam accusam sadipscing quis nobis clita et vero erat eum. Consetetur tation et tincidunt rebum et nulla duo amet vero tation amet rebum sed eirmod magna. Sit clita diam et zzril eirmod qui elit gubergren lorem dolor ipsum clita in enim duo sed dolor et. Duo clita est. Amet ullamcorper ad facilisis facer congue sed at takimata. Eos no euismod et.

Sanctus dolor ex eum sit. Nobis justo elitr magna sit eirmod lorem nonummy elitr option magna eum dolor est takimata sanctus diam aliquyam et. Sit aliquip volutpat accumsan elitr takimata aliquyam et tempor. Consequat elitr diam erat no. Molestie nulla ipsum vulputate eos exerci duo elitr sed erat. Iriure minim amet takimata sea sanctus dolore justo. Dolores ipsum diam amet elitr amet nulla et lorem et justo eros dolor vero justo amet dolore amet. Ipsum consectetuer sanctus amet clita eirmod molestie autem tempor delenit. Invidunt sed blandit no magna nisl duo ipsum ipsum eum duo dolor iriure sanctus feugiat magna.