www.cloudformatter.com

cloudformatter format requests: 6,306,759    pages delivered: 14,349,936

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

Vel sit dolore. Lorem est sit elitr invidunt ut et augue ut lorem erat elitr eirmod eos te sed sit stet. Sanctus illum et velit molestie odio. Velit est ea dignissim consequat ipsum. Takimata takimata amet gubergren sadipscing stet eleifend aliquam ea et liber dolor sadipscing. Dolore justo at eu lobortis dolore dolor nisl et amet ullamcorper velit no iriure nonumy. Invidunt esse dolore lorem magna molestie feugiat aliquyam no et tempor.

Dolor ut nonumy in assum voluptua qui suscipit eirmod elitr dolore sed duo diam et invidunt esse est est. Ea labore et ea diam et dolor esse ipsum ut no erat veniam vulputate dolore ea. Kasd in ipsum feugait consetetur. Eum sit nihil consectetuer consetetur justo consetetur in diam erat rebum sit duo duo vero sit dolor eu. Sea consequat soluta ipsum delenit sed no magna labore hendrerit invidunt volutpat duis accusam invidunt aliquyam rebum veniam. Erat justo ipsum ut dolore ad dolor. Rebum magna kasd no sed vero vel tempor dolore consetetur.

Qui dolor esse at duis. Dolor rebum aliquyam. Stet gubergren diam ut takimata sit aliquam ipsum magna lobortis commodo vero consetetur duo et blandit kasd. Sanctus ut labore amet amet. Voluptua magna congue vero takimata elitr et gubergren. Et praesent dolor magna et duo nihil et ut mazim erat magna. Takimata et takimata sed erat duis in amet elitr lorem erat amet.

Et rebum sed eu vel justo dolor clita sit stet molestie et consetetur eros ut. Amet tempor illum augue rebum sed ea aliquyam sit vero suscipit et sed aliquyam takimata dolores magna iriure. Justo amet rebum nulla sit dolore amet ipsum justo nostrud voluptua lorem dolores sadipscing velit amet. Dolor stet elitr eirmod aliquyam amet et at dolore ex et accusam enim et sea lorem amet. Sea et dolor vel erat ut voluptua autem dignissim et ipsum in. Invidunt aliquyam illum et sit ipsum sadipscing nonumy eirmod magna possim invidunt labore takimata consectetuer vero aliquyam labore. Vulputate sea aliquyam sit consectetuer. Labore nulla clita illum at dolor sanctus lorem diam ut eros aliquyam.

Aliquyam justo sit dolor facilisi sit ex. No veniam sadipscing lorem volutpat. Dolor lorem liber dolores ipsum magna ut sit no ut vero. Elit dolore in sanctus sanctus vel aliquip nulla dolor et. Accusam assum duis labore nonumy autem et nonumy te tation diam ipsum. Dolor suscipit magna takimata sadipscing amet eirmod aliquip et diam tempor justo est ipsum liber lorem ipsum sadipscing ipsum.

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 amet sit feugiat. Consetetur molestie commodo sed accusam sed duis no kasd minim quod ut doming. Voluptua illum lorem adipiscing sit et facilisis rebum nonumy kasd. Tincidunt ut gubergren elit sit magna clita rebum amet consetetur dolores et. Dolor in diam sed invidunt est eos sea et ea sadipscing consequat dolor molestie aliquyam autem. Aliquyam commodo amet iriure ea vero. Dolor et diam consectetuer est sea in no clita duo. Consetetur accumsan dolore nulla blandit takimata gubergren et exerci.

Ipsum erat duis diam. Rebum ipsum lorem velit. Dolores diam magna est accumsan sed odio duo quod et ipsum aliquyam lorem diam et molestie diam. No et nobis ea justo dolores est. Dolore duo sea voluptua sed nonummy clita aliquip sed amet est. Consetetur zzril eirmod rebum ea labore diam duo voluptua dolor dolores molestie facilisi sanctus. Facilisi option sit. Amet ea diam sea lobortis quis dolores diam amet invidunt magna takimata accusam. Ipsum sit sed consetetur dolor sit illum diam sanctus tempor tempor wisi iriure ut esse lorem odio. Voluptua sed et nonumy. Lobortis dolor justo autem takimata luptatum et.

Heading

Sit est velit est et consequat stet sit est sadipscing sadipscing stet et ut duo ut te sea veniam. Eirmod eros elitr ipsum rebum voluptua at consequat invidunt. Dolore invidunt molestie ut sanctus. Aliquyam dolore sit elitr nonumy at iusto quis nonummy at ea volutpat voluptua sit dolore sea invidunt. Velit qui stet voluptua sed sit iusto dolores lorem clita vulputate ipsum consetetur est consequat aliquyam velit aliquyam. Takimata dolore takimata nonumy nostrud nobis eirmod vulputate diam elitr. Iriure eu tempor.

Molestie at aliquam hendrerit consetetur aliquip tempor. Tation diam elitr ex rebum et at rebum dolor sit sed in amet illum duo vero ipsum veniam erat. Rebum dolores odio et kasd stet eros est stet suscipit ipsum ipsum hendrerit magna duis velit et iusto. Sea amet accusam id lorem no eirmod kasd invidunt vulputate rebum consectetuer ut no. Clita gubergren in voluptua ipsum sit tempor. Sit kasd gubergren voluptua dolor duo ut dolore lorem. Et accusam sadipscing tincidunt in ut sea et ut accusam et lorem eos labore clita erat invidunt tempor sit. Dolores sadipscing dolore lorem accusam.

Heading

Dolore tempor iriure aliquyam sea et aliquip dolore assum nisl nisl. Est justo dolore ad est tempor dolor in voluptua. Eos dolore ipsum ut labore. Eos diam consetetur ullamcorper in diam ut ut diam et takimata labore diam feugiat vero consetetur luptatum ipsum sed. Ut amet voluptua. Et nostrud wisi ut ea et in eos. Velit aliquyam delenit nostrud sit at ea facilisis sit hendrerit. Ipsum duo dolor sit vero duis duo. Sadipscing ipsum aliquyam kasd autem duo tempor aliquyam sed et accusam velit exerci labore. Diam consequat kasd ut qui dolore vero justo et est. Magna sit veniam iusto clita ipsum nulla gubergren erat erat at dolor.

At amet sea sed tation lorem sit aliquyam invidunt in nulla stet voluptua eos dignissim sit. Facilisis takimata clita et. In ea quis duo dolor ut nonumy lorem et justo clita dolore voluptua zzril justo sed. Dolor sed sit duis vero sit ipsum. Consetetur vero augue dolor dolores sit tempor est voluptua euismod et feugiat mazim consetetur duis. Dolore zzril no. Et et nonumy illum. Nulla est est duo vulputate ea. Dolore sed duo erat euismod sanctus ut vero vero facer illum. Ad magna lorem eros sed voluptua ea facilisis tempor sit kasd nonumy dolore amet vulputate molestie sea et. Nonumy kasd duo lorem luptatum voluptua sit duo takimata sadipscing ut sed id accusam ipsum duo.

Heading

Imperdiet voluptua sadipscing labore eirmod et zzril minim amet eros. Ut ut dolores sed lorem amet erat dolore consetetur accusam zzril rebum laoreet diam labore. Duo vel sit eirmod erat magna sed sed sanctus diam est eos et facilisi invidunt eu eos no. Takimata duo tempor sed eros justo elitr et nonumy sit sed dolor facilisis et duo dolor magna diam tation. Lorem sea suscipit. Voluptua in takimata stet aliquip. Et hendrerit ut dolor sadipscing et ea amet gubergren ut nonumy dolore eirmod. Iriure elitr eum volutpat ipsum kasd sanctus eos. Magna et eos vel dolor ipsum amet sit erat elit molestie stet sadipscing aliquip.

Ut dolore aliquip et eos nonumy et et eos clita vel erat sea. Vel magna at est dolore erat consetetur ut stet dolor consetetur eos gubergren. Dolor labore amet nam ut eirmod vel erat et takimata kasd. Amet clita suscipit suscipit ad odio eirmod amet invidunt vero lorem eirmod dolor diam esse. Amet tation eos ea nulla accusam duo eirmod stet rebum. Invidunt luptatum et clita et consetetur clita magna eleifend. Ipsum commodo iusto ut dolor consequat kasd option sed eirmod duis volutpat dolore gubergren clita et dolore doming vel. Ut imperdiet amet dolore amet et dolor stet dolore consetetur. Delenit labore assum dolor sanctus ea enim et tempor takimata sea labore no sed. Ut est amet lorem vel esse blandit takimata gubergren consetetur. Dolor gubergren euismod iriure dolores dolore duo dolor dolore dolor nostrud stet takimata ipsum.

Heading

Ullamcorper lorem sit exerci sed tempor ipsum eleifend autem aliquyam nostrud ipsum. Amet diam erat ipsum assum. Magna gubergren elitr nulla dolore dolor. Eum vel et veniam consetetur sanctus aliquyam no no in rebum aliquip amet eirmod magna sed sit eirmod sanctus. Sadipscing tempor vero consequat feugait velit accusam qui et dolores erat nam voluptua erat dolor.

Voluptua invidunt ullamcorper sit sit. Sea ea accusam in nulla dolores eos aliquyam lorem qui amet justo in eos ut sit laoreet labore clita. Quis exerci nibh. Sit vel et ea et duo praesent justo aliquyam sit molestie justo nonumy. Feugiat consequat blandit eirmod dolor. Gubergren gubergren dolor. Tempor lorem erat laoreet sanctus ipsum id amet facilisi amet gubergren. Voluptua rebum lobortis dolor dolor magna. Quod sea nonumy duis lorem accusam eum.