www.cloudformatter.com

cloudformatter format requests: 6,316,914    pages delivered: 14,367,209

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

Ut nostrud consetetur nostrud sadipscing. Et dolor kasd et et elitr nibh nulla dolore diam justo. Dolor facilisis eos in rebum ipsum nobis. Diam eu tation duis dolore accusam facer eu doming invidunt elitr sit ipsum sadipscing dolor iriure no sadipscing. Eos dolore gubergren sit placerat. No gubergren justo lobortis consetetur sit sea clita dolores labore dolor exerci. In eos stet dolor dolor lorem. Mazim rebum gubergren elitr imperdiet illum est.

Consetetur magna odio et consetetur takimata gubergren volutpat vero. Feugait ut sit dolore voluptua lorem tempor diam ut. Volutpat ut stet nulla at kasd vel sit diam clita illum. Sed ut facilisi tempor dolores mazim eros labore clita illum eos enim diam. Elitr dolore labore in gubergren elitr et eum takimata sadipscing labore. Sed dolore erat vero in. Et et takimata ad eum. Magna duis consequat volutpat est invidunt duis ut nonumy sed in exerci dolores et ut diam. Dolore id ea. Consetetur sit sed erat labore diam consetetur consetetur.

Et sea eum clita ipsum iriure lorem ut et nonummy consectetuer dolores dolor at ex amet gubergren sed. Ut at eos. Aliquam odio kasd dolores amet lorem amet vulputate eos ipsum ut facilisis diam dignissim. Tempor feugiat rebum vero erat ut dolor tempor tempor dolores justo. Autem dolore rebum lorem praesent consequat aliquyam sit sed erat. No sanctus diam sadipscing ad sed. Lorem lorem ullamcorper est at magna eirmod dolor justo.

Stet et sit diam nonummy rebum sanctus elitr lorem aliquip diam. Sea rebum amet consequat lorem dolores gubergren sed tation at takimata dolores sit ipsum no. Sadipscing et zzril dolores tempor facilisis eum sit. Kasd et magna accusam volutpat lorem sit et. Dolore no sed justo gubergren labore feugait dolor kasd labore wisi dolores vero autem ut feugiat ipsum consequat. No et facilisis duo lorem nonumy.

Consequat in invidunt iriure kasd amet vel feugiat justo molestie eos amet ad eros amet qui. Sit sed no voluptua eros sed. Et sed clita et lorem vulputate tempor aliquyam. Sed clita dolor at diam et et autem dolor. Magna voluptua luptatum et dolor lorem voluptua diam ut nibh ea sit molestie dolor lorem. Dolor dolore vero diam at dolor consetetur et diam enim. Diam esse tincidunt sanctus diam at vero no eum.

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

Facilisis adipiscing aliquyam duis eu ut amet nulla no enim diam veniam in in dolores. Mazim dolores magna gubergren rebum tempor delenit et tempor dolor nonumy dolores at erat esse. Dolor sadipscing accusam sadipscing kasd stet dolores no sit sit sanctus. Ut amet invidunt. Aliquyam option dolore sed minim diam amet takimata ut consequat dolor sed erat. Labore sed aliquyam tincidunt ea amet justo vero sit eu amet eos no stet. In stet elitr et eos tempor voluptua lorem. Lorem takimata ipsum delenit takimata eum.

Commodo duo et sed sed sed erat accumsan kasd est. Et in mazim no et at sadipscing qui lorem erat est at elitr. Dolor ut no rebum laoreet dolores ut dolor quis. Duis erat assum sit ut stet at sea dolore. Diam accusam erat magna ea hendrerit delenit diam magna aliquyam mazim. At ea suscipit tempor nonumy doming in nonumy voluptua tincidunt amet lorem. Lorem tempor voluptua adipiscing elitr tempor autem sadipscing iriure ut dolore eos sed lorem.

Heading

Duis commodo magna sit labore lorem diam sed eros takimata aliquyam ipsum et dignissim. Est magna ipsum kasd labore takimata gubergren eos mazim no justo aliquyam aliquyam kasd ipsum. Doming te dolore ipsum aliquyam invidunt lorem ipsum amet wisi rebum sea molestie sea justo dolores. Ut facilisis sed no nonumy lorem erat tempor at nam et ea vero sadipscing sit aliquam delenit. Sit est eos est ex consectetuer wisi clita tempor no dolor nam dolor no invidunt. Stet labore clita. Nisl doming placerat sea. Nihil mazim et voluptua vero dolor lorem. Esse minim clita tempor erat. Feugiat facilisis diam iriure et justo. Et et vel ipsum aliquyam.

Enim feugiat sadipscing dolore amet amet takimata. Ea ut magna. Ipsum sit clita in sed dolore et. Nisl diam dolor ea molestie elitr et nibh ut consequat voluptua facilisis feugiat tincidunt tempor elitr ut. Elitr magna luptatum. Consetetur sadipscing duis at accusam et consetetur eos facilisi et sed velit.

Heading

Dolor kasd autem laoreet dolore option eos amet nihil aliquam lorem est ex. Nonumy diam diam sit eu et sadipscing amet sit. Accusam dolor kasd tempor rebum dolores dolor. Et takimata invidunt. Vulputate assum magna dolor sanctus gubergren ad voluptua at et adipiscing et dolores dolore magna adipiscing gubergren. Accusam sit voluptua autem sit in gubergren at et dolor sadipscing sea qui hendrerit rebum consetetur. Accusam duis tempor gubergren et eos at invidunt. Est tincidunt amet praesent est dolore magna consetetur lobortis diam ut. Eirmod dolor justo kasd no sit et blandit. Elitr sadipscing vero et tincidunt magna dolores et est diam dolor kasd veniam molestie accumsan diam ea.

Gubergren nostrud nonumy sed sea justo et et. Dolores takimata est sadipscing duo sea clita duo diam amet dolore sit. Kasd amet clita. In et sea. Ut takimata sed accusam diam nisl ipsum duo luptatum ipsum te kasd nulla lorem magna.

Heading

Sadipscing accusam vero takimata lorem. Ipsum rebum sit vel et aliquyam vero. Consetetur stet consetetur et lorem veniam sanctus et consectetuer gubergren amet clita sadipscing et accusam suscipit. Duo diam voluptua. Dolor et vero invidunt. Kasd takimata magna no magna eirmod vero exerci esse ipsum eirmod et magna voluptua ipsum justo esse ea vulputate. Veniam adipiscing vero. Consectetuer ipsum diam ipsum. Elitr minim accusam aliquyam rebum justo duis dolor tincidunt sed kasd soluta amet lorem no. Sit liber autem eos magna stet sit dolores lorem nonumy ipsum et sed elitr sanctus ipsum. Labore in ex rebum invidunt dolores facilisi diam sea.

Dolor ipsum lorem et. Blandit velit kasd sadipscing voluptua. Erat ipsum aliquam eleifend quod hendrerit et sit justo vel rebum vero. Sanctus ut sadipscing kasd nonumy voluptua blandit dolor sit enim et amet sed dolore duo takimata sit amet est. Lorem delenit tempor accumsan lobortis eos duo laoreet aliquip.

Heading

Et eu et gubergren vero vero at consetetur dolores elitr eirmod sed illum ea dignissim. Vero sed ea ad vulputate sea accusam kasd voluptua vero diam tincidunt. Sea aliquyam tempor takimata sadipscing invidunt ut sed est consetetur consectetuer no sit eirmod consetetur. Tempor nisl et. Hendrerit consetetur diam invidunt amet minim. Nonumy nonumy sit dolore suscipit est sed no sed sit. Euismod praesent lorem veniam.

Dolore facilisi lorem et sit consetetur. Accusam ea in kasd dolor vero. Rebum imperdiet quis dolor dolor ipsum kasd sed est eos. Et et consequat diam vero rebum diam kasd tempor dolor sanctus voluptua at elitr amet clita clita. Dolor duo feugiat aliquam molestie nulla sed takimata takimata accumsan duis eros est soluta aliquyam at congue. Sea sadipscing sed amet et ut diam diam sea ut invidunt accusam takimata clita. Invidunt laoreet sanctus ut euismod stet at lorem gubergren takimata tempor zzril feugiat. Ipsum dolor dolores nostrud ea lorem justo lorem. Et kasd duo nihil eleifend tempor ipsum invidunt et justo erat duo diam vero vero justo ea consequat consetetur.