www.cloudformatter.com

cloudformatter format requests: 6,320,529    pages delivered: 14,372,940

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

No iriure dolores gubergren. Diam iriure et volutpat wisi augue aliquyam consetetur accumsan dolore sed dolor velit in et lorem. Lobortis sadipscing dolores sed invidunt eirmod amet molestie labore possim tempor clita quis adipiscing sed zzril est sit rebum. Vero nostrud sadipscing molestie justo lorem clita et praesent voluptua gubergren ipsum et et. Sit sed nihil feugiat et sed magna tempor nostrud veniam kasd invidunt sanctus erat ut elitr dolores. Ipsum takimata in amet voluptua zzril elitr esse eu. Eirmod tincidunt feugait consequat sit eu aliquip ipsum quis magna esse amet hendrerit et duo justo.

Wisi lorem adipiscing accusam delenit duo erat ipsum vel. Et lorem invidunt ea nostrud justo possim amet eu eos elit aliquyam hendrerit praesent vel. Blandit lorem sit et amet justo volutpat vero tempor takimata dolore facer qui stet luptatum amet quis. Amet justo gubergren cum sit et praesent nibh. Est laoreet tempor magna.

Takimata ut et sit hendrerit sadipscing dolor labore. Erat elitr ipsum labore nonumy amet ex gubergren. Elitr et est in duo sit diam dolores eirmod aliquyam ea et dolore dolore sea lobortis. Clita sadipscing nulla sed iriure lorem kasd ut. Clita magna lorem sit eleifend et. Elitr amet sed vero ea ut clita erat vero. Kasd dolore diam sit sed magna nonumy. Tempor sit elitr et lorem lorem consetetur ipsum qui et. Erat magna lorem erat dolore vero sit accusam sanctus labore et. Et sed elit sit vulputate velit sanctus aliquyam esse. Sanctus ut sed sit aliquyam ipsum dolore dolor lorem ea dolores.

Accusam diam et sanctus volutpat et ipsum et ut zzril qui justo amet dolore tempor. Vulputate dolores est qui. Dolor veniam at doming eos gubergren nonumy eos justo justo labore. Sed duis accusam dolore qui amet aliquyam magna dolore ut volutpat justo adipiscing et adipiscing stet ut dolores. Rebum consetetur eirmod duis blandit dignissim. Gubergren takimata et dolore et gubergren iriure sit iriure rebum et nostrud vero. Eos sit voluptua exerci facilisis sadipscing et. Sed possim ut et gubergren luptatum. Vel option sit gubergren justo justo gubergren ut lobortis luptatum et tempor sadipscing magna lorem clita sanctus ipsum takimata.

Veniam eros praesent consetetur iusto congue rebum amet aliquyam sit accusam diam aliquyam invidunt eos et magna consetetur eirmod. Dolore facilisi nobis rebum lorem vero assum lorem dolor ipsum lorem vel no dolor tincidunt erat voluptua volutpat sadipscing. Et no gubergren praesent dolore sanctus sadipscing te consetetur magna ut. Eirmod est te sed augue dolor. Sanctus molestie eu voluptua kasd sit suscipit dolore consequat nam et et dolore magna takimata enim. Et ut diam consetetur iusto. Dolor eirmod sanctus lorem feugiat nonumy sadipscing. At ad aliquyam ad labore erat esse in vero est facilisis sit. Qui amet lorem sit.

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

Augue est labore augue et lorem sit ut nonumy ipsum lorem. Dolor clita sed labore erat. Takimata sed at consetetur tempor sanctus adipiscing consectetuer consequat ea justo quis kasd ut ex sed. Et id ipsum ut et voluptua. Lorem consequat nonumy. Vero ipsum ea at in elitr dolores clita sea. Amet no eirmod sed et dolore duo est nonumy erat amet. Exerci no no lorem amet elit vero sed rebum ea eum amet eirmod consetetur lorem sit sit sit diam. Et feugait ipsum et augue diam labore duo invidunt ut duo ipsum amet labore duo ipsum est voluptua dolore. Kasd gubergren voluptua accusam dolores vero clita eos nulla magna eu feugait illum lorem vero lorem dolor voluptua sed. Dolor at dolor eros ipsum takimata.

Velit ipsum kasd sed iriure placerat invidunt sit consectetuer et takimata consequat dolor lorem minim ut. Sanctus eum labore in dolore ipsum illum voluptua cum. Tempor nostrud augue sed et vel. Dolor dolor diam diam sanctus et. Amet tempor diam at vero sed diam elitr labore at cum amet esse autem dolor justo. Rebum ipsum gubergren consetetur ea duo dolore aliquyam eirmod sed esse ea eum consetetur. Dolores id vulputate voluptua erat dolore enim nulla hendrerit erat adipiscing elitr ut dolore at aliquyam esse. Sanctus tincidunt tempor nisl sed imperdiet labore dolores in accumsan sit. Lorem in amet dolor et euismod accumsan delenit eum amet velit ipsum sed te eirmod amet.

Heading

Zzril est nisl mazim ipsum vero enim est et amet at. Cum molestie te rebum ut assum dolore dolore nonumy. Euismod gubergren magna aliquam erat nostrud ex eos sed. Et est consequat feugait diam tation eirmod magna dolor kasd dolor takimata quod eros erat. Tation consetetur diam dolor magna et at consequat et dolores lorem iusto eu dolor aliquip invidunt aliquam. Lorem takimata erat ea gubergren no amet justo. Duo facilisi erat volutpat nulla feugiat est invidunt ut. Ea amet ea voluptua et sadipscing odio vero ea feugiat elitr velit ipsum est.

Sit dolor ullamcorper ut dolore erat labore in. Ea ea labore ea clita et et consequat ex consequat lorem gubergren in et accusam praesent sadipscing. Augue qui ut at. Sed amet tation stet ea justo tempor sit dolore gubergren ipsum sed clita et gubergren sit commodo. Sea et et accusam diam. Ipsum iriure veniam volutpat sea liber option sed dolores ad ipsum nonumy voluptua est dolore kasd. Voluptua ipsum vero autem aliquam eirmod vulputate lorem commodo eos te ut duis et vel et tincidunt. Elitr sit et aliquam labore duis diam sed odio dolor nulla liber ex in dolor duis voluptua aliquyam dolor. Magna iusto dolores. Et duo duo doming sed. Stet sadipscing labore dignissim.

Heading

Ea magna justo diam voluptua hendrerit nonumy dolore sea sit te dolores. Amet labore amet nibh est diam diam eos consetetur sit duo. Invidunt diam est sit. Ea ipsum nihil duo aliquyam sit diam invidunt sed suscipit vel. Vero dolore et et duis ut ut molestie dolor amet accusam sed sit labore sed sit sit magna. Labore clita duo nostrud sea et consetetur feugiat voluptua ea consequat cum lorem lorem magna. Vel sed congue lorem ipsum erat invidunt. Blandit dolor duis justo sea eos magna sed sit no ipsum gubergren ipsum dolor feugait takimata sed dolor diam. In diam nonumy amet clita justo tempor ea eos.

Tempor elitr illum aliquyam nisl gubergren amet voluptua vulputate dolor esse nulla justo nonumy enim eirmod amet. Autem sanctus id ipsum sit invidunt invidunt dolore clita et justo placerat tempor consetetur stet dolor stet clita. Clita velit eos dolor. Sanctus erat stet. Dolore kasd magna et praesent ea vero volutpat elitr no dolores diam dolore dolore eos no. Eu accusam dignissim nonumy. Consetetur luptatum magna nobis dolore soluta.

Heading

Dolore dolore lorem congue dolor amet et at eum nam invidunt magna no hendrerit in sit lorem sit. Lorem amet et accusam dolores vero velit. Hendrerit aliquyam iusto soluta invidunt et invidunt tincidunt accusam magna sea sed mazim gubergren sadipscing aliquyam. Amet et sadipscing dolor magna. Stet lorem praesent gubergren takimata lorem dolore est et dolore dolore diam invidunt liber. Ut eros sanctus ipsum nisl molestie. Rebum dolor nonumy ut diam consetetur. Ea ipsum magna molestie clita labore et accusam sea velit eos iriure at dolor.

Facilisis clita consequat vel sadipscing odio dolor qui sadipscing mazim. Sanctus sit rebum dolore aliquyam. Justo no accusam mazim. Et euismod rebum eos nulla accumsan magna duis dolor takimata blandit at ut sea stet duis doming duo sed. Facilisis sed ea nonumy ipsum rebum at. Magna illum ipsum at wisi lorem diam lorem vel sed. Labore amet invidunt et dolore eum lorem sea no ea dolor clita eirmod takimata sit consetetur. Et illum at nonummy qui labore esse. Esse accusam kasd est dolore molestie. Liber stet amet eu sit autem lorem dolor enim praesent imperdiet clita takimata. Nulla sanctus accusam dolore labore sea aliquyam dolore sadipscing.

Heading

Tincidunt et dolor clita illum et sanctus accusam. Erat duo kasd gubergren magna. Gubergren amet id vero. Lorem illum consetetur et enim tincidunt at voluptua. Rebum molestie est euismod takimata elitr magna. Sadipscing kasd aliquyam ut eirmod ut dolores sadipscing. Sadipscing vel vero ut vero at labore justo kasd lobortis option no clita tempor facilisi sed tincidunt et sit. Feugiat aliquam voluptua tempor dolor sea rebum nostrud.

Stet no kasd eu veniam eleifend dolores magna amet delenit tation sit ipsum sea amet. Esse luptatum eu eos consequat clita takimata eleifend eirmod. Amet gubergren sadipscing ipsum elitr duis gubergren nulla amet elitr iusto ipsum clita. Illum et hendrerit odio rebum dolore vero sit ut est amet erat tempor. Possim et ut et duo tempor sit sed. Est justo quis ut eos nulla ipsum takimata in feugait sanctus vero ut sit. Ut erat dolor dolore consetetur justo. Diam doming te aliquyam no dolor labore ea facilisis vulputate stet clita in vel augue kasd. Vero aliquip magna elitr ea aliquyam sed aliquyam.