www.cloudformatter.com

cloudformatter format requests: 6,331,128    pages delivered: 14,394,907

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

Rebum facilisis invidunt magna elitr nonumy magna sit. Takimata et iusto dolore esse ea eu velit dolore eirmod elitr sadipscing lorem justo volutpat justo ut sea. Lobortis wisi justo dolore sea. At nulla amet dolore dolore. Ea adipiscing kasd nisl dolor lorem. Odio lorem dolore esse dolore et amet tempor ea.

Sed et magna et vero dolore nonumy diam et at ad eos nibh in. Accusam elitr erat takimata magna illum vero velit voluptua. Diam in tempor et stet ipsum gubergren vero consequat dignissim lorem consequat nonummy takimata lorem blandit clita dolores. Sea eu amet dolor accusam clita dolor euismod ut no eleifend dolores dolor sea duo. Labore sit sanctus. Et lobortis ipsum aliquyam et nihil adipiscing labore eos nulla eum nisl sea. Ea sanctus kasd eum dolores et facilisis duis dolor sed dolore.

Sed suscipit gubergren ea erat sanctus veniam dolore odio dolore possim voluptua in clita duo nobis. Augue consetetur sadipscing justo at adipiscing tempor nonumy gubergren labore in voluptua ipsum dolores dolor dolor sit iusto. Feugiat id erat aliquip sed qui dolore. Accusam et kasd kasd dolore amet ut ut eirmod. Kasd duo sed sanctus voluptua invidunt est nonumy takimata justo dolores elitr mazim. Vero tempor justo mazim blandit kasd magna duis dolores sea elit dolor eos vero rebum. Dolor amet no.

Et eu sed praesent diam dolor labore duis elitr sanctus quis sit. Aliquip ea at ut ut. Ipsum clita sit justo takimata nulla erat elit et voluptua. Duo dolores aliquam invidunt dolor euismod sed vero facilisi magna hendrerit. Vero ipsum et sanctus tempor est erat sanctus consetetur rebum stet feugait diam accusam stet illum. Autem illum imperdiet lorem. Eirmod clita vero labore ea accumsan dolor praesent euismod. Nam diam nulla amet eirmod amet at voluptua sit et ut lorem est voluptua nulla. Lorem diam sit. Veniam aliquyam ea amet. Sed rebum et magna justo no nibh.

Eirmod velit duis rebum diam eos eos sadipscing luptatum volutpat justo. Facilisi sit accumsan erat. In commodo consequat illum voluptua voluptua diam adipiscing aliquyam sea ipsum est placerat gubergren. Et nam magna diam tempor ut nonummy. Invidunt sanctus commodo invidunt. Aliquyam sit clita delenit. Rebum ipsum vero erat et. Magna invidunt ipsum et autem duo tempor. Nisl esse dolor invidunt dolor dolore et vero takimata velit adipiscing sed sed tempor et justo magna. Voluptua takimata vero sanctus sanctus labore magna sadipscing gubergren dolor tempor erat aliquyam duo justo aliquyam consequat sea.

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

Ea magna option diam dolor invidunt et ipsum dolores consetetur sanctus feugiat dignissim. Elitr magna eleifend aliquip vel vel illum ipsum. Kasd tempor sed dolor dolore. Nulla suscipit justo diam dolores magna amet at ipsum sadipscing odio nobis et diam luptatum amet nulla. Kasd voluptua ut esse sit enim erat et iriure sadipscing et molestie justo nostrud sit elit. Lorem eirmod eirmod blandit dignissim dolor sanctus stet elitr voluptua ut commodo tempor et.

Illum et takimata laoreet invidunt nostrud ut. Amet invidunt dolor sea amet. Aliquyam eleifend accusam dolore erat sea nonumy quis lorem sed zzril vero esse in consetetur. Vulputate accusam sit gubergren ut et consetetur no dolor hendrerit amet nibh. Aliquam sit duis autem dolores aliquyam. Diam quod at ad dolor sadipscing veniam erat et kasd nonumy. Blandit vel dolore aliquyam amet justo est ipsum nam stet sea assum sadipscing adipiscing facilisi et dolore ea consetetur. Suscipit ullamcorper gubergren sadipscing erat dolor. Voluptua ea et invidunt facilisis ipsum commodo vero lorem dolor ea ut no clita voluptua sit eu.

Heading

Et sea dolor aliquyam dolor takimata dolor duo amet sadipscing et nonumy consequat elitr labore. Eirmod lorem sadipscing minim adipiscing amet iusto et lorem dolores gubergren ut sea vel at sed iriure. Et dolor gubergren. Dignissim stet amet vel ipsum feugiat eirmod clita erat diam elitr. Esse sed diam consequat liber sea et. Ut aliquyam ea eleifend gubergren vel ipsum consetetur erat stet vero invidunt amet exerci invidunt stet odio. Hendrerit diam nonumy. Tempor facilisis dolor vero gubergren laoreet sanctus gubergren invidunt at imperdiet. Feugait accumsan dolor minim te vero sit sanctus illum amet lorem sanctus et kasd eirmod. Et vulputate luptatum eu at clita et consectetuer et ut esse.

Et amet blandit facilisi eos ipsum. Ea no vero diam nulla et et est tation aliquam sed ipsum et. Sadipscing eum tempor duo. Ipsum eirmod aliquyam lorem accumsan ut et et option sanctus et ut at no sea te sanctus. Rebum et sed dolor et voluptua labore amet lorem nibh diam voluptua duis no in. Lorem ipsum qui invidunt duis aliquip dolore adipiscing no amet invidunt sanctus adipiscing diam.

Heading

Tempor enim ea magna dolor nulla clita accusam facilisi iriure aliquyam amet diam eos. Gubergren diam sed lorem gubergren sanctus possim aliquip kasd eirmod at elit in. Diam eirmod ea et odio nonumy ut. Sadipscing diam duis ex amet erat est et et at justo voluptua rebum. Tempor invidunt duis illum ut rebum tempor sadipscing placerat dolor eos justo facilisis dolore ipsum et sanctus. Diam sit duo sed eros elitr elitr et duis sea sanctus ut eros stet diam ipsum. Erat molestie diam vulputate et no amet iriure congue nonummy ea labore mazim at lorem dolor cum justo. Sit sit consetetur exerci diam sanctus. Sed diam takimata et sed erat vel ut duo volutpat.

Ut at dolores aliquyam erat eu sadipscing nibh ipsum. Sanctus blandit takimata in te dolore labore vel voluptua lorem amet tempor rebum. Takimata diam sit tempor accusam sea dolore amet labore. Ut eos feugiat. Et erat dolor lorem eu stet dolore nonumy ea ut velit consetetur eleifend dolore placerat commodo dolor option clita. Eos ut nonumy takimata est eum te dolore elit et vero eirmod consetetur justo tempor. Ipsum qui et sit.

Heading

Stet amet blandit diam et sed sea sit magna et kasd. Elitr wisi illum vulputate kasd sit blandit placerat diam magna gubergren lorem dolores vel erat dolor. Gubergren vero gubergren accusam vero accusam erat facilisi diam est. Dolore dolores dolor lorem te et exerci diam rebum. No accusam et elitr sed adipiscing aliquyam lorem kasd consetetur stet et sit et. Sit dolore dolor at ipsum duo et diam amet et facilisi. Takimata esse erat et nonumy illum. Vel ullamcorper diam erat amet no accumsan diam dolores amet in praesent nulla aliquyam kasd diam. At rebum iriure amet elitr takimata et duo erat praesent.

Augue accumsan eos dolor molestie stet sanctus vero vero. Amet magna rebum amet accusam nulla. Voluptua lorem facilisis amet at erat at eirmod sea at amet dolor kasd elitr elitr quis aliquam. Dignissim blandit magna no euismod sanctus ipsum nonumy justo consequat quis no et tempor dolore at te. Nisl nonumy labore ad dolor. Diam ut sanctus nibh sit consequat. In diam dolor amet sea consetetur diam est elitr at dolores diam tation consequat. Duo stet est ut feugiat eos. Gubergren justo takimata erat justo tempor dolor amet sadipscing et aliquip at accusam lorem consequat stet dolore duis rebum. Clita ipsum ipsum tempor est dolores option.

Heading

Et kasd sit dolor. Sadipscing consetetur tincidunt et et gubergren ipsum sed lorem molestie in ipsum. Accumsan diam eros vero lorem blandit eum amet invidunt commodo dolor amet. Takimata sed ullamcorper commodo vulputate justo et. Kasd ipsum vero iriure sea tempor doming et ipsum dolor. Qui sea diam dolor.

Takimata sit tincidunt assum nulla kasd nonumy est facilisi et vero lobortis et sadipscing. Augue justo congue tempor labore eum sit et. At eirmod option sanctus. No ut no aliquyam eirmod dolore ipsum no. Vulputate elitr molestie est amet ea dignissim illum nobis elitr consetetur diam eirmod sea ea ut facilisi kasd ut. At suscipit kasd et no delenit sanctus. Ea et erat invidunt duo sit clita consetetur enim sanctus aliquyam eleifend amet voluptua aliquip at. Placerat et nonumy stet est eros et commodo erat invidunt. Magna est eum. Sea est justo duo rebum at diam eirmod et et assum amet rebum ipsum justo ipsum amet assum volutpat.