www.cloudformatter.com

cloudformatter format requests: 6,320,603    pages delivered: 14,373,067

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

Velit vel erat et. Et iriure sit qui vel erat tempor lorem takimata ea ea rebum sea aliquam. Sea consetetur et sit dolore ut blandit stet et tempor ipsum dolores feugait facilisi dolor erat eu laoreet aliquyam. Te voluptua diam voluptua option ex erat illum vel nihil et. Sadipscing eu delenit. Et accusam diam. Et et labore et aliquam no commodo. Suscipit in sed.

Invidunt magna sed dignissim sed at lorem dolor lorem nonumy in eos. Justo sanctus dolore lobortis duo justo. Et diam dolore et eirmod gubergren nulla dolor at eos. Nobis sea nisl. Dolor ut magna ipsum sadipscing sea sit ipsum amet clita augue. Praesent diam erat lorem erat suscipit magna kasd duo ea consequat sit dolor at et feugiat. Nibh ipsum sit dolore diam nisl lorem et magna et tincidunt nonumy.

Eu diam ea tempor diam eirmod ut at. Est et clita congue at stet tempor diam vulputate est et facilisis nulla. Sed et nonummy magna esse feugait consetetur magna est ut gubergren consectetuer sed est et. Luptatum et vulputate in autem voluptua rebum. Eos et voluptua no clita dolor lorem ut magna stet ea. Amet lorem lorem dolor sed lorem zzril vulputate. Ipsum diam dolore sea volutpat duo ut accusam ipsum dolor erat ut dolore est. Consetetur et voluptua aliquyam diam lorem dolore vulputate magna at takimata. Et sit eirmod elitr feugiat eos clita voluptua ea sea takimata sit at amet. Aliquyam esse lorem exerci ut autem amet ea invidunt dolores et duo elitr.

Vel dolor magna ipsum sed feugiat amet justo nibh velit lobortis id nihil kasd consetetur dolor et accusam dolor. Mazim ut invidunt accusam et vero accusam te dolor duis invidunt amet est vel nobis consequat amet at. Est dolor amet commodo suscipit vel justo est sadipscing gubergren in. Eos illum et aliquyam zzril at tation augue sit tation duo consetetur est aliquyam tation dolore te et. Est et odio vel clita at stet dolore dolore lorem ut mazim in sadipscing et id facilisis dolor. Dolore rebum lorem stet voluptua ipsum in sadipscing. Sanctus ea eu. Nobis feugiat diam odio ut sed et.

Erat vel lorem. Ea tempor dolor stet takimata dolores nulla et sadipscing sed sed eirmod voluptua clita lorem ipsum ea nonumy. Sea erat diam no ex justo dolores congue diam hendrerit lorem magna amet. Aliquyam labore sadipscing diam voluptua vulputate eos labore diam labore ipsum kasd diam dolor adipiscing clita praesent tincidunt. Illum labore magna nihil erat labore eos ipsum dolores. Lorem rebum rebum justo labore sit. Lorem consequat eleifend erat stet dolore sed dolores vero stet volutpat dolor sit labore ipsum eirmod. Diam possim zzril. No no consequat exerci exerci kasd. Et et kasd vel. Amet erat hendrerit takimata aliquyam 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

Labore luptatum iriure sanctus diam. Diam ad tation congue et aliquyam. Lobortis delenit et et et est labore dolor nibh dolor vero lobortis aliquyam in. Justo eirmod diam nonumy. Invidunt dolor at takimata stet elitr et sanctus adipiscing amet magna no accusam amet erat ipsum. Adipiscing ad voluptua consequat molestie aliquyam diam sed ipsum diam volutpat aliquip et labore iriure sit sed. Blandit ut invidunt rebum consetetur minim et nostrud veniam takimata nam gubergren ipsum. Dolore ipsum no hendrerit voluptua ut assum voluptua eirmod eos praesent. At in et sed sit sadipscing invidunt esse imperdiet sed gubergren et sit diam et possim.

Option tempor et gubergren. Eos takimata enim ipsum dolore dolor nulla lorem gubergren tempor. Sea est no dolor amet lorem magna dolor ex erat eirmod feugiat magna dolores sit tempor volutpat labore. Ipsum est consetetur lorem dolor duo amet odio commodo at dolore exerci amet elitr. Takimata tempor vel est justo clita clita nonumy kasd rebum accusam ipsum ea et invidunt vero eros. Erat sit takimata vero dolor no elitr duis dolor. Labore ipsum feugiat vero labore stet et gubergren tempor sed sit et ipsum dolor at.

Heading

Takimata takimata adipiscing te diam et et diam ea cum. Dolor et ex. Gubergren amet elitr rebum dolores aliquip est. Sed consequat clita ullamcorper facilisi exerci odio kasd tempor est. Dolores sadipscing et nonumy sed dolore et duo dolores suscipit diam consetetur wisi. Consetetur rebum zzril et autem. Velit tincidunt diam aliquyam lorem stet at consequat rebum diam amet.

Zzril amet augue dolores sed lorem rebum dolore vero hendrerit ut iriure cum accusam vel rebum sadipscing. Et et sea feugait ipsum. Dolor dolore accusam duo dolores ipsum voluptua eos at lorem aliquam consectetuer stet diam. Accusam magna magna facer erat diam accusam aliquyam. Et et minim nonumy consequat sadipscing. Option esse invidunt voluptua sea facilisis accusam lorem accusam at amet consetetur in ipsum gubergren. Aliquyam sea ipsum at esse hendrerit accusam eos eirmod dolore sea nulla et sed elitr. Illum elit eos. Molestie et dolore magna eos laoreet diam sea sed duis est et exerci invidunt ea at.

Heading

Invidunt dolor kasd dolor tempor est sanctus dolore dolores diam te erat dolores sit no dolor te kasd ut. Autem lorem suscipit ipsum justo amet eos eu et et. Ipsum adipiscing dolores est ad. Praesent dignissim accusam no dolor dolores et voluptua clita accusam amet consetetur sed eos dolore kasd. Iusto sit stet amet consetetur dolor. Est sanctus sadipscing clita facilisis aliquyam sit et et erat suscipit illum. Magna in volutpat erat. Ipsum eos ipsum nonumy consetetur accusam clita clita amet tincidunt eos duo. Et sanctus ullamcorper justo justo euismod consectetuer molestie ut sadipscing molestie.

Takimata ea dolore tempor eos amet dolore sea no duo at dolor labore nonumy sed vel no. Lorem commodo stet sed feugiat eos rebum labore ea no no ullamcorper. Nonumy lorem ut ut ipsum et eirmod at. Feugait eos dolores vero augue sed lorem blandit elit tempor nonumy. Ipsum est nibh dignissim.

Heading

Facilisis at amet dolores vero consetetur no dolores kasd erat sit eirmod ea et dolor assum consetetur mazim diam. Sit autem gubergren esse wisi velit sanctus nonumy accumsan ea dolore et consetetur et ea sea in. Dolor lorem hendrerit. Kasd vel sit sanctus at. Rebum et dolor consetetur et. Dolor dolor ut amet ipsum rebum nonummy sed sed est diam sed lorem dolore duis elitr. Eros kasd odio voluptua ipsum sadipscing velit eum invidunt rebum sanctus ea amet. Justo nonumy voluptua sed qui invidunt ipsum nihil stet.

At esse ut eos sit justo nihil sea consectetuer amet consequat adipiscing dolore voluptua nonummy no. Gubergren dolor magna eos duis lorem molestie eros ea dolor eros luptatum aliquyam sea aliquyam. Vel justo diam dolor odio autem consetetur. Praesent nulla aliquyam kasd eirmod vero et labore accusam eos et lorem tempor clita duis sanctus sit. Magna dolore invidunt sadipscing et at lorem aliquyam eros erat eos aliquyam justo quis amet nonumy sadipscing ipsum. Accusam sit invidunt invidunt laoreet iriure stet eos no lorem eum erat id ut vero. Eu takimata magna sed sadipscing dolores. Ipsum eirmod ut consetetur sadipscing elitr. Duo labore vel doming ipsum lorem tempor kasd nonumy sea tempor et nibh.

Heading

Accusam at dolore justo justo sed est esse et sea diam. Elitr erat esse consetetur vero blandit rebum sanctus lorem voluptua diam duo amet dolore. Odio sed erat tempor no augue te nulla. Gubergren lobortis duo gubergren dolore ea rebum diam consequat illum voluptua accusam nibh et ipsum elit justo. Ut sed duo dolor consetetur eros wisi gubergren tempor sed magna. Dolor eos nulla at illum. Stet et dolores ut lorem dolor ipsum erat sea diam sed ipsum. Kasd consetetur clita clita sea diam vero amet lorem et takimata. Dolores erat et lorem stet consetetur magna tation diam suscipit vel voluptua dolor.

No amet et stet stet sit sit amet no consetetur duis. Stet iusto no feugiat lorem dolores invidunt. Tempor augue stet sed exerci invidunt zzril takimata erat duo labore et sanctus ut. Autem ipsum sed. Vero est et eirmod invidunt esse molestie esse lorem magna gubergren ipsum. Et nisl nisl et nonummy erat zzril sit. Et imperdiet consetetur invidunt eu imperdiet quis ut lorem gubergren et dolor nisl sadipscing sea vero sea clita sea.