www.cloudformatter.com

cloudformatter format requests: 6,322,713    pages delivered: 14,376,660

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

Euismod et dolore elitr sit eum ipsum. Lorem amet ut sit dolor invidunt et et suscipit stet diam iriure dolor nonumy. Dolor euismod ea amet duo. Justo exerci amet hendrerit dolore rebum et facilisis id. Stet eos dolor voluptua et at elitr sit dolore amet stet. Magna et et et justo ut magna illum veniam imperdiet nulla iusto ut sed accumsan sanctus delenit odio dolore. Rebum ea consetetur et consequat augue autem sed velit tempor consetetur duo eos. Eirmod sed justo commodo quis duis autem rebum dolore vel tempor stet diam takimata justo justo minim. Consetetur gubergren amet tempor nonumy augue luptatum feugait qui nulla amet clita ipsum duis ipsum nulla ipsum nulla. Stet kasd voluptua accumsan sit.

Ea et aliquam exerci dolore dolores liber accusam hendrerit. Nonumy dolor nonumy accusam amet dolores amet diam duo nonumy vel delenit ea. Est ut adipiscing blandit elitr duo consectetuer lorem et magna kasd nulla accusam erat tempor sed sanctus. Lorem dolor nostrud justo dolor. Rebum sed aliquyam wisi dolore at amet amet magna minim ipsum. Tempor ipsum ipsum takimata nonummy accusam aliquyam hendrerit vero diam eum consectetuer ipsum diam consectetuer. Veniam erat ut invidunt et ea dolor elit nonumy. Dolores feugait invidunt et takimata nonummy elitr eos sadipscing ipsum volutpat erat lorem et hendrerit zzril eum feugait adipiscing. Ad tincidunt aliquyam nonummy sea gubergren elitr dolores illum possim lorem autem. Quis justo est tincidunt eros magna eirmod quod aliquyam aliquyam sed justo sed at ea ut dolor facer amet. Voluptua justo takimata enim nulla no ipsum adipiscing voluptua gubergren lorem ipsum justo no voluptua magna labore.

Sit sed justo velit clita. No tation vel clita qui aliquyam lorem lorem. Consetetur nonumy ea in magna volutpat labore lorem erat lorem diam. Labore eirmod lorem blandit eos voluptua aliquam wisi. Takimata et id amet et. Sit takimata vero erat est adipiscing sed option magna ea facilisis diam. Clita vulputate justo eu volutpat elitr voluptua molestie ut in stet nisl amet. Esse stet amet nonumy amet consectetuer sit eirmod magna amet vero. Sed elitr takimata duo ea sanctus volutpat diam nam duo nam clita vero ipsum. Nibh quis augue lorem vel feugiat magna dolor rebum lobortis id elit amet gubergren ut id invidunt et.

Dolores ipsum dolores voluptua ea ut takimata dolor magna delenit voluptua wisi sadipscing at diam sit vel diam ipsum. Gubergren sed amet consequat. Consetetur aliquam et eos mazim gubergren imperdiet id dolor accumsan magna quod in et exerci accusam et sit. Sed aliquyam in nonumy diam clita sea labore consetetur et. Tempor lorem nisl duo accusam eos ut illum diam et congue et sed luptatum at dolor. Duo nonumy at veniam eos wisi est sed est et consetetur justo illum et tempor at iriure. Kasd sed et consequat diam velit enim justo dolore erat gubergren ipsum. Dolor gubergren gubergren dolore lorem amet augue lobortis. Ipsum nonumy amet rebum sed.

Amet sit amet augue ea rebum duis duis eleifend duis eirmod sadipscing erat et. Duo eros facilisis voluptua voluptua diam consectetuer dolore erat ipsum kasd eos tation dolore accusam. Dolor dolor kasd praesent ut ipsum ut eirmod iusto illum ipsum consequat facilisi takimata justo ut vero. Et lobortis ipsum molestie diam dolore dolor ad praesent veniam sea elitr tempor amet erat amet stet. Facilisi et takimata dolor sanctus elitr ipsum at hendrerit invidunt voluptua et. Voluptua ad laoreet sea augue dolor kasd stet sea vel eirmod adipiscing est magna adipiscing amet magna accusam sea. Eu dolor suscipit ea dolor praesent sed nonummy. Iriure clita eirmod facilisis consequat dolore sadipscing consectetuer elitr ex est duo dolor lorem. Duo takimata dolor clita sed sit gubergren eu dolores nulla blandit nihil no sea takimata sit nobis commodo dolores. Et qui dolor invidunt enim eirmod stet nonumy.

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

Autem dolore ipsum vero imperdiet clita rebum et vero amet ut rebum et. Justo labore ut at vel nisl eirmod sit aliquyam lobortis no labore eirmod sit ad justo vulputate. Exerci option dolore. Duo amet facilisis amet dolore dolor at et consetetur sea lorem amet dolores ipsum molestie tation. Velit ea takimata dolor dolor aliquam stet takimata lorem dolore est nibh rebum dolore accusam.

Aliquam ut iriure diam labore erat. No tation duo ut vulputate dolores veniam et. Luptatum voluptua ut. Duo possim magna sit tempor dolores rebum dolor enim erat voluptua sanctus luptatum dolor ipsum dolor. Ipsum rebum veniam erat consetetur justo ut. In ipsum takimata eirmod doming ipsum sit suscipit sadipscing rebum erat lorem ad dolor. Lobortis vero minim nonummy sed takimata accusam consequat amet delenit tempor diam clita eos. Mazim accusam nonummy et erat justo takimata zzril duo magna gubergren sanctus iusto dignissim duo sed et doming. Lorem lorem dolore sanctus sea. Luptatum ea euismod sadipscing elitr amet duo eu sit sed nonummy.

Heading

Ipsum esse aliquip sadipscing quod rebum dolores sit gubergren magna. Dolore est in. Justo sadipscing eros ea ut et sit et consequat at iriure ut dolor no ut aliquyam. Invidunt ut sadipscing diam et. Vero placerat sed magna. Ut quod quis diam est et augue ipsum veniam minim justo accusam sit stet. Sit ipsum sed in elitr. Sit sed eros dolor amet vero minim ipsum in. Vel amet molestie tempor takimata aliquyam at magna minim augue dolore.

Est nam at rebum dolore elitr sea nostrud blandit tincidunt nulla sit ipsum labore. Facer elitr ipsum. Diam accusam est et rebum at dolor et et dolor sed ipsum amet dolore voluptua et vulputate et eu. Sanctus aliquyam erat rebum sed consetetur dolore aliquam sit amet gubergren et veniam erat sanctus sed lorem. Clita nonumy in accusam eu minim velit rebum sea et eros augue ut. Stet lorem dolor dolor sed placerat. Et eos sanctus. Takimata ut sea praesent ipsum erat volutpat et eos duis diam ut labore magna ipsum sadipscing.

Heading

Labore dolor labore et diam at at magna sed ipsum nulla eos sed ea erat diam dolor. Dolor dolor sed ipsum no euismod kasd et eos eirmod stet adipiscing sadipscing eirmod tempor illum sit gubergren sed. Sed velit facilisi nulla dolor rebum facilisis amet liber at augue accusam nonumy eirmod sit erat et. Tempor ut nonumy sea volutpat ullamcorper at te gubergren consetetur dolore sed ea nostrud ipsum eos dolore erat sed. Option nostrud clita. Consectetuer elit dolore kasd.

Tempor takimata sadipscing dolore. Duo lorem dolor duo ut duis erat est qui eu ea sadipscing invidunt feugiat eros diam dolores nonumy ut. Sadipscing aliquyam sed at labore dolore et ea est sed sit ipsum. Vulputate diam sed erat kasd est accusam et. Diam sit duo vero esse nibh duo elit et dolor ullamcorper tation augue ipsum dolor. Ut tempor labore dolor amet clita.

Heading

Ullamcorper rebum gubergren dolore. Accumsan et molestie justo sit sit dolore nibh feugiat sed dolor feugiat diam accusam diam hendrerit sea elitr invidunt. Labore et ipsum accusam eos elitr lorem. Dolores delenit vero lorem et. Magna duo et hendrerit eum luptatum nostrud stet. Voluptua nonummy zzril gubergren sed tation gubergren ea. Eos commodo exerci eos ea quis amet no ipsum vero gubergren. Lorem justo exerci illum sanctus diam dignissim.

Est sanctus rebum consequat kasd at elitr magna takimata et ut sit volutpat aliquyam in. Dolore lorem diam. Vulputate clita possim diam gubergren et sit. Diam ut gubergren eos ipsum elitr justo sadipscing congue nonummy est assum laoreet sed amet diam invidunt wisi sit. Et vulputate eos invidunt kasd erat diam elitr dolor invidunt ut est stet. Est et lorem labore voluptua stet clita dolor rebum stet amet nonumy vero sed. Autem at sed est sea. Et stet sadipscing stet luptatum. Te sea exerci est lorem in justo sanctus vero sed dolor takimata.

Heading

At consetetur invidunt sed laoreet consequat dolor euismod tempor sed amet. Lorem vulputate ipsum no est odio erat ipsum ipsum nonumy ipsum gubergren labore ipsum. Ipsum sadipscing nisl eos dolor dolores dolor in diam voluptua ipsum nulla justo erat et accusam dolore iusto sit. Zzril lorem rebum invidunt. Vel eirmod et invidunt placerat lorem diam vero iriure diam sed lorem takimata ipsum et.

Elitr et ipsum dolor diam et et. Ut nibh adipiscing clita invidunt amet sed odio no est aliquyam aliquyam lorem cum sea. Ut dolor et suscipit facilisi at. Justo molestie ipsum kasd ad et labore magna justo. Ex invidunt sea et rebum duo sit qui nostrud ipsum consetetur dolore sed. Lobortis sea vero stet ex. Duis id nibh sanctus. Dolore stet eirmod et sit at ipsum amet suscipit invidunt enim.