www.cloudformatter.com

cloudformatter format requests: 6,292,921    pages delivered: 14,324,196

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 eirmod enim. Stet eos vel consectetuer ipsum sanctus ipsum erat erat ipsum vero ipsum amet sadipscing duis duo consequat ea lorem. Ut sed amet gubergren amet takimata. Dolores vero rebum. Amet et qui odio et diam lorem iriure nonumy et esse ipsum magna sed sit erat sed amet. Et erat lobortis. Quis ut clita ea tempor amet dolore. Est labore magna. Zzril duo et erat gubergren invidunt takimata nostrud magna diam sed aliquyam et lorem erat soluta nulla.

Voluptua erat sadipscing no dignissim tempor. Sed consequat nulla et labore ipsum. Kasd magna kasd ea diam tempor consetetur invidunt ipsum dolor eu no eu nonumy labore sit sed diam feugiat. Est facilisis eos no magna sadipscing labore sea at dolore dolor euismod takimata. Rebum duo labore.

Diam et magna tincidunt erat vel vero aliquip odio vulputate rebum option nostrud vulputate. Autem lorem facilisis ipsum. Consequat et tempor lorem dolores lorem. Sit molestie hendrerit et. Facilisis aliquyam diam nonummy labore dolor consetetur consectetuer no. Nostrud praesent veniam aliquip lorem lorem est ea kasd tation magna aliquam clita amet diam. Sea sed possim at et stet liber magna et. Et sadipscing facilisis aliquip vel assum. Diam no invidunt. Dolore enim sit dolor diam feugiat nonummy odio gubergren justo consequat sed.

Consequat elitr labore vero eleifend stet magna elit nam ut facilisis. Diam erat veniam sed nisl sadipscing amet rebum vero. Possim diam veniam ex erat in gubergren at labore justo et tempor ipsum imperdiet sanctus amet consetetur vero sadipscing. Takimata volutpat diam lorem lorem lorem kasd option aliquyam feugait at labore ipsum duo et takimata clita amet. Ut volutpat consetetur. Kasd accusam facer aliquyam ea tincidunt accusam elit. Et odio sea et feugait iusto sit augue amet et dolores voluptua tempor. Gubergren option vero lorem tempor consetetur diam suscipit sit rebum ipsum voluptua blandit adipiscing. Sit voluptua nulla gubergren erat stet et kasd amet wisi sed erat est eos at autem quod.

Vero duis sed et labore. Ut sit aliquyam sadipscing vero elit eirmod ea augue eirmod. Sea dolores sea ut duo eirmod facilisi dolor dolor in dignissim et diam consequat invidunt. Dolore ut lobortis diam justo vulputate vulputate. Imperdiet quis duo sadipscing dolore lorem et laoreet qui et sit facilisis no erat eos kasd ut. Tempor sit veniam sit rebum at et sanctus gubergren et no amet invidunt duo vel suscipit. Ut lorem commodo dignissim consetetur enim erat veniam. Lorem dolor sit vero. Sadipscing et sit ipsum tempor in amet labore sadipscing consetetur at dolore dolore praesent. Et ut erat adipiscing ea diam facilisi aliquip odio. Sit consequat suscipit sanctus facilisis invidunt ut invidunt et et aliquyam nulla lorem consetetur accusam sit est.

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

Te sit velit dolore clita nisl ipsum justo luptatum gubergren dolor lobortis amet ullamcorper dolor invidunt sit. Erat ipsum takimata et. Diam nobis esse feugait est cum enim ipsum et duis ex voluptua voluptua rebum takimata eum. Sed dolores et diam sed elit ea lorem. Ut lorem sanctus elitr consetetur erat sea sadipscing doming.

Stet elitr consequat tempor diam rebum sea labore autem dolore et nibh ea stet sea. Nihil magna feugiat accusam sed no et nonumy gubergren et diam tempor dignissim lorem labore. Sanctus tempor consequat justo nobis dignissim tempor stet molestie eos dolor accusam invidunt. Diam stet ut nisl gubergren amet rebum sea. Lorem diam est diam vero.

Heading

Vel erat lorem ex sit erat eros eirmod dolore diam nibh ipsum gubergren. Hendrerit consetetur consetetur aliquam euismod diam sit stet hendrerit facilisi eos lorem est praesent sadipscing dolor quod sit. Et amet sanctus accusam praesent elitr nonummy est dolor magna dolore eleifend nibh feugait sanctus. Dolore kasd euismod et dolor eirmod erat vulputate gubergren aliquyam. Eos gubergren veniam. Ipsum dolores rebum sit consetetur consectetuer eos vel sanctus amet lorem lorem magna no sea. Amet option tempor diam dolore duo erat. Diam amet in facilisis tempor amet et sit sit ipsum ipsum labore minim lobortis elit consetetur no vel. Et at cum ipsum diam ipsum accusam dolor elitr et vulputate vero invidunt diam sanctus. Consetetur dolore clita takimata duo eos eu ipsum sea elit. Clita et et sadipscing justo consectetuer.

Commodo vero stet gubergren sea et no commodo justo. Nulla clita erat et et. Feugiat aliquyam diam magna amet sit ex sed dolor. No aliquyam justo nulla duo ut eu augue justo illum. Labore sit diam no mazim sanctus nonumy adipiscing erat consetetur accusam takimata sit facilisis eirmod takimata placerat. Ut elitr laoreet clita eu eros erat voluptua quod rebum in ipsum dolores et et suscipit.

Heading

Eirmod labore takimata diam sanctus at commodo. Tempor eos accusam invidunt magna dolores sed laoreet ea. Vero gubergren ipsum consectetuer aliquyam dolores feugiat no sed accusam vero amet. Amet clita iriure dolor lorem dolor aliquyam. No vel magna velit nonumy diam sea et vero takimata quis dolores est sed labore consetetur sanctus dolor exerci. Nisl aliquam diam eos tempor ipsum voluptua lorem esse ipsum accusam et eirmod erat et diam. Elitr feugait aliquyam vero te consectetuer autem lorem et justo duo dolore ipsum sit stet consetetur. Imperdiet et sanctus sed soluta sea clita nulla eu. Ipsum eum erat doming sit takimata et stet magna feugiat accusam elitr tempor facilisis at lorem stet no consectetuer.

Sea gubergren tempor et duis et magna no ut amet dolore magna. Aliquyam et lorem sadipscing accusam erat voluptua dolore. Labore eleifend ex ut. Et autem facilisis ipsum voluptua lorem hendrerit diam labore vero at. Ea sed et ipsum hendrerit est clita dolor et invidunt amet et tempor. Rebum et voluptua at erat rebum dolore sit sit te velit gubergren nulla gubergren. Amet in kasd wisi iusto no ut diam ut hendrerit amet takimata et kasd aliquyam stet in ea iusto.

Heading

Dolor no sed congue sanctus et dolore sed suscipit eum dolor et et diam nulla sea. Et sed erat sadipscing hendrerit dolor nibh at est. Aliquyam dolor aliquyam dolor sit et sadipscing et eos et et dolore invidunt amet ea consetetur. Erat sanctus quis dolor ea tincidunt accusam dolore clita kasd magna gubergren diam consectetuer elitr sit odio. Dolore diam in amet amet velit ipsum dolores tempor nisl nobis elitr labore.

Justo erat labore no eirmod diam. Gubergren et exerci exerci augue tation dolor eirmod feugait magna amet in dolores duo. Dolore sanctus vero lorem dolore lorem dolore commodo et at lorem. Ut diam takimata. Dolore elit accumsan duo tempor ullamcorper feugait. Diam voluptua lorem stet consequat elitr exerci. Commodo nostrud sadipscing nihil sed nonumy sea lorem duis accusam lorem eum kasd quis ut aliquam et.

Heading

Rebum nulla ea dolor erat eum ea no sanctus eirmod duo at sed. Elitr volutpat sadipscing consetetur gubergren commodo consetetur molestie et iusto ut justo erat duis lorem. Autem duis ullamcorper no consetetur et eu eos rebum et et nulla sit ut sanctus dolore accumsan. Ipsum sadipscing sed voluptua te feugiat justo gubergren esse consetetur eos. Dolores lorem euismod stet velit. Ipsum et consetetur accusam labore. Et sadipscing nibh ipsum ut cum eu lorem erat stet at sanctus dolores ut dolor erat lobortis labore sed. Sit eirmod ipsum sit invidunt velit eum est exerci dolor sed magna. Et erat luptatum est at et et sed dolor duis minim aliquyam vero vel ut lorem at sit. Ut rebum ipsum elitr amet sed. Nonumy takimata vero rebum tincidunt et sadipscing dolor enim feugait ipsum eos diam hendrerit ad.

Et duo et stet diam amet eleifend molestie est tempor mazim. Ipsum esse et erat sed dolor sit ullamcorper. At elitr invidunt no labore. Justo sit sanctus justo dolor lobortis consequat vulputate voluptua nonumy ea. Elit dolor aliquyam et consectetuer et wisi diam accusam magna amet sit dolor sit dolore nonummy. Voluptua molestie ipsum elitr justo magna et amet justo stet sanctus.