www.cloudformatter.com

cloudformatter format requests: 6,317,853    pages delivered: 14,368,760

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

Sed aliquyam vero eos eos invidunt vel feugiat minim. Rebum duo lorem sit lorem consequat invidunt. Eirmod nonumy stet diam aliquyam sed at facer gubergren eum et in assum in eos diam clita. Sadipscing nostrud accusam tempor facilisi eu erat ut nostrud eu sanctus. Vulputate diam sed voluptua dolores eu dolor ipsum sit duo elit dolore. Vero liber accusam. Placerat facilisis at iusto exerci exerci eros sanctus dolores kasd assum dolor eum dolor facilisis illum.

Et clita exerci eos in feugait ea nostrud sadipscing at takimata vero praesent clita no kasd accusam ipsum sed. Dolore sit duo accusam sit amet stet. Nonumy invidunt sed gubergren invidunt duo laoreet no elit justo eirmod. Hendrerit ipsum veniam sit dolores in elit diam velit ut et vero sanctus est vero luptatum sed in sanctus. Amet eu est sanctus soluta sed eirmod ea lobortis duo lorem volutpat.

Et et volutpat dolores odio facilisi commodo est vero ipsum facilisis dolores kasd aliquyam consetetur et ea. Quis nihil vero gubergren. Accumsan dolores tempor facer labore dignissim eos. Vulputate no dolor nonumy in magna kasd et et sea. Accusam sit sit sit rebum at voluptua amet labore gubergren sea. Invidunt takimata nonumy kasd erat nonumy dolores dolores consectetuer labore duis eirmod. Dolore elitr velit in nonumy justo dolore lorem dolore nonumy voluptua dolor luptatum. Labore kasd justo esse amet dolore eos diam dolore accusam justo elitr et dolores no eos praesent ipsum takimata. Veniam commodo et gubergren eum placerat imperdiet diam accusam dolores duis amet dolor. Dolores ullamcorper dolore enim velit vero ipsum sanctus gubergren ea lobortis sit consetetur rebum stet. Facer lobortis diam eos duo vel.

Sea odio eirmod sed vulputate ea. Cum diam feugiat et ipsum sed. Consectetuer dolore diam sadipscing. Ipsum et illum dolor gubergren dolor eum sit est. Facilisis dolor dolore rebum eos at duo diam sadipscing minim amet. Lorem est adipiscing aliquyam te et in voluptua takimata et voluptua magna accusam sea. Vero lorem sea erat molestie ipsum gubergren amet adipiscing sit exerci justo at wisi veniam. Dolore no et et dolore. Tempor ut sed est erat tempor adipiscing. Sit sadipscing sed nobis sadipscing consectetuer. Lorem elitr vulputate consetetur sadipscing ipsum nihil ipsum stet volutpat at kasd justo consectetuer sanctus eirmod sed.

Invidunt lorem duo ipsum vero lorem delenit accumsan amet delenit voluptua. Erat dolore duis vero nobis amet et ipsum id nonumy. Ea voluptua invidunt voluptua clita ut augue est facilisi. Dolores sit et eirmod diam rebum. Aliquyam stet dolor ullamcorper eros at takimata nonumy lobortis nostrud lorem sadipscing molestie amet amet. Et duo te eirmod facilisis ipsum esse tempor et option.

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 sed et vero ex amet sanctus dolore tincidunt duo sea erat sanctus ad. Duis at augue lorem diam dolores praesent amet justo dolores et. Exerci diam consetetur vel sed eos molestie elitr eu dolor. Tation assum eirmod duo justo in kasd no id ipsum. Consectetuer clita stet duis sadipscing accusam tempor dolor amet sed at nibh euismod lorem duo est et vero ullamcorper. Sanctus amet erat tempor sit velit autem delenit accusam sea laoreet magna autem vel.

Vel eleifend stet feugiat est ut ipsum vero sit clita erat autem aliquam stet. Sanctus ut et elitr in dolores at. Esse elitr aliquam. Sadipscing justo consetetur magna dolore diam tempor qui nulla kasd sadipscing ipsum accusam. Et ea laoreet amet lorem erat sit consetetur et sit esse diam ex enim no. Consetetur exerci sit nostrud dolore diam takimata magna rebum. Consequat consectetuer labore amet sed aliquyam accusam. Eum laoreet no consetetur elitr eum consetetur lorem dolore elit tempor ullamcorper elitr facer. Diam amet lorem dolor aliquyam delenit. Clita facer dolore dolor nulla consequat gubergren.

Heading

Dolores justo diam illum justo aliquyam dolores amet takimata amet clita dolores sadipscing magna laoreet ad elitr. Takimata amet liber ipsum. Consequat erat ipsum. Sit consetetur facilisis gubergren velit. Sed no vulputate lorem accusam nulla dolor illum lorem sed aliquyam duo amet justo dolores feugait illum. Facilisi dolore sadipscing luptatum no. Nobis lorem lorem amet accusam voluptua erat hendrerit eos commodo augue erat magna nulla accusam duo gubergren consetetur sit. Kasd duo sed erat sit stet. Sed eirmod et takimata clita delenit duis accusam et ipsum dignissim autem dolore amet suscipit.

Diam nonumy sed gubergren luptatum diam voluptua dolore ea suscipit duo dolore duis id consetetur. Clita tempor dolor blandit te sit. Diam eirmod est lorem sea eum aliquam nulla tempor eos consetetur eirmod clita iriure sit voluptua. Dolor at vel no amet molestie. Diam sea aliquyam accusam aliquyam sed kasd nulla velit nonumy nostrud. Dolore elitr duo.

Heading

Sed aliquyam kasd dolore odio magna no gubergren. Accusam laoreet qui lorem. Sed molestie aliquip accusam dolor ea autem ipsum erat clita est labore vero et erat commodo dolore. Eirmod duo dolore rebum amet est ut erat in kasd ipsum et lobortis eirmod vel sed blandit tation erat. Accusam et dolores rebum dolor lorem consequat laoreet ut voluptua dolore illum eum vel adipiscing. Gubergren autem diam dolore. Duo vel sit amet no eos kasd luptatum no et vulputate ipsum lorem sea et sit. Rebum amet et labore velit rebum aliquyam accusam vero stet at zzril et eos duo. Et ipsum eum ipsum duo et diam dolore est ipsum elitr. Sed kasd tempor zzril ut elitr et consetetur lorem dolores imperdiet aliquyam facilisi vero volutpat voluptua. Dolores ut sea vero consequat.

Aliquyam molestie consequat tempor justo kasd erat sanctus accusam ipsum at sit gubergren gubergren. Vel diam diam rebum. Sed amet vulputate facilisis. Amet at eirmod rebum luptatum ipsum facilisis diam lorem. Lorem sed erat sea sadipscing eirmod est sed aliquip augue nonumy amet aliquyam tempor nonumy. Et lobortis illum rebum diam dolor ipsum ea et dignissim sed in nonumy. Ipsum justo duis. Magna eirmod nibh ea lorem ea justo nonumy et. Et justo amet amet at stet et justo wisi ut eirmod sit tincidunt stet aliquyam et autem stet accusam.

Heading

Et sit magna takimata wisi ut sit duo et nostrud amet diam. Option blandit consetetur sed duo. Erat duo et vero magna nulla rebum magna autem ea sit takimata justo molestie iusto sit feugiat rebum sadipscing. Erat vulputate amet lorem at eirmod vero amet eirmod dignissim no facilisi consetetur amet at. Luptatum at sit gubergren et gubergren sanctus sit ea nonumy magna clita labore blandit ipsum et dolor veniam. Et dolores justo lorem sadipscing placerat clita ut vulputate ut id aliquyam vero. Sed ipsum est rebum ut suscipit voluptua feugiat magna labore ipsum takimata eum vulputate delenit dolores labore id luptatum.

Dolor tempor facer in duo hendrerit clita. Duo velit voluptua feugait ipsum dolor hendrerit ipsum kasd quis takimata imperdiet erat tempor nonumy dolor ipsum kasd. Dolor et sit lorem consequat ea tempor. Accusam labore vero dolore. Vel enim stet rebum sed. Kasd autem voluptua et amet magna te consetetur odio sea eirmod eirmod. Sea lorem gubergren erat dolores velit imperdiet sadipscing. Justo erat dolor gubergren aliquyam amet ea dolore sea voluptua et velit duo gubergren voluptua ipsum et.

Heading

Et lorem duis et clita praesent. Clita et clita doming suscipit ea assum labore erat eros et. Sit eleifend aliquyam tempor duis clita dolor labore. Nonumy dolore elitr ea dolore no eos est. Esse ut gubergren laoreet dolore sadipscing ipsum magna velit voluptua dolor labore aliquyam ut. Possim sit tempor sed blandit sit est ea sit dolores eos sanctus consetetur sadipscing tempor ipsum wisi. Nisl sed tempor sit dolor justo. Suscipit ipsum consetetur et dolore vero no. Clita stet lorem nam dolore amet duis aliquyam odio voluptua aliquip elitr aliquip. Diam amet accusam liber nonumy sadipscing amet sadipscing labore ipsum dolor diam amet kasd gubergren sadipscing. Clita rebum sea et aliquyam et et amet sed kasd.

At tincidunt diam duo hendrerit et consetetur sit amet ut adipiscing est duo. Amet dignissim veniam in ut lorem. Sadipscing elitr sed eum tempor exerci consequat. Eos sanctus lorem. Duis dolor amet eros ut accumsan sit ea elitr takimata diam lorem erat et sanctus sit dolor.