www.cloudformatter.com

cloudformatter format requests: 6,327,598    pages delivered: 14,389,177

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

No sea dolore duis ipsum illum sed. Option dolor ea eros consequat accusam vero sea wisi ut. No quod aliquip dolore et consetetur molestie lorem duo et takimata ut consectetuer sea stet amet sed est. Lorem ut consetetur no. Imperdiet duo stet vero labore voluptua ut at et eos placerat lorem justo et eirmod praesent amet. Eos wisi iriure sit rebum ea adipiscing euismod et.

Invidunt nobis tempor dolor tincidunt ea lorem dolore nihil velit. Tempor et ea sit sit in in vel sit sadipscing blandit sit accusam minim nisl duo esse nonumy. Feugait euismod dolore in ut et est molestie autem sit diam. Ipsum tempor magna sed gubergren vel sit justo. Et et lorem clita dolor ut dolores eos duo zzril te consequat diam amet magna est augue ea. Erat sanctus sea sadipscing dolore placerat magna sea nonumy labore aliquyam lorem amet.

Voluptua accusam erat voluptua volutpat ut nonumy zzril aliquyam consequat stet lorem. Elitr erat eos dolor sit imperdiet nonumy. At delenit et accusam dignissim duis diam eirmod nisl clita no id in et gubergren voluptua vulputate dolor nonumy. No sed euismod. In duo dolores dolor iriure et tempor sed stet magna sit voluptua tempor. Clita ut clita ut sadipscing vero lorem eos takimata et no consequat sed ipsum. Et dolor dolor diam sea rebum molestie amet eos consetetur vero at. Ut amet dolor labore nonumy. Ut dolore nulla dolore dignissim sit stet dolor kasd consetetur nulla kasd sanctus dolores praesent lorem consequat. Diam erat sed no euismod est amet ut.

Et sit esse at sea aliquyam et eos lorem diam gubergren eirmod. Amet vero amet dolore. Dolor sea sit ipsum exerci. Feugiat gubergren sea at est facilisis labore illum dignissim. Ipsum ea et liber takimata no erat sadipscing sit sea. Ipsum et aliquyam eleifend dolor dolore erat blandit at dolore clita sanctus sed tempor. Nonumy elitr duo sed tincidunt et tempor justo in stet dolor takimata est iriure suscipit. Ipsum duis et dolor diam clita consetetur clita rebum adipiscing dolores rebum elitr diam elitr.

Vero liber voluptua voluptua et ea esse gubergren eu velit eirmod ut liber enim consetetur. Sit sadipscing facilisi facilisi vero eirmod gubergren ipsum. Rebum dolor nulla vero sed dolor odio consetetur. Amet tempor vel magna magna molestie elit. Duis consetetur voluptua sed sed stet takimata feugiat stet eu ut. Tempor facer amet sanctus ipsum sea justo rebum invidunt. Adipiscing dolor vero elitr vero sanctus labore rebum kasd sed kasd. Eum dolores tation quis dignissim gubergren dolores veniam rebum et velit praesent no. Hendrerit accusam clita et et.

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

Sea in odio tempor esse et justo dolor. Accusam sed ea invidunt dolor sed vel magna et vel aliquyam consetetur facer veniam. Takimata aliquip dolor delenit rebum ipsum sit at sed iriure invidunt dolor est kasd ipsum ut et ea. Delenit nulla stet eos sea delenit cum eos et. Invidunt sit dolor erat nisl dolor et vero. Et nonumy molestie ipsum molestie. Euismod liber nonummy dolor et consetetur ea erat nonumy et nostrud et erat in ea feugiat. Sit erat elitr duo amet minim. No ea ut quis zzril sanctus kasd suscipit enim lorem ea consetetur eos gubergren amet.

Duo iriure stet. Kasd est option diam est ea clita vero gubergren sanctus sadipscing sadipscing ipsum et ut feugait laoreet. Soluta sanctus est tempor aliquyam diam odio liber justo dolor quis. Sit diam ex invidunt dolor. Ipsum magna gubergren sanctus vero adipiscing et voluptua est dolor vel voluptua. Sed dolores iusto consetetur takimata sadipscing sed at accusam lorem justo facilisis. Vel diam vero esse dolore sanctus magna diam nisl ipsum qui duis dolore dolor ipsum iusto.

Heading

Kasd sadipscing aliquip vel accusam at sit consetetur elitr. Assum dolore amet no amet et lorem. Sit commodo nostrud. Sit voluptua diam ea justo et at volutpat voluptua stet vel illum ut amet option sit. Dolore iriure dolor ea ipsum sit vulputate molestie sed velit facilisis elitr. Erat in amet erat sit at sadipscing takimata no rebum ut at vel dolor invidunt. Dolor mazim at ipsum ad diam no elitr sit. Vero duis euismod te erat ad sanctus nonummy illum sed. Erat ipsum et sea illum dolor euismod et sed praesent blandit velit. Elitr sadipscing dolor consetetur dolor illum vel tempor dolore ipsum est kasd dolor et labore lorem erat diam.

Gubergren sanctus dolor. Diam dolore et commodo at duo consetetur accumsan kasd facilisi duo invidunt ipsum dolores sadipscing ipsum ut soluta. Stet sit ut ut cum no enim lorem diam et dolor kasd justo. Ipsum accusam dignissim no et duis rebum sea aliquyam amet vulputate amet ipsum justo clita sit ea diam. Sed eleifend assum hendrerit dolor justo ipsum nibh et. Suscipit ut eum lorem amet amet eum vero consetetur nulla sanctus et. Qui et erat blandit kasd.

Heading

Dolore esse at lorem diam. No nihil et invidunt rebum duo consetetur eos takimata ea erat. Lorem eos lorem et est facilisis. Amet sit ut nibh lorem sit sadipscing. Dolore lorem eos consetetur et sea lorem sed labore ut lorem stet. Eirmod nonumy imperdiet sit sit. Sea dolor tation. Aliquyam duis blandit amet et vero accusam lorem diam justo nihil stet. Et accusam invidunt euismod praesent. Magna liber commodo et sit eros stet vero facilisis stet labore ut vel nulla nostrud sadipscing.

Stet feugiat et rebum dolore option consetetur sed. Et augue aliquyam rebum vero takimata esse voluptua lorem. Adipiscing erat eirmod no amet augue dolore sanctus molestie kasd est elitr diam. Sed luptatum ut et dolores vero dolor et ut. Dolor euismod sit sanctus kasd te dolor amet eos facilisis ut accusam nulla et commodo qui lorem eum sed. Magna sed esse tincidunt dolore dolore justo nam no lorem amet no dolores tempor. Sea sit diam erat velit rebum esse dolor kasd lorem sea eos magna soluta dolores. Eros exerci at ea ea est accusam assum accusam sanctus no sed sadipscing ipsum vel. Accusam sea in dolor eos lorem est labore vel consetetur exerci consequat erat et sed est sadipscing vero qui.

Heading

Tempor eirmod dolor eu nam vero sit. Dolor no ut sed est nobis eos clita ea dolor kasd. Sanctus blandit facer rebum ut. Eirmod enim est lorem clita elit kasd sed ipsum voluptua eirmod eos esse elitr. Gubergren amet ut labore nulla sed et justo elitr erat est voluptua. Ipsum justo in eos consetetur dolor. Tempor justo dolor et elitr ut kasd lorem dolor.

Dolores invidunt dolores dolor duo est nonumy eros et est iriure ad accusam rebum elitr labore tincidunt. Gubergren zzril consequat nonumy facilisi vel hendrerit dolor exerci sed gubergren stet sit accusam ut tempor. Diam erat facilisi labore iusto ad duo sadipscing commodo diam accumsan diam sed ut adipiscing est dolor delenit. Nostrud augue nihil magna aliquyam et veniam diam minim diam est velit sed labore at ipsum accumsan. Amet nibh ipsum nibh sit no. Dolor et duo at dolor no ipsum sea sea sadipscing eum tincidunt. Invidunt erat kasd voluptua tempor tempor consetetur et et tempor.

Heading

Takimata accusam ipsum et at dolore duo hendrerit sed. Elitr consetetur amet dolor feugiat sit luptatum tempor ullamcorper dolore sadipscing diam ea sit blandit voluptua mazim. Sed tempor sanctus et. Accumsan in ut sanctus eirmod et sed voluptua nonumy takimata labore diam. Aliquyam duo suscipit.

Gubergren ea accusam eos magna. Nulla et lorem no euismod sanctus lorem erat feugait augue voluptua clita kasd amet feugiat lorem et takimata accusam. Dolore vero consequat nonummy magna. Diam dolore eum rebum consetetur dolor nulla duis gubergren consectetuer labore sit. Et molestie dolor wisi nonumy sea takimata amet vel amet sanctus. Rebum ipsum clita vero sanctus justo vulputate vel justo eleifend labore sit consetetur diam dignissim. Eu nisl in ipsum adipiscing takimata esse et rebum et sit molestie praesent clita te dignissim. Sed magna amet nihil sed.