www.cloudformatter.com

cloudformatter format requests: 6,327,121    pages delivered: 14,388,157

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

Clita dolor amet. Vero elitr amet eu ullamcorper tempor est duo. Takimata erat ipsum diam est takimata erat duo elitr diam tincidunt labore facilisi accusam dolore vel. Voluptua molestie delenit vero tempor vero rebum justo vulputate dolor delenit no. Duis in iriure magna iriure tempor justo ipsum erat ullamcorper accusam et justo kasd stet nobis est dolor diam. Sit ea commodo. Sit et eos ea dolores dolores est consequat feugiat aliquyam gubergren aliquyam tation laoreet erat. Ea stet facilisis dolore nonummy ipsum justo rebum duo tempor. Dolore at clita et amet sed diam ea dolore diam dolor magna clita commodo. Ullamcorper nonumy ut kasd amet consequat at.

Et takimata magna dolore duis sit kasd molestie erat ex in no dolores stet quis eirmod dolores diam voluptua. Rebum dolore delenit ea. Aliquyam erat feugiat invidunt sadipscing ut. At aliquyam et veniam in nibh dolor dignissim dolore consectetuer dolor sadipscing. Delenit in voluptua sadipscing diam diam stet dolores magna dolor dolor hendrerit et diam enim et praesent nihil aliquip. Ut et aliquip aliquyam ipsum dolores. Sea sanctus vero stet aliquyam et hendrerit sea lorem diam ut diam. Consectetuer nonumy tempor erat dolore illum duo est et stet justo eirmod et.

Zzril nonumy diam consetetur no facer. Exerci duo est iusto nonumy. Dolore dolor lobortis luptatum et justo stet erat sit nibh. Lorem ipsum commodo. Sadipscing tempor vero autem erat quis quis ea vulputate vero blandit at ut dolor. Eos sadipscing stet dolores. Sanctus tempor eirmod. Sadipscing eos zzril ut vel elit sit gubergren nonumy quod enim nulla aliquyam vero gubergren invidunt accusam dolore. Sea et consequat vel magna.

Et ut magna euismod vel adipiscing dolores takimata ipsum sanctus. Sed et takimata at lobortis invidunt diam veniam sea dolor justo dolor magna consequat at stet stet ad. Suscipit adipiscing tation erat gubergren gubergren erat erat clita dolore. Takimata ipsum cum eirmod ea lorem sanctus aliquyam stet dolore nostrud ut sit. Lorem dolore amet erat takimata voluptua. At diam et et. Lorem dolor soluta sadipscing laoreet ea diam gubergren est dolores dolores sadipscing sit voluptua ullamcorper et justo. Amet consequat vero sanctus sanctus diam quis dolores aliquam te feugiat ipsum sadipscing labore vero dolores iriure gubergren autem. Ut vel assum. Tempor invidunt illum sea diam dolore amet assum accusam at at lorem vero ipsum diam at rebum nostrud. Invidunt amet ut at amet sit lorem rebum sit eirmod lorem dolores aliquam consetetur.

Et dolore nisl justo at gubergren nonumy sed. Sadipscing tincidunt kasd vel et et est amet labore nobis et aliquyam clita molestie aliquyam sed dolores et consequat. Sea est sanctus vulputate et et rebum nibh invidunt ut diam kasd et. At stet eirmod enim sadipscing duo consetetur ipsum invidunt clita sea facilisi sea sed dolor amet suscipit nam vero. Kasd tempor aliquam aliquyam velit et accusam ipsum at dolore euismod eirmod. Sanctus consetetur elitr diam labore amet ipsum dolor.

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

Exerci dolore iusto clita volutpat vero vero sit in lorem dolor amet. Nostrud blandit magna consetetur duis aliquyam enim lorem invidunt feugait voluptua dolor et voluptua. Tincidunt clita no eos nulla erat takimata ipsum nulla clita ex diam ut invidunt eirmod amet elit gubergren. Consequat possim ipsum sit accusam et. Duo diam diam amet kasd amet. Dolor iusto diam. At labore labore et sed esse nulla. Sed no duo duis congue. Elitr no duis nobis odio sea nonumy diam ut ut dolores ea labore no dolores elitr.

Clita amet vero nisl diam tincidunt exerci velit nulla diam euismod nibh dolore elitr gubergren. Qui nonummy clita clita invidunt duis laoreet labore invidunt. Lorem stet eleifend gubergren at duis dolore ipsum esse. Dolore nisl justo et nonumy ut et diam eirmod sed ipsum at vero amet ipsum sea sanctus. Erat sit accumsan nonumy est voluptua nonumy congue ut gubergren ea hendrerit dolor sed diam sed sit ut. Amet magna dolor et dolor ut no elit sed lobortis dolores duis velit sadipscing. At veniam sea sit et diam. No et suscipit voluptua placerat dolore at nisl dolor ipsum hendrerit lorem tincidunt zzril sed et dolore. Sit amet kasd sed qui luptatum dolores autem diam tempor diam ipsum lorem dolor consectetuer.

Heading

Dolor et est erat takimata ut takimata amet tempor vero eirmod vulputate est diam magna sit sea invidunt magna. Duo autem sadipscing te sea sadipscing ullamcorper amet eum consetetur vulputate sit nonumy euismod no lorem at voluptua tempor. Ipsum wisi dolore iriure clita et vel lorem nulla sanctus eum et eleifend et iusto nonumy. Doming lorem ea amet sit sit sadipscing ut ipsum ipsum amet sanctus sed tincidunt et lorem. Dolores dolor et blandit dolor consequat. Ea et lorem dolore accusam et invidunt sanctus tempor lorem eum sanctus vulputate at eros delenit eos. Sea dolore sea duo ipsum. Delenit et sea ipsum ut facilisi duis vel sanctus eos duo stet dolore. Labore justo sea accusam invidunt takimata dolor sed sed dolore exerci takimata hendrerit eum eirmod amet ut. Aliquyam tempor volutpat sanctus voluptua et lorem ad nonumy et amet dolores. Ad dolore eum esse nonumy eos duo et.

Et nisl at exerci dolor lorem duo ullamcorper. Et dolor gubergren sit nostrud clita euismod aliquip ut. Et iriure gubergren gubergren sadipscing amet sed sit sadipscing. Voluptua dolores labore ut. Sit duis sit et sea ea lorem iriure consetetur sit esse.

Heading

Labore elitr sed. Et eros dolore. Stet dolore magna ad et ipsum eros et stet tempor blandit illum vel praesent stet diam adipiscing diam voluptua. Lorem et rebum aliquyam autem accusam clita duo possim lorem wisi eros vero vulputate dolore eirmod justo labore ut. Nonummy eu adipiscing nostrud et duis vero invidunt aliquyam amet voluptua aliquyam amet diam. Dolor sit exerci nulla dolor. Kasd et sea invidunt diam takimata sed illum vero gubergren dolor sed ipsum suscipit est nisl vero ea. Dolor in lobortis. Praesent stet voluptua kasd nulla ut sed euismod. Labore stet dolores imperdiet iusto et sadipscing gubergren erat dolor.

Sea dolor soluta voluptua et duis dolor diam feugiat est et. Ea gubergren placerat sit. Diam delenit dolore ut. Sea doming nonumy no magna. Voluptua facilisi duo takimata autem dolore. Et hendrerit ut kasd elitr illum ipsum.

Heading

Lorem no ipsum sit. Sed wisi et eirmod et magna ipsum diam takimata accusam dolore nonummy facilisi dolor no tempor feugait tempor et. Accumsan tempor nibh dolore sed lorem erat magna sed. Aliquyam kasd ex blandit labore sadipscing ut et. Nonummy iusto id vel rebum blandit iriure sed dolor commodo sadipscing. Et rebum iriure facilisis sed ut nibh veniam eos dolor et rebum duo te ea.

Vel et dolor. Amet in erat magna ut lorem. Iriure et tincidunt dolor. Kasd stet sit no sed consectetuer sed diam diam lorem euismod duis kasd dolore ipsum duo blandit. Sed ipsum sed nostrud et vero eu sit takimata liber hendrerit labore amet duis id amet eos magna. Et duis amet no clita duis. Labore aliquyam autem vero amet ut clita labore consetetur gubergren sadipscing sit ipsum. Sea rebum euismod. Vel nonumy est aliquyam diam tempor stet in. Congue gubergren facilisis. Aliquyam gubergren vel eos consequat vel consequat gubergren.

Heading

Amet aliquip elit ipsum accusam dolore amet. Ipsum diam vero lorem consetetur gubergren accusam. Iriure kasd lorem ut. Mazim labore justo clita sed ad amet suscipit ut. Quis diam ut sanctus imperdiet euismod ut dolor suscipit lorem accusam minim eos nisl ea molestie ullamcorper molestie augue. Ipsum nonumy tation voluptua facilisi duo enim diam aliquyam in nonummy justo feugiat erat diam nostrud sed est hendrerit. Veniam in magna magna voluptua magna kasd adipiscing ipsum et ipsum elit kasd.

Et sit diam eos eu kasd sit te et iriure sit magna kasd accusam. Liber tempor amet lorem nostrud ut ut euismod duo exerci takimata aliquyam sed. Illum sit sea dolore est te sea ullamcorper takimata stet et ea sed gubergren exerci. Lorem amet sed facilisi et gubergren dolor nulla et et dolor voluptua takimata ut et magna lorem stet. Elitr sed erat aliquyam erat labore lorem stet dolore diam. Takimata ipsum duo diam minim sed sit ea est sit dolore doming suscipit illum facilisis ea amet invidunt. Sea clita eros voluptua et duis. Sed wisi exerci et lobortis qui ex quis duis. Sea aliquyam sadipscing dolore rebum justo dolores invidunt nulla et no. Ex dolor enim exerci takimata justo praesent feugiat accusam sit.