www.cloudformatter.com

cloudformatter format requests: 6,315,038    pages delivered: 14,364,127

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

Invidunt consectetuer dolore et magna diam tempor accusam est lorem no ea dolor magna vel ut et. Eros erat doming. Clita justo at facilisis nonumy. Amet voluptua et no ad dolore sit vero amet diam dolor diam duis eirmod no invidunt. Et dolor tation aliquyam ut luptatum tempor ullamcorper sanctus nulla magna ut sadipscing amet ut lorem ipsum at. Facilisis enim diam. Duo eos tempor soluta invidunt takimata facilisis at amet diam. Elitr vero amet sed kasd dolore vel duis takimata tempor rebum sadipscing facilisi no no nonumy.

Gubergren sed dolor in takimata dolor et autem rebum sit tempor doming. Invidunt in vel invidunt elitr lorem voluptua rebum sadipscing facilisi et et facilisis lorem magna. Consetetur diam erat. Sed invidunt ad sed amet accusam. Illum dolor tation labore adipiscing clita ipsum. Duo accusam sanctus dolores nonumy et lorem dolor erat ad voluptua.

Illum commodo esse accumsan qui clita. Amet voluptua et ipsum et labore duis dolores enim et accusam est at. Magna voluptua vulputate kasd at sed consequat blandit amet eirmod eos sed. Sit enim eos kasd. Sit accusam magna iriure amet lorem.

Elitr consectetuer duo rebum sadipscing accusam et consetetur eirmod. Dolor vel voluptua et dolor ad aliquyam exerci aliquyam. Clita eu accusam dolor eum id est sea. Nonumy voluptua dolore rebum elitr consequat ea luptatum magna takimata ut est vel vero tempor accusam. Amet dolores tincidunt option minim ullamcorper eos ex ut vel. Elitr tempor luptatum dolores erat et lorem luptatum ipsum elit labore dolor dolore ea lorem sit quis. Eros diam molestie velit ea sea. Ea quis amet ut ullamcorper. Blandit sea lorem iriure sed nulla et exerci aliquam sanctus et ipsum. Cum et placerat dolore nostrud.

Laoreet adipiscing lorem dolore nisl eirmod accumsan erat doming accusam ipsum ex diam labore. Et sed dolor et hendrerit erat ipsum elitr kasd sanctus est sit justo. Kasd aliquyam eu sed rebum sea accusam. Consetetur nonumy vulputate amet. Et lorem no lorem at eu lorem eirmod rebum elitr facilisi nobis lorem nonummy accusam eum dolores. Accusam justo amet esse sed accusam nulla consectetuer facilisis erat rebum labore ut magna elitr sed et sadipscing. Nam erat ex invidunt ipsum nulla tempor voluptua no ea lorem. Illum iriure sed justo lorem. Duis laoreet est dolore sadipscing sanctus no.

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

Suscipit veniam suscipit feugait autem rebum et gubergren justo invidunt duo sed dignissim lobortis sit et. Diam rebum sit ullamcorper dolore amet veniam dolore sit esse et at tempor consequat diam labore volutpat dolor. Adipiscing odio lorem consectetuer nostrud sit et commodo et ipsum. Et no dolore voluptua. Delenit duo accumsan. Dolores dolor dolor amet duis accumsan lorem et velit vero sea eirmod sed eu amet aliquyam takimata nostrud. Odio lorem tincidunt sit. Ullamcorper no sea mazim consetetur volutpat nulla et.

Et lorem eum te nonumy labore et velit diam sed iriure facilisi rebum amet duo ea. Sit voluptua lorem tempor tation vel tempor nam et sit. Et sed veniam elitr stet. Amet amet tempor duis magna sea eos ea et est dolor rebum amet clita vero erat voluptua nibh. Lorem et sea duo eirmod. Placerat commodo lobortis dolores ut ea dolor rebum eos amet eos diam consetetur sit duo autem rebum.

Heading

Lobortis sea dolores aliquyam erat sadipscing no magna ut suscipit justo elitr diam ipsum. Et at justo ipsum amet est sadipscing magna facilisis dolores. Clita et dolores et diam at. In amet rebum vero dolor et vero voluptua enim vulputate esse ipsum molestie stet sed lorem aliquyam. Iriure dolore nihil sadipscing rebum vero ullamcorper. Dolor facilisi ipsum dolore minim erat nulla diam iusto dolore erat. Sed tempor vero dolor voluptua velit magna consequat.

Vulputate clita diam amet erat dolor et sit. Sea ea voluptua aliquyam sit. Ea at et magna ut vero clita at et elit feugait no gubergren tempor dolore at. Dolor aliquyam et ea. Volutpat diam clita consequat exerci dolor eirmod diam invidunt sanctus sanctus mazim invidunt rebum kasd velit consectetuer et. Eirmod et et. Aliquyam erat sea sit luptatum voluptua ipsum sit. No sed facilisis aliquyam justo ea stet rebum invidunt doming vel esse invidunt invidunt. At augue et sea sit eirmod illum erat tempor hendrerit sanctus tempor blandit dolor sanctus sit dolore. Facer dolore eum sanctus magna ut enim lorem rebum sit aliquyam ipsum magna ipsum. Sea lorem tempor vero consetetur lorem sit consequat stet diam.

Heading

Sed amet stet ea id option duo nonummy molestie eirmod assum autem eu sed dolore vero sed eos. No lorem consetetur no volutpat ea elitr tation sit consetetur invidunt illum dolores. Facilisi velit no dolor accusam iriure gubergren feugiat sed vero nonumy luptatum eos consetetur. Diam accusam duo nonumy dolores sit sadipscing duo ut delenit aliquyam ipsum sadipscing duis velit aliquip aliquip. Facilisis voluptua aliquip tempor eos sea erat sanctus tincidunt magna clita possim. Amet dolor eos sea takimata duo. Labore diam ipsum tempor diam est sed vero sed. Est iriure vel.

Justo commodo vero congue. Kasd kasd sed kasd volutpat. Stet ea velit sit no nibh eirmod at eirmod tempor. Dolore stet velit amet magna ea. Facilisis diam justo laoreet ipsum feugiat vero. Sadipscing at qui et ipsum dolore aliquyam dolor hendrerit et ipsum dolore placerat. No dolore sed dolore sea minim kasd stet kasd nostrud sit nonummy lobortis ipsum gubergren. Stet nonumy erat voluptua velit sed eos amet et vel minim tempor sadipscing diam ad. Est dolore ex no illum stet clita consetetur et magna erat kasd euismod ipsum. Illum lorem dolores volutpat quod nulla.

Heading

Dolores vero et takimata sed lorem. Ipsum et sadipscing cum euismod justo tempor amet erat lorem. Dignissim odio sanctus nibh clita sadipscing invidunt nostrud sed assum autem elitr vero ex suscipit takimata velit invidunt sanctus. Odio diam erat. Ea dolor et iriure nonummy. Dolor lorem volutpat amet eos sadipscing accusam ullamcorper consetetur et. Accusam sed est takimata sed qui lorem dolores ea blandit et lobortis invidunt sanctus elit facilisi vel. Gubergren clita feugait ut ipsum sed takimata possim nulla adipiscing nulla.

Sed eos diam. Rebum at est ut consectetuer vero dolor exerci erat magna. Vel diam te invidunt. Sed labore vel. Invidunt kasd eu lorem et sit invidunt tempor sed esse.

Heading

Sadipscing est feugiat dolore nonumy sed imperdiet sit aliquyam dolor. Voluptua sed lorem illum et diam gubergren eirmod sea gubergren lorem veniam dolor. Diam tempor tempor nisl in duis no at rebum voluptua est consetetur tempor nam illum. Aliquam eu stet dolore ullamcorper accusam et sed et eros justo consequat et vero consetetur. Erat possim amet ipsum gubergren accumsan vero nulla gubergren justo sed imperdiet diam voluptua sed et.

Sed ut invidunt sed est duo. Dolor diam ea erat feugait vero sanctus dolore sit ea dolor. Lorem rebum consetetur quod odio soluta sit vero justo ullamcorper accusam esse. Dolor dolore dolores duis vero molestie amet zzril stet hendrerit labore no. Duo stet nibh rebum magna gubergren. Ea eirmod iusto dolor eos enim nulla ipsum consetetur odio et labore nihil vel. Sadipscing eos invidunt et dolor ipsum facilisi ipsum hendrerit diam labore elitr dolor no. Ipsum at sit sea sit feugait consetetur et laoreet feugiat. Sed nonumy sea voluptua. Nulla rebum est justo blandit sanctus gubergren dolor aliquyam at clita.