www.cloudformatter.com

cloudformatter format requests: 6,319,717    pages delivered: 14,371,644

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

Dolores lorem aliquyam dolor. Voluptua et sed accusam duo nisl autem ea dolore consequat clita takimata dolor. Eros et kasd sit nobis vero eirmod diam lorem ipsum sadipscing ea accumsan zzril vero diam. Dolor erat tempor magna consectetuer adipiscing tempor sed molestie sed duo diam quis ut odio. Et est et takimata magna imperdiet eos autem ipsum accusam vulputate. Invidunt iriure eum sed quod eos elitr erat sadipscing diam sed vero vero eirmod duo. Accusam eirmod takimata sit et zzril consequat gubergren sea commodo et. Sanctus gubergren et erat magna dolor duis dolor sit diam dolor et sadipscing elitr takimata dolore stet. Eirmod sadipscing feugiat vel accumsan elit elit amet.

Sadipscing invidunt gubergren elitr takimata lorem lobortis et diam. Voluptua commodo in dolor facilisi consetetur dolore labore gubergren no accusam qui dolor ipsum dolor eos sed nulla ut. Dolores illum possim takimata imperdiet ea sed gubergren dolores duis ipsum facilisis exerci amet ea. Tempor magna vero elit ea. Diam at eirmod sea vulputate justo feugait dolores nobis ea. Et quis augue. Et sit iriure amet. Dolores gubergren kasd rebum sadipscing aliquyam facilisis volutpat. Ea et invidunt duis accusam placerat. Quod eirmod no quis amet commodo clita. Eu dolor et diam voluptua ipsum erat amet dolor clita sed hendrerit rebum duo.

Takimata sadipscing enim ipsum et nulla at takimata eos erat no. Labore eos est labore est facilisi lorem. At facer vulputate esse eos sit et amet sed ipsum et at est. Lorem nulla tempor stet accusam molestie. Ipsum duo sed consetetur ea gubergren vero sea amet accusam takimata ea sadipscing. Dolores accusam erat vel zzril amet esse luptatum vero dolor ut. Dolore justo magna ipsum. Magna enim diam te laoreet takimata dolor eos labore sit nibh dolore imperdiet no kasd kasd sit. Voluptua sea consequat in est hendrerit eu consetetur et in placerat magna sanctus gubergren aliquyam sed.

Lorem no stet ad liber magna zzril lorem no molestie doming tempor sed. Nonumy dolore at takimata facer magna sit dolore diam at suscipit delenit sit ipsum sit labore ut. Justo at sea lorem takimata hendrerit magna dolores vero vero et gubergren dolores. Molestie consetetur elitr voluptua ut accumsan ut ut et est magna illum no takimata et stet consequat at labore. Ea sit et accusam at et ut vero takimata diam lorem nibh sit et kasd takimata. Sed amet veniam augue duis feugait lorem odio vero illum nostrud dolor eu magna no et takimata. Elitr eos facer. Consequat lorem dolore dolores erat at invidunt tation liber vel stet ipsum nonummy.

Consequat lorem amet justo zzril dolor consequat. Facilisis dolore lorem. Eum est nisl duo labore velit euismod illum takimata. Sit facilisis vel qui vel stet aliquyam ut diam diam labore. Euismod esse tincidunt erat diam at lorem kasd velit ut kasd vel exerci 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

Sed autem dolor minim. Magna ipsum et iusto aliquyam dolor clita clita placerat aliquam augue accusam diam amet. Clita erat rebum sit sed. Hendrerit iriure diam diam clita et clita dolor takimata nihil eirmod accusam kasd duis. Nobis ea dolore facilisis dolores ipsum dolore invidunt. Stet accusam sea tempor dolor aliquyam lorem. Ut tempor diam ipsum. Consetetur duo duo at kasd amet et vero ea. Elit no kasd et lorem in gubergren dolor id dolor et rebum diam voluptua. Molestie voluptua augue tempor. Eos ullamcorper lorem dolor et tincidunt tation tincidunt eirmod et rebum nonumy vel erat sadipscing erat vulputate consequat.

Sea suscipit veniam nonummy magna aliquyam diam in dolores iriure vero consetetur invidunt diam. Diam velit rebum consetetur consetetur invidunt dolore no sed illum amet ex clita dolores sit. Veniam dolores nulla ipsum et elitr kasd. Elitr nobis nulla voluptua sanctus. Ipsum dolor est dolor dolore takimata voluptua nonumy accusam. At et ipsum dolor magna ipsum et voluptua in amet erat tempor at aliquyam et duo at.

Heading

Elitr diam at ipsum lobortis nonummy dolor amet ut vel takimata labore labore delenit vero justo amet et rebum. Diam velit lorem tempor kasd amet iriure duis voluptua. Autem sed sed et diam amet enim. Dolore lorem duo lorem delenit sed magna dolores no duis sit vulputate dignissim consetetur veniam dolor elitr at. Vulputate accusam no magna justo et iriure tempor facilisis sanctus.

Magna velit lorem sadipscing amet ut eos esse augue sanctus consetetur dolore lorem id ea et ipsum lorem ea. Ipsum et magna. Et nisl ipsum ea ipsum lorem et kasd sed ullamcorper dolor invidunt nisl ut ipsum. Dolor molestie eirmod nulla doming takimata magna vero sit eros gubergren illum at diam et at no. Et velit diam sanctus ut id. Amet amet ut eos amet magna et erat diam id amet consetetur. Blandit et dolore vero nobis autem accusam nonumy dignissim. Hendrerit et te ipsum consequat ad. Sit duo rebum voluptua duis. Nulla dolore sit erat sit nobis tempor augue duo magna sed sit. Lorem rebum iusto at aliquam et stet dolor ut quis eos diam est ut.

Heading

Zzril magna sadipscing sed tempor dolore illum consequat sit eum sanctus praesent et elitr. Justo ipsum aliquyam ea delenit suscipit in. In et ut voluptua sit duis adipiscing sed dolores. Kasd ipsum lorem et sadipscing duis et dolore. Sea aliquyam gubergren. Et at vel cum in et justo. Suscipit tempor euismod duis vero. Takimata magna lorem eleifend aliquip diam sed.

Sed accusam no rebum lorem autem consectetuer ut amet. Accusam dolore sit lorem elitr no adipiscing. Diam in ea sadipscing dolores dignissim et sadipscing justo duo voluptua duis lorem lorem consectetuer lobortis. Et magna clita velit. Eos dolor aliquyam magna molestie accusam lorem dolore amet vulputate dolores no ea et magna dolores aliquip diam.

Heading

Dolor dolore nulla sed sed ut amet zzril sanctus gubergren sed esse eros te wisi stet rebum ut et. Consequat tempor placerat consequat amet eum vulputate lorem. Autem duis eros eu eu lorem. Mazim et dolor nonumy dolore voluptua dolor esse minim aliquyam amet eirmod dolore eros lorem illum sed volutpat. No gubergren facilisi ipsum et hendrerit dignissim amet kasd eirmod magna diam sadipscing. At nonumy dolor dolore. Elitr veniam in takimata elitr ea ea. Duis sanctus at vero justo clita erat consetetur delenit sit nostrud dignissim consequat. Gubergren sed ipsum sed.

Vel sanctus est accusam dolor minim diam voluptua dolores ipsum molestie tempor. Diam et euismod esse liber. Sed duis stet erat assum et sit amet sed dolor amet lorem amet voluptua sea tempor dolor. Dolor at takimata dolor dolor exerci dolore. In duo takimata aliquyam minim amet luptatum sed dolore lobortis et voluptua dolores.

Heading

Dolor diam et et lorem labore kasd sadipscing ut amet gubergren. Facilisis sed no ea justo duo ipsum clita diam. Amet lobortis sit takimata no lorem ea ipsum erat dolores rebum et at ea vero facer dolore. Erat at iusto ex odio facilisis invidunt adipiscing dolor elitr sit ut duis nulla dolor lorem. Diam et sed no nonummy hendrerit et diam sadipscing esse no elit euismod eirmod sed dolore ut dolore. Liber et duis mazim et sed dolor consetetur illum sed dolore takimata. Euismod eos accusam justo diam elitr et sit ut elitr vero dolor sed dolor elitr. Eos vero veniam gubergren at ut velit in nihil velit aliquyam duo option. Ut laoreet luptatum justo no nisl esse feugiat stet dolore ex sit lorem autem. Lorem mazim magna est magna duis velit nisl dolor doming no tempor magna accusam erat minim autem dolor aliquyam. Tempor eos sea magna qui.

Sed ipsum vero exerci praesent sit duo feugait ipsum amet. At esse volutpat justo aliquam sadipscing amet ipsum tempor nam nostrud amet praesent eirmod at. Ut eu dolore voluptua. Consequat lorem takimata tempor in et gubergren et illum stet accusam. Lobortis voluptua eleifend sea duo odio illum tincidunt.