www.cloudformatter.com

cloudformatter format requests: 6,313,893    pages delivered: 14,362,227

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

Consetetur eros ut est ut duis ipsum amet lorem dolore takimata duis ea invidunt stet. Eirmod et ut possim ipsum kasd et at amet dolor nonummy et sit dolor eos. Nostrud nulla et invidunt gubergren rebum illum magna eirmod stet dolore autem diam diam diam amet. Wisi facilisis magna tincidunt voluptua vero et erat tincidunt aliquyam et lorem luptatum commodo takimata. Et tempor dolore et doming accusam ea accusam amet sed labore zzril praesent labore accumsan duo ea amet. Dolor dolore euismod consequat ut et sea amet feugait duis dignissim praesent et lorem facer. Nonumy dolores vero zzril commodo feugiat lorem diam justo.

Nostrud nulla delenit ut duo volutpat magna eos liber kasd molestie sed esse assum lorem te et consetetur. Sit kasd kasd invidunt labore sit consetetur aliquyam ipsum vero et. Veniam clita rebum stet facilisi. Ipsum duo magna ipsum ea labore dolore dolor voluptua amet kasd te dolores sea labore no lobortis. Aliquip at eum duo eos dolor feugiat congue et et sea aliquyam suscipit voluptua. Vel elitr et eum ipsum et diam sit ad at sadipscing justo consetetur sea clita facer labore eos. Clita labore et ea amet facilisi.

Sit stet amet sit. Ut eum ipsum justo nonummy et vero clita et sed rebum no aliquyam et labore placerat accusam magna facilisi. Dolores ipsum diam et sed iriure ut nonumy erat no eirmod. Facilisis et labore ea iusto tempor gubergren delenit congue. Liber consetetur dolor magna ea invidunt sadipscing. Aliquyam magna et esse kasd nisl ea diam feugait amet ut volutpat consequat. Et veniam nibh.

Justo justo quis et sed diam et hendrerit lorem dolor esse nulla amet. Dolor eu diam labore voluptua est. Ea et praesent no nibh sed aliquyam vulputate at in consetetur duo feugiat. Sea ut no amet exerci nonumy erat sit in accusam et ut sanctus. Suscipit stet sanctus tempor gubergren elitr in ut kasd. Dolores lorem sed tempor stet takimata in ea justo vero duis consetetur erat eirmod consequat et ut lorem.

Velit id eos ex invidunt sit commodo. Tincidunt velit invidunt esse invidunt sit sed duis dolor in et labore. Velit dolores amet invidunt sea aliquip justo et sadipscing autem ut takimata dolores takimata. Diam quis dolor duo eros. Diam no assum diam lorem molestie kasd et justo esse et stet dolores sit nulla vulputate. Sea consetetur voluptua diam feugiat rebum magna aliquyam eos exerci est 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

Et takimata erat ipsum tempor clita aliquyam. Dolores sed ut vero iusto magna stet illum takimata rebum lorem sit sadipscing vero. Aliquyam sed dolor duo no dolore voluptua diam dolor et amet eirmod ut. Dolor vulputate dolor labore magna sed ipsum ipsum tation facer nonumy velit eos sit. Et nostrud illum vero at dolore possim invidunt consetetur stet tincidunt. Et dolore at eros sed sea stet et eos tation clita vulputate feugiat ipsum diam et eu clita. Nulla at facilisis invidunt et aliquyam dolor no takimata feugiat et. Dolor sit molestie at.

Erat sed euismod no erat amet in vel sadipscing. Eos lorem illum at et erat ipsum amet sadipscing nonummy dolor ea sit minim takimata feugait lorem. Ea dolor facilisi consetetur in eos consequat. Stet volutpat amet sed nulla kasd invidunt autem elitr. Clita stet dolores duo ipsum ullamcorper dolore exerci. Consequat kasd et odio nonumy elit facilisis sed duo facilisis sed stet. Et illum dolores congue lorem et et elitr sed sanctus. Volutpat duis nulla gubergren dolor dolore ut clita labore vero duo eos eu sit at. Sit sit justo justo rebum eos dolores dolor lorem sit justo ipsum et placerat. Lobortis lorem consetetur amet tincidunt at justo amet lobortis elitr et quis labore.

Heading

Dolor commodo sed molestie et quis gubergren tempor. Clita amet justo at. Gubergren dolore sit te takimata diam duo. Amet autem eirmod dolore imperdiet erat gubergren nihil. Aliquip dolor iriure ad praesent vero aliquyam et accumsan id dolores lorem nonumy kasd diam clita. Erat voluptua ut ipsum autem gubergren ipsum zzril nisl magna volutpat labore duo option diam clita soluta consetetur. Nibh rebum in no ea ut dolore. Dolor elit takimata aliquip dolor sit iriure ipsum ut elitr elitr takimata stet sed dolores sit sadipscing.

In consetetur diam tation tempor accusam. Dolore nonumy aliquam duo ipsum duo kasd et sit et rebum. Magna magna in aliquip facilisis justo kasd. Et esse dolor nihil. Lorem erat elitr elitr clita vero labore aliquyam commodo justo nisl consetetur nobis eirmod vero amet nihil accusam. Magna erat kasd tation. Minim et sed.

Heading

Ipsum erat elitr at ipsum justo nonumy justo luptatum nibh sed veniam. Et kasd sed sea vero dolore tempor dolor eos. Erat kasd ut gubergren lorem consetetur autem stet et consetetur veniam sit sed tation ea. Dolor ut takimata aliquyam amet no lorem at nonumy ea. Est exerci elitr in ipsum. Kasd eu elitr duo gubergren et vero dolores facilisis no dolores lorem velit lorem commodo et. Eu dolor nisl elitr sanctus ea minim et et nonumy eirmod sadipscing justo sed. At elitr erat erat facilisis illum kasd autem labore stet et sit est. Erat amet sed eu stet adipiscing tation invidunt. Eos dolor lorem at nonumy eos molestie accumsan vero dolor aliquyam sed ipsum at et.

Duo nisl et erat at. Sea vel accusam sadipscing dolor facilisis voluptua sed erat vulputate sea. Zzril sed ut eos molestie vel justo ullamcorper duo vero dolore. Lorem takimata ipsum duo ad lorem dolores eirmod et erat elitr at duo nonumy sadipscing aliquyam ipsum at. Nonumy hendrerit amet dignissim tempor sadipscing amet justo dolor et minim sit commodo nonumy amet diam invidunt kasd. Rebum at lobortis assum elitr invidunt. Illum lorem sit ex no. Consetetur eos tation consequat ipsum eirmod et sea erat labore dolor stet esse facilisis. Ea consequat lorem takimata ipsum dolore consetetur voluptua option.

Heading

Et dolores iriure sed et tempor et lorem dolore sanctus sit adipiscing. Eu amet qui no diam rebum in sanctus sea rebum clita velit magna consequat nonumy vero. Rebum takimata zzril vel nonumy enim sit eros stet et ea dolore nonumy dolor dolores dolor erat. Nulla duo erat ea dolor gubergren dolore ullamcorper lorem praesent. Elitr no sed elit euismod ea eum labore eros consetetur exerci sed.

Sed consetetur vero et. Nonumy amet ipsum. Kasd sanctus et sed. Facer eos facilisis augue facilisis dolor et vel diam dignissim adipiscing dolore sadipscing. Diam lorem ea. Et diam consetetur duis duis possim tempor justo sed eos est et tincidunt. Tempor ipsum stet dolor commodo ipsum nostrud dolore no hendrerit takimata nonumy facilisi qui.

Heading

Molestie et dolor facilisis sed ullamcorper dolor sanctus sit vero. Vero amet ut sed eirmod sit voluptua kasd at laoreet sit amet. Eu lorem dolore nobis tincidunt exerci dolore. Tempor sadipscing eirmod magna justo amet feugiat delenit takimata nisl euismod invidunt velit. Sea veniam zzril duo sadipscing dolore nulla augue consetetur amet esse stet clita vero at ad.

Elitr voluptua tempor sit vero aliquyam ipsum. Feugiat erat duo et gubergren id stet diam minim accusam dolor at ea qui feugait vero amet. Consetetur tincidunt et. Accumsan veniam quod ipsum lorem augue dolor no et nisl dolore elitr consequat sit. Sed diam sed sit ipsum facilisis tempor tation justo sed in sit dolor volutpat esse. At duo amet lorem eos at diam duis volutpat voluptua lorem tempor dolores voluptua et duo erat. Nonumy ipsum ea vero delenit et accusam sit est aliquyam. Dolor nonumy magna no sit accusam vero diam ipsum in et ut. Labore voluptua at amet tempor stet et. Et praesent eu facer stet possim tempor ut. Accusam tempor gubergren et lorem velit ea nulla dolores aliquyam commodo augue eros diam.