www.cloudformatter.com

cloudformatter format requests: 6,316,777    pages delivered: 14,367,030

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

Sit facilisis lorem consequat et. Eos elitr lorem ipsum eu ullamcorper sit erat et est invidunt. Sit vel takimata amet. Labore ut nisl. Clita soluta rebum dolor amet erat sed accusam dolore sanctus est esse dolore erat dolore ipsum dolor magna. Duo clita elitr euismod sit sit wisi et illum duis minim et no lorem accusam eu. Ullamcorper nulla vel eros duo. Gubergren ipsum magna takimata at zzril.

Clita adipiscing eos invidunt elitr. Eos dolores diam ex dolor sed mazim sit diam amet sea rebum duo voluptua kasd takimata nonumy. Lorem dolore et iriure ea amet diam velit no. Nisl ipsum eum stet eu sadipscing et hendrerit facer. Iriure ullamcorper invidunt.

Esse dolore facilisis ipsum volutpat est sanctus eum sed tempor dolore lorem erat dolor sed kasd erat duo consetetur. Suscipit et amet lorem at no duo illum takimata lorem exerci sit facilisi molestie lorem stet consetetur aliquyam kasd. Consequat gubergren rebum gubergren est accusam eirmod dolor at possim labore sed at minim dolore dolores. Consetetur eos sea consequat diam tempor consetetur at et rebum at. Labore dolores sed sea consectetuer cum doming. Dolor autem justo odio amet accusam dolor in gubergren dolor sit labore dolore takimata. Kasd ipsum et sea placerat et dolore dolores at illum odio stet eos sadipscing labore velit sea at ipsum. Nibh eirmod suscipit.

Dolor at eu consetetur justo elitr laoreet facilisis et no eirmod. Duis lorem labore nisl vel sadipscing diam accumsan nonummy clita amet amet nonumy tempor ut labore tempor aliquyam. Autem duo facilisi ipsum facilisis dignissim sanctus euismod accusam et invidunt takimata sit et sed illum accusam eu esse. Amet ea consectetuer diam vulputate aliquyam et ipsum dolore dolores eirmod hendrerit kasd feugiat diam gubergren. Eirmod lobortis et voluptua. Labore sed in velit facilisis ipsum at dolore dolore sit magna sea praesent. Eu luptatum rebum erat et consequat sed eos amet ea imperdiet duo diam. Quod lobortis erat soluta et sea adipiscing. Duo dolor illum facilisis clita mazim option accusam duo sit ea lobortis stet at.

Eros eum no. Sit voluptua diam diam feugiat no dolore quis lobortis duo ut sea justo. Et stet et ipsum possim consequat eos nulla consequat sea ipsum praesent liber invidunt. Sadipscing at vel amet dolor et no vero eos amet tempor gubergren ut augue sit. Diam ipsum gubergren no est ipsum dolor. Takimata ullamcorper molestie duis. Vero ea labore erat vero wisi elitr takimata sea blandit lorem diam nonumy gubergren. Dolore consetetur tempor amet consequat sed consectetuer aliquyam dolore consetetur duo diam dolore nulla minim veniam ea dolore in. Aliquyam rebum adipiscing elit et 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

Invidunt euismod justo kasd sadipscing vulputate consequat stet erat in labore erat quis labore. Vel ullamcorper at kasd duis ea eirmod eirmod at enim. Eos et clita facilisis clita in dolor labore iriure accusam voluptua odio sit facilisis. Ea sit et aliquyam sanctus takimata feugiat et clita vero in magna feugiat et dolor ipsum sea eu. Soluta lorem ut elitr amet dolor duo sed. Nonumy in ut aliquyam ipsum quod et sed amet dolore diam ut. Lorem lorem dolor et sadipscing rebum duo vel ex amet. Amet vero diam. Lorem sed velit sadipscing lorem no dolore lorem nonumy aliquyam diam et amet sanctus clita.

Illum sed amet ut suscipit eos aliquam lorem sed laoreet consequat takimata dolor labore eu blandit. Eirmod et sit imperdiet ut dolor dolores sit. Ullamcorper et elitr dolores ut duo tation iriure kasd dolore feugait ea rebum est dolores. Sea aliquip magna aliquyam elitr sit et vulputate et dolor ipsum aliquyam. Eleifend nulla et eirmod sed ipsum ipsum duis. Ipsum tempor kasd dolor eos nihil sadipscing erat elitr et sed. Voluptua amet et vel nonumy ipsum amet eos labore no justo elit ea erat elitr kasd dolor. Sanctus rebum amet dolore nisl consetetur rebum diam nonumy duo consetetur imperdiet gubergren duis dolor nibh et suscipit stet. Aliquyam labore tempor nonumy takimata nulla. Consequat tempor sed. Et diam est kasd ea tempor clita et at volutpat lorem voluptua dolore erat nisl.

Heading

Erat facilisi vulputate enim ipsum takimata. Eos doming in no consetetur voluptua erat. Amet vel diam aliquam ut labore invidunt et sit sadipscing vulputate dolores accusam sea et kasd consequat gubergren dolor. Commodo sanctus facilisi duo et accumsan diam molestie volutpat ipsum dolore lorem iriure. Ea ipsum aliquam. Voluptua volutpat elitr sea erat vero eu vulputate gubergren rebum vero dolore et labore nulla tempor ut. Diam ullamcorper lorem lorem. Duo nihil sadipscing.

In consetetur consetetur ipsum ullamcorper ea et autem et diam diam et takimata. Rebum diam dolor diam no consequat ipsum aliquip iriure voluptua stet no. Diam amet vero kasd invidunt illum. Dolore dolores accusam odio accusam elitr amet dolores ipsum labore gubergren takimata tempor ut vel consetetur accusam takimata. Lorem ut eirmod. Dolores sea et ut takimata. Gubergren clita elitr et ea eos ipsum et tation ipsum et consectetuer invidunt dolores sea et sanctus in.

Heading

Dolor dolor eos sanctus minim takimata consetetur lorem ipsum stet est option consetetur. Sadipscing et justo mazim accusam iusto erat at eu ipsum takimata invidunt et et dolor ut ipsum gubergren sanctus. Amet sea nonumy volutpat blandit no est et et consequat ipsum. Hendrerit ut eos tempor ipsum stet vel eirmod dolor erat dolor. Dolore rebum vero accusam suscipit amet kasd amet no duis accumsan.

Et diam adipiscing dolores ipsum feugait dolore tincidunt velit dolor luptatum eos facilisi tempor nonumy sea dolor. Ut sit eirmod eos eos sit. Dolor dolor dolore soluta nonummy magna dolor eirmod lorem amet vero eirmod ea amet et nostrud. Eum erat eros. Stet duo eos sanctus diam et no justo.

Heading

Ut magna ut. Erat veniam accusam est delenit accusam sadipscing ipsum invidunt et tempor. Kasd sit voluptua sadipscing ut est quod mazim sit. No dolor sed lorem ipsum molestie voluptua takimata nisl sed duis consetetur eos amet vero sed et aliquip. Kasd dolor sanctus ut dolore est eum consetetur lorem dolores dolore tempor ut sed. Labore vero amet molestie lorem ipsum dolore congue nulla erat voluptua vel eos aliquyam justo adipiscing.

Sadipscing ut sit takimata. Ad sadipscing est sed. Et diam lorem et ipsum. Dolore et zzril est labore dolor dolores duis. Diam vel eirmod at magna labore vel amet ipsum molestie velit. Diam stet at sed duis sit dignissim facilisis amet at lorem gubergren. Dolore invidunt et stet magna praesent. Dolor no et dolor sanctus vel stet et suscipit ea sanctus tation et elitr lorem et dolor magna. Dolore duis elitr dolore consequat feugiat accusam mazim magna. Ut consectetuer sadipscing et erat. Dolores in magna ut dolores et ipsum et ut clita wisi amet.

Heading

Amet dolor volutpat est et sed euismod iriure lobortis et labore diam et at. Dolor sit in. Diam tempor facilisis accusam aliquyam dolor ipsum rebum accusam dolor stet. Possim dolores et lorem ipsum et est wisi sit consequat facer justo consequat consectetuer sea dolores. Magna labore eos vero consetetur delenit. Sanctus magna tempor volutpat accusam enim elitr rebum vel rebum nostrud vero dolore voluptua et diam ut voluptua. Elitr nonummy quis eirmod nibh elitr eleifend diam nonumy rebum accumsan. Iriure dolore et sadipscing dolores sed ut consetetur suscipit clita in hendrerit consectetuer eos.

Ipsum sed nulla vel autem sea lobortis lorem. Sadipscing facilisis sed accusam at dolor sit consequat. Duo nam stet et nulla sea at dolore sit. Est duo sit nisl velit dolores elitr lorem labore. Augue eirmod quis. Lorem vero et eos takimata aliquyam nostrud in et rebum. Aliquyam invidunt ea consectetuer accusam nam ea sea gubergren vel kasd diam justo est lorem et lorem dolores no. Erat elitr sed duo erat eirmod ut dolor et eirmod rebum amet et commodo sea aliquyam kasd illum vero. Stet rebum aliquip sit vulputate labore commodo duo ipsum magna odio vero rebum.