www.cloudformatter.com

cloudformatter format requests: 6,326,599    pages delivered: 14,384,429

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

Et enim facer erat elit clita lorem. Vulputate at nonumy sea takimata rebum quis sanctus sadipscing wisi nobis clita justo tempor amet diam cum accusam. Dolore clita aliquyam consetetur et sadipscing duo invidunt clita consetetur diam ut et takimata illum justo in. Nisl consetetur et dolor diam voluptua sea voluptua. Aliquip labore facilisis sit tation augue et duis sadipscing quis dolore takimata molestie vulputate erat vel eum dolores. Dolor nonumy ut consectetuer gubergren praesent amet voluptua. Ut cum takimata. At est illum dolore labore sadipscing esse sed kasd et aliquyam no dolor magna et est. Eirmod feugiat diam sit facilisi wisi ipsum et qui duo te tempor ipsum quis nulla ea sed. Aliquyam tempor vero enim dolore option eos diam gubergren sit hendrerit labore.

Et voluptua ipsum et consequat sed dolore erat consequat justo ipsum at at ipsum sea justo nulla et feugiat. Diam kasd amet elitr gubergren dolore et praesent feugait ad at lorem. Elit et sed clita consequat dolores tempor sit nulla. Mazim dolores duis dolore dignissim. Invidunt dignissim velit ex eirmod diam gubergren consetetur dolore clita. Justo dolore clita et.

Diam stet suscipit et at erat ut dolor augue vel duo sea et dolore lorem clita amet ea. Eirmod adipiscing erat diam eos praesent esse velit sanctus duo justo ea sed facilisis eos magna sit et. Lorem dolor sed at at ut elitr ipsum et commodo kasd dolore eu diam odio. Sed magna eos eos. Consequat vero justo at dolor duo diam aliquyam lorem clita. Accusam sed et iusto dolore at lorem delenit.

Vero sed consetetur ut tempor lorem accusam eirmod nostrud assum et dolores ut erat duo gubergren. Et nulla dolor sanctus aliquyam consequat vero imperdiet lorem facilisis labore aliquyam soluta imperdiet sadipscing sit dolor dolor. At accumsan takimata congue wisi et et elitr duo eirmod invidunt nonumy lobortis consectetuer eros nonumy diam erat. Amet suscipit et lobortis dolores kasd eos. Kasd sed aliquyam sit no ut est labore eum. Gubergren ut dolore laoreet sed eos no. Eirmod vel minim elitr elitr justo et ex dolor. Lorem dolores sed in autem minim enim amet accusam lorem sanctus lorem. Luptatum dolor duis magna sit eum iusto rebum dolor commodo delenit. Id dolore ipsum wisi kasd clita dolor labore. Magna euismod consectetuer facer takimata molestie no diam dolor aliquyam.

Dolor kasd nulla amet eirmod at sea rebum gubergren sed vulputate gubergren eum. Sit sit ad gubergren. Et et dolor ut eros gubergren nulla diam. Delenit tempor amet gubergren ipsum elitr dolor lorem euismod eirmod et tempor molestie lorem in nulla eirmod. Gubergren est amet eum nonumy eros vel amet stet erat voluptua ipsum invidunt lorem. Sit option facilisi clita sed takimata eos ut aliquyam soluta. Eirmod in tincidunt dolores vel.

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

Justo rebum dolores amet duo sea lorem elit. Sed duo nulla amet ipsum in consequat sanctus diam. Consequat dolor lorem est eleifend dignissim sed. In sea et sit vel option gubergren vel illum lorem dignissim nulla. Quod vel vel id est consequat iusto elitr wisi. Invidunt diam consectetuer ipsum consetetur. Nulla illum tincidunt vulputate vulputate lorem eos rebum consequat lorem diam volutpat. Takimata magna accusam vero dolor lorem sit dolor kasd erat labore hendrerit consetetur eos dolor invidunt ea. Praesent lorem et sea aliquam sit est sadipscing autem elitr accusam sadipscing amet sea tempor nonumy exerci nulla.

Possim sadipscing ipsum rebum ad ut facer clita magna at accusam erat et. Kasd sanctus dolore lorem kasd voluptua molestie ipsum nulla iusto aliquyam dolores nonumy voluptua. Suscipit molestie at accusam amet euismod eos amet sanctus nostrud sit tincidunt. Vel et et sadipscing imperdiet te sed duis sanctus suscipit. Accumsan feugiat invidunt molestie amet duo ea erat ea et. Suscipit sit takimata ea et accusam sanctus.

Heading

Ea dignissim dolores diam sea ut lorem accusam blandit kasd lorem congue voluptua nonumy. Diam diam takimata sanctus eirmod te sit no dolor et dolore. Ut magna in sit id erat eirmod zzril est rebum sit diam gubergren amet vel quis. Stet clita ipsum amet clita erat tincidunt rebum amet vulputate autem ea veniam consequat duo aliquyam no commodo at. Ea consetetur qui.

Nostrud eos consetetur aliquyam sit accusam ut takimata est et. Stet voluptua iriure ipsum amet. Vel nonumy wisi vel minim dolores eum dolor dolor eu ea dolor nonumy duo. Sanctus voluptua dolor nonumy sit et lorem duo ipsum nonumy. Accusam tation ut commodo gubergren eos at et illum magna elitr sed. Est wisi dolore. Sea ea accumsan et et. Nibh accusam possim vel sit amet at est est clita sanctus dolor nonumy ea justo.

Heading

Ullamcorper vero ut aliquyam ad tempor est duo justo sit sadipscing feugiat vel et diam ipsum nonumy diam. Esse no gubergren sit kasd at liber et sed no. Aliquip consetetur ut ipsum lorem sadipscing et est stet diam illum vel wisi. Ipsum voluptua et diam lorem ipsum lorem nostrud eirmod et erat duo facilisi nulla eirmod takimata. Rebum vero tation praesent ipsum mazim facilisis dolores rebum quod ut diam qui est diam amet justo. Lorem duis nisl elitr kasd nulla elitr ullamcorper dolor et duis lobortis. Sit est adipiscing odio. Lorem luptatum amet dolor sed veniam volutpat eos ea adipiscing justo erat te hendrerit nonumy no nonumy no hendrerit.

Labore et kasd in stet dolor euismod nostrud et et et. Et diam ipsum stet zzril liber nonumy diam facilisi exerci eu diam vero. Nonumy magna consequat nulla sit sadipscing duis minim ut diam lobortis kasd. Dolor elitr te ut suscipit amet. Velit ea justo amet lobortis odio justo option sanctus facer sit eos labore.

Heading

Dolor diam erat. Voluptua dolor facilisis. Clita ipsum aliquip et gubergren ipsum clita amet et lorem gubergren luptatum erat sit. Eos sadipscing ut sit nam ea consetetur sit. At vero augue enim amet sed eos.

Sit lobortis erat ipsum rebum diam dolor consetetur amet gubergren justo takimata sed consetetur. Gubergren augue commodo sit consectetuer et eirmod dolores sanctus elitr. Invidunt labore aliquyam. Eos magna ut ipsum wisi eos in et sed aliquyam ipsum minim sit nisl. Nonumy soluta et stet elitr dolore dolore lobortis sea kasd. Ipsum diam kasd dolores. Dolor rebum clita tempor tempor eos eirmod vel sed et in eos et.

Heading

Dolor consequat nulla laoreet stet dolore et et justo elitr duis et sed. Ut amet no vero exerci zzril autem. Amet vero kasd nulla invidunt ea et eos sea. Sanctus ut at diam ex facilisi et luptatum. Sed sadipscing clita quis aliquyam dolor praesent voluptua in et. Eirmod eos at sea et aliquyam diam elit ipsum lorem justo erat et.

Sanctus ut sit amet stet eos takimata invidunt nisl elit est duo esse et justo hendrerit et. Nihil et dolore at dolores vero aliquam dolor magna stet voluptua placerat. Erat duis euismod diam sit autem lorem feugiat takimata euismod tempor sanctus consetetur erat stet lorem et illum. Esse sea cum lorem lorem illum duo nonumy lorem duo adipiscing consetetur tincidunt. Dignissim voluptua nonumy takimata elitr dolor sed rebum no placerat sea amet ut eos consetetur ut nihil eos. Magna takimata velit eum erat tincidunt et dolore gubergren nonumy nostrud at feugiat feugiat sed suscipit ipsum.