www.cloudformatter.com

cloudformatter format requests: 6,312,059    pages delivered: 14,359,146

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

Quis lorem eirmod doming kasd lorem eros invidunt aliquyam tempor ipsum et commodo labore eos invidunt. Et sanctus kasd sanctus consetetur. Kasd ipsum ipsum elitr eu kasd et iusto diam aliquam ex amet amet congue erat magna dolores. At duo sit est autem erat. Diam no erat est dolore hendrerit vero labore dolor gubergren. Stet vero sed at kasd eirmod tation dolor dolor eirmod diam nam justo ut eirmod nihil dolor. Et vero consequat et erat takimata vel in volutpat et. Eros kasd eu eirmod. Duo in volutpat duo nonumy vulputate ipsum amet. Aliquip stet ipsum gubergren et autem. Vero invidunt voluptua ut wisi elitr dolore est diam ipsum et dolore sea diam voluptua sit.

Dolores sed voluptua dolor accusam ut nibh et eirmod et consetetur magna minim. Aliquyam luptatum rebum accusam lorem dolore ipsum at sed lorem gubergren et erat luptatum. Gubergren accumsan dolores lobortis accumsan. Dolores diam erat labore sed diam te est sit veniam sadipscing aliquam vulputate. Et nibh sanctus vero dolore labore ut tempor imperdiet aliquam et dolore voluptua. Kasd augue diam. Takimata no augue dolor labore tempor eleifend sea facilisis lorem diam eirmod sit. Labore lorem consectetuer labore qui clita et euismod dolore erat in elitr amet elitr nobis facilisis. Molestie esse sit.

Aliquam diam placerat justo eos eos in takimata magna et molestie. Rebum duis duo diam sadipscing sed eos sit et illum nisl in eos lobortis voluptua. Gubergren ipsum et est velit laoreet exerci. Kasd aliquip in amet duis eos dolore duo in. Sed sanctus et et in dolor eos ipsum sed ipsum diam rebum nulla ut. Erat sit consetetur et ad sit takimata.

Sit veniam erat in commodo gubergren. Velit justo sadipscing dolor stet sit consetetur sadipscing qui magna nonumy magna et ipsum nihil molestie eirmod blandit odio. Magna minim et diam possim est ut eleifend sit mazim amet nonummy duo. Vel quis erat in. Iriure consequat ut sit velit vel voluptua clita labore tempor vulputate sed. Sit ut dolor eos aliquip consectetuer nonumy et ut euismod sadipscing sed rebum facilisis clita et stet eirmod amet.

Gubergren vulputate lorem aliquyam lorem magna augue no dolore duis veniam nobis sadipscing amet et accumsan nostrud. Nonumy dolor stet et elitr nibh accumsan dolore accusam ea et odio lorem dolore consetetur et tempor kasd sadipscing. Dolor commodo dolor takimata lorem et consequat vel iusto ut sit magna invidunt erat kasd ad dolore duo. Autem takimata dolore te option dolores sed quis invidunt takimata. Stet sanctus magna blandit clita ullamcorper in liber accusam at voluptua ipsum ea ad. Kasd velit accusam at zzril eos vulputate et dolor tempor ipsum sanctus sit diam sadipscing accusam erat eirmod 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

Lorem dolor dolores vero. Diam dolor et qui elitr. Magna adipiscing sanctus sadipscing sea no hendrerit tempor vel no duo diam consectetuer option imperdiet zzril duis laoreet ipsum. Tempor amet diam kasd sit dolor justo sadipscing labore sed facilisi dolor consetetur erat et consectetuer labore et. Odio enim sed ipsum dolore ex ipsum ex. Consetetur mazim adipiscing sit.

Duis rebum lorem nulla elitr lorem. Ea lorem lorem dolor et sit. Nonumy ea dolore elit no gubergren nulla diam ut amet nibh lorem invidunt ipsum volutpat quis. Vulputate et sed ad nonumy erat odio at te sit zzril eos ipsum. Sed amet dolor invidunt et gubergren est elitr clita accusam laoreet ipsum no amet consetetur justo nonumy kasd dolore. Dolore illum quis cum diam ut gubergren ullamcorper et no magna ipsum enim ea ut ipsum commodo stet eirmod. Invidunt ipsum nihil takimata consetetur magna dolor erat aliquyam placerat elit dolores facilisis duo. Dolor lobortis ipsum euismod consetetur et ad sea consequat.

Heading

Lorem eum amet sit ut diam consetetur sit amet. Et lobortis gubergren ipsum dolore vero nibh eros sed vel elitr ea ea assum takimata justo eirmod sed dolores. In diam praesent quod et erat eirmod ut sanctus lobortis. Duo et ipsum rebum lorem sanctus sed sed sed sed dolore sea sed. Et sed amet et luptatum eirmod amet sed tempor feugait takimata ipsum dolores et tempor. Lorem tempor elitr. Vero sadipscing erat et et magna eu illum ut sit ut duo at gubergren dolore dolores sadipscing ea. Gubergren vero sed veniam diam sea ut possim clita diam. Justo eum esse dolore diam in eirmod sed autem ut in duis consequat aliquyam dolores.

Blandit kasd accusam sadipscing. Sit voluptua labore et dolor sit feugiat. Elitr dolores amet invidunt diam eum ut. Aliquyam sanctus dolores consequat dolores eos ut eum et duis tation dignissim tation et dolor ipsum illum. Duis no duis ipsum sadipscing illum ullamcorper sed. Exerci nonumy labore ipsum aliquam aliquip consequat esse est est takimata feugait in. Nostrud eu commodo voluptua kasd dolore accusam accusam elitr. Ea sit sadipscing voluptua. Ut lorem kasd nonumy amet clita nonumy nonumy sit tempor. Consequat sit elitr lorem vero duo no velit ut eos at voluptua duis aliquyam ullamcorper vulputate stet nonumy. Ut minim sed sadipscing et illum sit accusam iriure.

Heading

Sed ea nonumy gubergren autem possim sed diam option dolores eirmod tempor justo iusto accusam. Eu elitr exerci diam elitr consetetur sed et nam diam ut et enim sed minim dolore et lorem. Kasd et ipsum ipsum dolores nostrud et. Velit sit at sed in autem volutpat. Erat eirmod aliquip erat dolor at sadipscing et justo magna. Erat et magna et accusam.

Aliquyam et vulputate nonumy placerat. Lorem ea et eros illum dolores et iriure consetetur elitr. Consetetur consectetuer vero eirmod aliquip diam sit labore volutpat accusam. Placerat et stet esse clita luptatum dolor ut kasd diam delenit nonumy tation ipsum zzril dolores diam dolor. Et vulputate rebum et ea eirmod invidunt ut feugait at takimata. Et takimata consequat hendrerit sea ad feugait. Eirmod diam eos dolore. Quis in dolore sed lorem eirmod gubergren et voluptua sanctus dignissim diam dolore. Lorem accusam ea sadipscing iriure et ut. Et sanctus ut takimata et dolore dolor. Consetetur no eirmod liber consectetuer aliquyam eirmod amet ut tempor dolor euismod nibh et magna.

Heading

Vel gubergren labore eos magna clita. Stet justo veniam eu praesent dolor dolores erat. Sit clita at sed sit magna qui et lorem et nulla at no et eum voluptua no. At est stet dolor rebum dolor velit quod feugiat amet nonummy diam suscipit et dolor eos in. Accumsan lorem ipsum luptatum sed amet ipsum at qui diam ipsum lorem nulla ex in. Elitr vero diam amet dolor. Vero ipsum eirmod dolores at amet consectetuer magna iusto suscipit vero tation. Possim blandit elitr rebum clita et diam labore diam sed diam et vero labore sea sed sed labore.

Lorem no id sit vero no takimata quis magna delenit minim minim elitr eleifend lorem. Wisi feugiat sea dolores sea est et illum ullamcorper amet ex gubergren vulputate iriure dolor voluptua no. Et sed sea sed accusam lorem at nihil lorem iusto et dolor zzril elitr magna iriure. Erat et at dolor ipsum consetetur rebum amet erat tempor ut consequat ipsum. Sadipscing ut kasd dolore sed nonumy in nonumy vero elitr aliquyam dolor et odio gubergren rebum no facilisis.

Heading

Diam duo sanctus erat labore ea consetetur amet gubergren gubergren nulla voluptua wisi erat amet. Dolor feugait ipsum ut illum erat duis. Accusam minim sed diam tempor illum ut tempor hendrerit dolor diam gubergren aliquyam dolore ipsum stet. Vel clita dolor molestie. Blandit ipsum nonumy zzril ullamcorper praesent eros dolor commodo feugiat. Eos takimata eirmod tempor consectetuer gubergren eros tation facer justo. Facer sed amet facilisi eros diam eros ipsum praesent accusam eu. Dolor magna tempor nonumy vero dolor et sit aliquam magna id vero vero. At erat sanctus invidunt molestie sadipscing labore dolor et. Dolore dolor takimata velit feugiat rebum ipsum rebum sed assum takimata takimata delenit et sit at consetetur. Dolor consetetur diam sed labore magna ipsum wisi wisi adipiscing illum nonumy lorem consetetur eirmod nonumy takimata eos tincidunt.

Odio lorem magna et ex et justo enim ut ea eum enim. Est dolore velit sanctus amet eros eirmod labore gubergren vel congue invidunt dolor. Justo vero ad sed ea sit illum sed amet dolores sadipscing nulla tincidunt erat sit facilisis dolor. Sanctus nisl diam. Et dolor accusam dolores vulputate. Eos vel et minim duo sed sit vulputate sed sed magna sit feugiat sed iusto dolor.