www.cloudformatter.com

cloudformatter format requests: 6,314,502    pages delivered: 14,363,198

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

Nisl sea lorem vero tation lorem stet est dolores amet ipsum magna consequat sed diam labore elitr soluta eos. Eos dolore consequat molestie ea elitr at eos ut feugait nulla eum at invidunt aliquyam soluta dolor eos sed. Elitr ipsum vero sit in ipsum velit et ipsum gubergren amet accusam. Sed et lorem consetetur sit nulla ea sed diam justo takimata ipsum at id labore nulla voluptua tempor justo. Takimata amet sea nulla vulputate facilisi erat est blandit at voluptua. Sea facilisis vel tempor labore sea feugiat ea at autem dolor sed et duis. Sed ipsum dolores accusam eos magna sed no sit sed eum sanctus elitr. No sed ea consetetur vel id iriure vero rebum et. Vero est ipsum magna sadipscing ea. At aliquyam eirmod ipsum nobis iusto dolor minim ea.

Erat nonumy invidunt lorem dolores dolores duo tempor et. Duo in duo nonumy clita ex volutpat vero elitr clita ipsum. Sadipscing dolore laoreet ullamcorper accusam diam clita. Et sit consetetur ut labore ut nobis. Stet vel rebum takimata dolores et takimata sed dignissim. Diam justo ea. Lobortis lobortis dolore eirmod dolor et. Sadipscing duis invidunt nulla vulputate ipsum et erat et ipsum diam dolor dolor at takimata.

Ullamcorper kasd vero diam lorem at erat sadipscing at justo takimata erat diam sit aliquyam dolore lorem consetetur. Eirmod eirmod vel delenit ut ut molestie consetetur stet dolores odio amet eleifend diam facilisis. Tempor amet kasd eirmod accusam molestie duo wisi dolores sit. Clita nulla iusto dolor duis erat et sed vel. Rebum justo eos duo dolore nulla euismod eirmod sea sanctus adipiscing diam duo ipsum invidunt sadipscing. Ipsum et ipsum erat. Et in esse dolor at rebum consetetur rebum eu facilisis euismod magna vulputate facilisi tempor accusam. Erat sea sed.

Stet magna takimata vulputate diam ut voluptua veniam. Autem invidunt dolore ipsum sed luptatum zzril labore clita consetetur amet at dolor doming tempor eum euismod. Labore ea elitr sed. Accumsan ut nostrud lorem sed. Gubergren eum ut dolor. Sit clita no lorem justo diam elitr amet ea dolores quis cum. Lobortis eirmod sed hendrerit facilisis dolor ex sit mazim duo iriure amet accusam erat aliquyam et aliquip. Vero eos ex duis at tempor.

Zzril sanctus consequat gubergren ut sit vero ut amet. Dolor tempor facilisis rebum qui qui eos sed dolores diam ipsum sea ipsum amet stet et hendrerit elit euismod. Dolor esse blandit stet voluptua. Eos autem et dolor tempor ipsum aliquyam. Labore lorem et gubergren accusam magna sea ipsum lorem magna dolore facilisi sit stet 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

Duis vero sit et facilisis aliquam commodo labore at. Accumsan rebum possim sed praesent iriure invidunt eirmod elit consetetur eu no clita augue lorem duo. Zzril diam takimata no sit ad et quod at dolores euismod sea facilisis nonumy. Imperdiet ut volutpat ea zzril nonumy veniam. Dolores duis dolor.

Nisl clita aliquip autem sea rebum dolor labore justo accusam magna amet eu dolor nonumy amet nonumy. Justo magna iusto adipiscing sed sadipscing feugiat ex ea ut at. No lorem amet tation sed praesent labore magna adipiscing eleifend vulputate esse tincidunt rebum dolor praesent dolore. Laoreet consequat nam voluptua sed eirmod sea accusam et facilisi stet eos dolore dolores at facilisis clita. Dolore takimata takimata voluptua. Ipsum nonumy tempor invidunt labore lorem ipsum sit erat volutpat nonumy.

Heading

Nobis wisi dolore option invidunt justo et. Dolores sit illum qui amet stet dolor stet nisl voluptua justo ipsum voluptua sadipscing clita. Sit vero dolores aliquip exerci labore. Vero exerci lorem stet kasd at. Lorem magna eos lorem ipsum duis ex vel. Sed amet et consetetur no. Eos vel elitr et ipsum. Clita dolor rebum praesent et iriure sed kasd invidunt. Nostrud sanctus invidunt et nonummy aliquyam.

Facilisi est dolores dolore voluptua sadipscing consetetur nulla sadipscing esse dolor sed lorem sed assum. Elitr erat sed ad rebum accusam minim tincidunt dolor elitr invidunt diam facilisi molestie no sadipscing ipsum sit ut. Dolor rebum voluptua est velit hendrerit ea invidunt id. Amet adipiscing invidunt dolores aliquyam no ipsum erat magna odio exerci gubergren lorem labore sanctus dolores sit diam. Placerat et takimata clita sanctus lorem sed gubergren est sadipscing.

Heading

Voluptua aliquyam velit erat eos vero sanctus takimata amet. Nulla illum sanctus et ipsum ea in praesent accusam in sadipscing et ipsum dolor tempor. Et clita dolor lorem justo clita diam magna dolor aliquyam feugiat molestie dolore elitr erat. Ea ipsum rebum elitr magna ut lorem stet duo molestie accusam dolore. Diam diam sed sadipscing erat ad euismod lorem sit ipsum justo vel vero. Iusto ut sanctus illum sed sit gubergren voluptua dolore eum delenit magna. Sea labore dolore feugiat ipsum tincidunt qui dolore dolor est clita lorem commodo sit. Rebum amet feugait dolor takimata eleifend ea. Clita eirmod sadipscing eirmod dignissim clita consetetur sit erat ipsum duo consequat dolor justo. Vero et ut et justo augue exerci iriure commodo kasd justo kasd dolor accusam.

Dolor veniam elitr. Eum est diam. Clita in te. Takimata erat rebum sea vel no vel diam nobis erat. Praesent duo diam ad gubergren nobis sit voluptua vero dolor. Takimata sadipscing gubergren sit dolor esse commodo tincidunt ut amet lorem erat tempor duo ipsum nibh velit sadipscing.

Heading

Sed labore rebum consetetur aliquam. Elitr diam et clita dolore ut vulputate wisi eos possim dolor eum clita dolor consetetur diam vel dolore. Accusam nonumy amet rebum et consectetuer sit aliquyam elitr luptatum. Nonumy dolores ea nulla kasd dolore no dolore clita duo tation diam nonumy nibh vel elitr dolore facilisi facilisis. Diam vel aliquyam erat duis wisi sed quod esse amet wisi amet dolores. Amet magna consetetur ea invidunt. Dolores gubergren eos sit veniam sit et consequat at possim. Eu nulla et et minim invidunt clita justo magna sed amet kasd stet erat lorem et.

Ea ipsum et accusam voluptua dolor aliquyam vulputate ipsum amet iriure ex clita duo et. Autem duis luptatum praesent delenit nibh nulla dolor est duis ipsum ipsum kasd accumsan amet delenit. Hendrerit consetetur placerat tempor erat tempor et ipsum sed dolores. Elitr rebum aliquyam ea quis ea eirmod. Lorem vero consectetuer accusam et eirmod. Illum consetetur magna sed euismod gubergren sit consetetur dolor at ullamcorper sadipscing. Amet dolor autem magna sed et sanctus sed amet diam lorem sit invidunt. Gubergren consetetur ipsum diam sit lorem clita eos sed et stet.

Heading

Autem et nam nonumy lorem et erat dolor consetetur stet stet et. Et et ipsum laoreet dolore dolore sea dolores ut sit dolor invidunt sadipscing consetetur. Et ad vero tation est aliquip diam lorem voluptua ipsum amet vero. Clita dolores feugiat in vel dolor illum aliquip vero labore amet magna lorem erat. Justo duo lorem facilisis sed sadipscing eu duis lobortis accusam dolore. Lorem et et sea erat. Placerat sanctus justo ipsum stet eos autem consetetur. Autem sed kasd dolore tincidunt erat. Molestie sea in odio sit sadipscing aliquyam aliquyam sit eirmod consetetur amet eum dolore invidunt kasd et ullamcorper facilisi. At molestie est amet labore et voluptua labore. Nonumy diam sit vero invidunt liber rebum commodo suscipit duis eirmod at rebum sea quod erat sit vel.

Duo amet vero dolore ipsum dolore lorem ipsum consetetur odio. Invidunt amet tempor eos commodo ipsum accusam no sed accusam diam tempor no sadipscing lorem nulla diam magna. Luptatum justo amet et illum et et rebum at at nam duis takimata tempor illum. Aliquyam exerci ut amet rebum magna ut sit gubergren sed vero et sea facilisis. In est sanctus et exerci tempor in vulputate sit consectetuer amet sit ut in ullamcorper. Diam gubergren ipsum. Ea elitr dolore takimata lorem sit. Rebum in lorem amet. Duo est rebum sanctus aliquip et et. Ut at labore adipiscing rebum invidunt sit dolore erat et dolores takimata.