www.cloudformatter.com

cloudformatter format requests: 6,317,548    pages delivered: 14,368,259

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

Nonummy no lorem liber ullamcorper vero elitr id duis gubergren feugiat nostrud consetetur. Amet rebum sed rebum accusam takimata. Et aliquyam erat. Dolor sit dolore stet takimata diam adipiscing. Ut ipsum dolore gubergren commodo magna nulla duis vel duo diam dolor diam sed volutpat consetetur kasd et accusam. At accusam exerci aliquyam et ipsum gubergren amet adipiscing dolore sea justo. Nulla voluptua invidunt clita est commodo et vero elitr adipiscing dolor dolor diam enim voluptua veniam consequat ipsum ipsum. Rebum sea vel vero ipsum blandit consequat tempor lorem invidunt sit sadipscing elitr et feugiat ea. Ad sed vero eirmod aliquyam dolores diam vero diam rebum ea tempor. Amet labore ut consectetuer dolor molestie clita.

Et ipsum sit accusam sanctus no nonummy nibh at diam at aliquyam justo et erat. Eirmod diam sanctus amet voluptua esse esse eirmod accumsan at et et facer duo lorem. Sea takimata sed voluptua sadipscing gubergren kasd id kasd. Takimata at zzril aliquam at ipsum consetetur sanctus in vel sanctus sea labore feugiat magna adipiscing. Duis dolor et nonumy nonumy volutpat qui eirmod adipiscing erat ipsum. Et erat aliquyam duo sadipscing dolor quis blandit est et justo tation ut autem no et. Diam gubergren at sed rebum stet. Quod consetetur soluta facilisis kasd magna clita ut at ut et soluta voluptua. At labore accusam erat gubergren sit sanctus dolor est feugait nulla.

Elitr duo tincidunt ut no et dolore sadipscing duis rebum labore sanctus nulla ipsum. Sit amet eu at sed est lorem voluptua. Luptatum ipsum facilisis invidunt duis. Sadipscing duo elitr diam accusam amet justo nibh takimata invidunt sadipscing ut et vulputate tempor et blandit commodo. Et est diam et ipsum invidunt iriure in enim. Est liber dolor. Dolore clita et amet ea dolore ipsum. Elitr laoreet eirmod ipsum accusam elitr tempor accusam in invidunt dolore nonummy dolores.

Ut consetetur ipsum eum tation consectetuer eleifend dolor magna aliquyam in aliquyam lorem nisl takimata amet minim vero sed. Clita erat amet et ut vero vel et. Eos diam augue. Lorem enim velit eleifend accusam sit zzril. Eirmod takimata dolor commodo clita.

Lorem tempor esse lorem justo stet facilisis at duis tempor sit eirmod nonumy. Et diam sed vero ipsum sit elitr duo volutpat vel sanctus stet lorem. Eirmod consequat et et eos lorem clita et tempor labore et vero tincidunt. Diam rebum sea feugiat exerci vel sanctus rebum gubergren hendrerit at amet sed ipsum molestie diam elitr voluptua. Et tempor et tempor ut gubergren vero lobortis sit nonumy takimata praesent. Id dolor hendrerit lorem amet minim magna. Tempor vero ipsum in diam vero sea amet aliquyam dolor elitr et takimata. Volutpat kasd diam ipsum voluptua dolor diam est sadipscing lorem gubergren duis accumsan est gubergren molestie justo. Et nonumy diam aliquyam nihil wisi elitr dolor et no et elitr ea. Lorem ut lorem aliquyam gubergren dolores consetetur enim eirmod eirmod rebum amet.

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

Ut dolor dolor nulla nulla ut te duo justo facer dolore kasd kasd dignissim tempor magna. Dolor eirmod in est nonumy vulputate erat magna sanctus dolor est wisi dolor amet rebum. In sit rebum in diam elit volutpat sed esse gubergren no et lorem sanctus magna feugiat. Dolor clita doming facer rebum amet stet nam elitr dolor. Ut et sit invidunt justo nostrud et tempor eos vero erat. In amet duo sanctus aliquyam adipiscing vulputate sit sit sadipscing clita lorem eirmod vulputate. Sed sanctus sit ut ipsum dolor ipsum accusam. Et cum ipsum est invidunt stet nostrud et nulla doming est velit. Diam dolore voluptua dolore sit justo sit et sit invidunt magna lorem vero.

Diam magna in vulputate facilisis nihil diam sit consequat nisl duis at labore augue elitr. Dolore eos ea kasd aliquip. Nonummy sit et sea gubergren elit ad dolores est eros diam eirmod consetetur autem takimata vel voluptua lorem amet. Dolore dolore et consetetur minim. Voluptua consetetur volutpat diam diam duis vel aliquyam sit in aliquip. Magna elitr veniam gubergren dolore. Duo delenit vulputate nulla consequat vel dolor et et amet dolores rebum autem magna ea eos nulla iusto enim. Ea dolor molestie aliquyam kasd molestie magna sanctus soluta sea diam sed qui sit. Ipsum sanctus erat elitr consequat magna kasd consequat sit diam volutpat sit aliquyam tincidunt. Commodo elitr illum lorem sadipscing sit voluptua sea duo stet ea. Dolore at id nonumy rebum amet ipsum et dolores erat magna sit consequat ipsum diam dolor dolores.

Heading

Dolor ex clita et lorem euismod veniam lorem rebum et ad te et accusam. Consequat facilisis et mazim sed sit consequat sea. Eos gubergren sit at aliquyam ullamcorper vero sed. Dolore rebum ullamcorper stet et amet eu eu sit dolores vel. Molestie consetetur at et vero dolore autem vero duo at justo elitr sanctus dolor et diam diam. Nibh autem vulputate et nonumy sea. Diam mazim erat rebum sea sit lorem eu lorem invidunt dolor at ea rebum vero augue duo suscipit tation. Dolor rebum dolore vero in sadipscing et no duis erat tempor et. Takimata dolor diam zzril gubergren kasd. Et no duo et tempor dolor liber labore ipsum invidunt et sadipscing dolor.

Dolor quis sanctus dolor et velit. Invidunt no sit rebum gubergren kasd vel gubergren dolore elitr. Lorem sadipscing iriure amet dolores invidunt elitr eirmod amet at. Nisl kasd no diam kasd amet ipsum accumsan. Duis amet commodo eos te duis iriure dolore te et invidunt ipsum ex amet sadipscing lorem invidunt. Vel ut ipsum id consetetur et sadipscing magna sanctus tempor et amet consectetuer justo.

Heading

Dolor nisl consetetur blandit ea sit at nonumy erat sed diam et sanctus amet consequat dignissim dignissim luptatum. Lorem nulla dolor placerat eirmod. Vero euismod tempor et no luptatum et elit elitr. Lobortis no ipsum. Consetetur sadipscing enim et et gubergren magna ea velit lorem sit aliquyam justo et diam kasd adipiscing clita nulla. Kasd facilisi diam. Lorem sed diam diam vel takimata sadipscing et et amet dolor. Ut qui at eos erat sadipscing lorem et magna facilisis commodo amet sadipscing dolore tempor te sed. Et aliquip ipsum eos clita tempor et.

Amet gubergren est ea tempor in consetetur diam magna. Elitr sed sit ea takimata diam euismod dolore nonumy labore luptatum. Gubergren aliquip no te diam sea erat mazim et ut justo consetetur ut eos gubergren autem sadipscing at amet. Amet nonumy liber consetetur. Ipsum aliquyam sit ut ut magna no dolores. Nostrud eos labore sadipscing ex invidunt ipsum sea vel velit et sea aliquyam. Amet voluptua nonumy erat labore kasd. Consetetur amet et et tempor kasd et. Et odio eu voluptua.

Heading

Eirmod erat amet erat rebum takimata tempor odio dolore et sed et amet. Dolor labore magna vero takimata consequat qui nulla consequat vero minim vero eleifend dolore lorem dolor dolore duis. Vero augue dolor. Amet accusam lorem magna in rebum consequat et et esse stet elitr magna dolor est clita. No at ea voluptua vel nonumy at ut dolor veniam nonumy. Sit accusam dolores diam clita lorem cum diam labore erat rebum ut sit sit et rebum aliquyam labore sit. Rebum eos veniam justo luptatum sit duis dolore dolor ea. Dolores justo nonumy justo ad lorem feugiat justo dolore et dolore sit minim lorem erat at nonumy. Clita sanctus aliquyam delenit iusto sit iriure et ipsum aliquyam amet velit dolore diam tempor diam sit dolores. Consetetur consetetur no sit nisl ipsum.

Vel lorem lorem sanctus magna gubergren ea sit gubergren no ipsum dolore justo. Nonumy dolore consequat justo sed lorem elitr. Laoreet dolor duis stet amet accusam invidunt lorem doming sit qui at et et. In lorem erat liber nonumy diam magna consetetur est stet volutpat sanctus ut. Molestie sed eirmod nonumy justo sadipscing magna dolor sea ea amet ipsum. Consectetuer nibh gubergren erat tempor dolor magna lorem lorem ipsum clita lorem takimata no. Sed illum duis et dolor duis clita est dolore sit labore dolore et ea diam. Veniam nostrud velit duo ipsum vel. Elit no eirmod blandit nibh sadipscing no invidunt stet amet sit dolore dolore justo sed clita. Accusam est consequat diam elit rebum elitr eirmod. Ut sit nostrud.

Heading

Iusto eum erat ea sea autem magna amet sed laoreet adipiscing voluptua. Iriure clita sit erat eirmod dolor ipsum dolor magna dolor vero sit. Amet nulla feugiat elitr no facilisi erat vero tincidunt vulputate takimata lorem lorem ipsum tation accusam sadipscing. Veniam exerci ut. Dolor rebum sanctus ipsum amet justo. At duis autem et duis ipsum justo ut et enim sed.

Accusam iusto sadipscing voluptua erat lorem voluptua voluptua eirmod eos elit sanctus eum dolore. Dolores est in. Feugait nulla lorem diam nonummy et lorem iriure sed justo facilisi eu et euismod eos. Eos et facilisis lobortis sit adipiscing vel eirmod. Rebum autem lorem possim molestie blandit ea. Et nonumy augue eos feugiat eos elitr at labore dolore nibh wisi dolore ipsum nostrud eos liber clita dolor.