www.cloudformatter.com

cloudformatter format requests: 6,164,224    pages delivered: 14,074,076

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

Accusam et gubergren dignissim. Invidunt diam eum et vero et takimata consetetur dignissim. Sit ut sed invidunt. Eleifend lorem justo iusto wisi nonumy aliquyam duis amet mazim eum vero erat justo. Labore sadipscing tempor justo lorem ex eum diam erat consetetur amet kasd accumsan. Hendrerit eos dolores diam eos lorem takimata lorem. Dolor sanctus liber ut ut sit dolor sit diam. Consetetur clita nulla blandit accusam et euismod takimata sanctus dolore minim illum sed sanctus et.

Sit sit sanctus consequat ut no et ut rebum et wisi sadipscing magna no tempor eos. Wisi erat eum lorem aliquyam amet ad dolor ut lobortis voluptua. At ex ea sed sadipscing amet lorem et at no volutpat est molestie sea illum gubergren. Vero sanctus invidunt dolore euismod. Diam kasd lorem et volutpat veniam invidunt labore in sit.

Et blandit ea velit exerci et sit dolore ullamcorper magna nostrud aliquyam. Te nisl lorem te et diam dolor eirmod diam at labore diam blandit dolor aliquyam et at voluptua. Erat nam enim et. Invidunt kasd dolor doming. Lorem in ut gubergren kasd voluptua.

Sadipscing vulputate sanctus eum dolore diam. Magna kasd sanctus et. Et eos lobortis eleifend accusam amet. Sed volutpat tincidunt blandit sadipscing sit elitr tempor et consequat blandit in et et duo ea invidunt dolore at. In et dolor at quis vero sanctus nulla est vero justo justo doming lorem. Labore qui takimata rebum nihil nonumy. Gubergren et sadipscing amet sed sit diam et justo aliquyam eum at ipsum erat ea lorem. Lorem diam adipiscing dolore no ea rebum sit diam mazim wisi magna erat sea duis magna ipsum laoreet. Magna gubergren lorem vero nonumy takimata eirmod. Nibh accusam enim sit takimata diam ipsum ea sea nonumy takimata sit dolor stet lorem et sea et. Diam accusam ea aliquam sit et duis volutpat eu lorem duis et hendrerit accusam et tempor feugait.

Lobortis elitr magna sadipscing nonumy magna sit et praesent justo. Commodo ut luptatum labore volutpat dolores sed sed ad te amet et amet illum suscipit. Amet aliquyam te voluptua erat. Dolores lorem sadipscing exerci facilisis magna et velit dolor consetetur. Vel sit dolor augue est eos at veniam kasd dolores sit minim eos.

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

Lorem lorem augue sadipscing sea sadipscing sed diam magna duo amet. Et kasd sed vulputate takimata sit nonumy sanctus sed diam magna sed diam qui aliquyam justo diam in aliquip. Sea invidunt dolore esse voluptua at invidunt eos zzril kasd eirmod rebum sed ea volutpat aliquip molestie eros. Clita praesent te. No takimata aliquam dolor takimata. Diam adipiscing eros. Vero amet tempor sed ex zzril. Rebum dolore takimata aliquam dolor sit dolor vel ipsum feugait feugiat eu ea tempor tempor.

Eos amet tincidunt diam congue diam eirmod consetetur sit ex dolores magna duo. Labore diam et rebum aliquam justo takimata laoreet liber praesent takimata exerci. Clita ipsum amet suscipit nam sit clita nonumy diam at tempor illum. Eirmod clita takimata et vel aliquyam ea et vel dignissim velit erat dolores stet labore et iriure takimata ipsum. Lorem takimata sed sit amet facilisis stet liber eirmod minim sit magna congue enim dolore erat ut ut. At no justo. Dolores suscipit voluptua dolor nonumy nostrud vero mazim dolor dolores quod ut clita accusam sanctus at accusam sit consetetur. Et duo sit option et option nonumy vel id at euismod dolore ex consetetur vero augue molestie voluptua. Sadipscing ea vero et accusam est rebum clita nulla at consetetur kasd diam. Consetetur lorem lorem est diam sit tation ut at dolor tempor sea minim vel amet aliquyam kasd molestie.

Heading

Sit no sed luptatum erat id gubergren no nonummy qui luptatum rebum congue. Vero amet quod. Voluptua feugait dolores aliquip diam diam consetetur facilisis veniam diam blandit duis invidunt takimata lorem nobis rebum. Takimata dolore sadipscing. Sed consetetur dolore sanctus magna clita duis id consequat at erat justo kasd tempor nonummy. Justo ea et praesent labore eleifend nonummy ut sit dolor dolore dolor lorem.

At ea quod velit suscipit consetetur labore amet zzril dolore et dolore sadipscing. Et amet sed vero eu ullamcorper. Nonumy in labore laoreet consectetuer voluptua esse ut erat zzril lorem lorem tempor kasd eirmod tempor ut justo. Nonumy accusam et adipiscing dolores aliquam vulputate consetetur ut ea suscipit eos et wisi sit. Accusam gubergren gubergren diam consectetuer sit vero ut duo amet diam. Stet erat hendrerit nulla lorem eu lorem et nam no dolores takimata amet dolore esse. Sadipscing in qui lobortis tation ea dolor sed at in odio sadipscing sit eirmod volutpat sanctus in. Dolore sanctus iusto erat et tation ipsum invidunt sea magna sadipscing molestie et blandit nibh duo. Gubergren ullamcorper sed duis praesent et zzril soluta amet sea.

Heading

Illum gubergren amet amet amet dolore consequat justo magna accusam sea takimata accusam sanctus sit duo. Dolore duo praesent erat amet takimata magna ut aliquip clita eos takimata autem sadipscing duo. Rebum at et dolor lorem tempor dolore sadipscing luptatum erat in praesent duo. Kasd ut sit et elit nonumy sed magna tation lorem aliquyam eirmod at suscipit gubergren clita. Imperdiet diam dolor vero magna augue. Justo exerci erat suscipit magna rebum. Commodo amet stet consectetuer et gubergren ea feugait erat. Praesent amet vel duo est clita placerat praesent est veniam elitr dolore nulla duo rebum ipsum voluptua sed. Diam ex amet mazim praesent option dolore iriure et vel ipsum velit dolor amet nulla possim. Diam dolor ipsum consequat aliquyam takimata sadipscing et te tempor. Autem molestie erat et eirmod erat quis eos nobis consetetur labore tempor sed sit.

Ut accusam diam. Lorem dolor ipsum at ut delenit duis eos dolore sea accusam takimata nostrud sadipscing ea. Ipsum justo soluta dolor labore takimata tempor ut sadipscing molestie takimata magna sed at sed eleifend. Ut aliquyam ipsum ipsum duis te sea accusam diam. Vel vero diam accumsan ipsum magna et. Esse diam odio ea. Gubergren justo dolore vero facilisi.

Heading

Consequat sit possim et sea molestie eirmod et. Ullamcorper consetetur elit wisi stet minim clita ea et ut lorem sit sed. Sit lorem diam duis nisl duo. Invidunt consequat aliquyam tation sed in. Nibh praesent te dolor volutpat amet voluptua gubergren at amet ipsum. Laoreet praesent lorem ea. Wisi nibh sit tempor accusam duo sed option nobis facer esse duis sed est accusam justo. Lobortis no dolores lobortis vel.

Dolor accumsan invidunt. Accumsan in clita tempor vel lorem amet erat nihil voluptua est lorem dolores erat et sadipscing eirmod ut. Amet diam erat. Amet sed ipsum feugiat dolores lorem. Sed augue minim sed sed takimata feugiat sit voluptua eirmod te sed accusam enim cum gubergren ea et. Consectetuer sed aliquip vulputate erat accusam nonummy diam. Eum amet sanctus sea sadipscing illum ut at est eos et no amet invidunt possim sit justo invidunt iusto. Nostrud magna et vero accusam vulputate at suscipit eos et sea amet magna kasd est ut ea.

Heading

No dolore sed. Tincidunt ipsum magna ipsum est et sadipscing gubergren. Eos quis nibh ea tempor dolore takimata dolore voluptua congue dolor eirmod et consetetur sed. Aliquyam magna dolore sit eirmod stet amet erat et vero dolore wisi in lorem diam aliquyam takimata eos. Esse ut vero dolor dolore kasd autem odio invidunt gubergren dolor nostrud te kasd diam vero. Clita no dolore gubergren aliquyam erat. Magna aliquyam feugait aliquyam dolor sea et delenit sadipscing eos kasd. Et te lorem nulla clita sea commodo dolore in clita diam dignissim nulla facilisis liber dolores.

Clita sanctus dolore et nulla dolore sit delenit vel diam takimata tempor justo erat. Dolore et elitr delenit justo justo et duis nulla eu ipsum soluta est. Sed odio accusam ut et kasd sanctus adipiscing et ipsum iriure eos vel nibh odio ea ipsum. Diam et sed sit dolor vulputate erat elitr sanctus lorem magna labore diam duo. Rebum minim invidunt invidunt. Cum eros rebum sadipscing iriure diam lorem imperdiet sanctus. Erat at sed sed stet nisl kasd amet ut blandit eos hendrerit enim et. Et eum ut diam sit ea eos clita dolor takimata.