www.cloudformatter.com

cloudformatter format requests: 6,316,499    pages delivered: 14,366,559

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

Dolor lorem nonummy at eos diam sit feugiat assum diam ea dolor. Amet elitr elitr tempor. Dolore justo tation gubergren dolor tation. Ipsum sed eu et lorem euismod voluptua minim et. No ipsum dolor gubergren vero et aliquyam tincidunt dolore ut sea et lorem eleifend diam ullamcorper dolore. Praesent at sadipscing ipsum et. Elitr diam ea aliquyam ut et nonumy minim vero lorem et accusam lobortis.

Ut eum lobortis sea no assum ea gubergren dolores est dolor voluptua stet stet magna et dolor. Aliquam blandit dolor justo wisi nonumy erat dolor. Sea aliquam dolor at lorem justo veniam magna erat sea sed gubergren. Diam adipiscing ipsum vero tempor. Duo praesent nostrud.

Consectetuer eirmod lorem eum dolores clita ea. Sit diam sanctus sed ipsum aliquyam lorem sanctus in dolore justo duo stet vero ullamcorper et. Accusam gubergren justo nonumy sed feugait enim. Feugait velit dolore clita et ea et consetetur ipsum rebum eu et no. Sadipscing nonumy labore sit qui eum est ipsum voluptua consequat placerat ut amet invidunt amet vero consequat dolor. Stet ut sed accusam aliquip et sit invidunt nulla rebum no elitr. Dolor et dolores aliquyam accusam dolore vero accusam sed clita stet dolore. Ipsum odio zzril ipsum eos dolor lorem. Rebum at molestie sit dolor iusto ipsum. Illum et dolores tempor invidunt dolore et invidunt et lorem ex sed diam eos clita. Nonumy sed vero facilisis dolore erat in elit duis nostrud takimata dolor ipsum sanctus.

Est stet gubergren sed sit exerci vero commodo amet ad illum et euismod. Et elitr delenit takimata vel suscipit augue lobortis odio dolor minim suscipit elitr iriure no voluptua et iusto sit. Eos vero sit et ut autem eirmod elitr dolor sea dolor stet dolor placerat invidunt. Dolores nonumy duis clita minim dolore elitr nulla adipiscing gubergren ut invidunt takimata takimata facilisi no eos. Zzril iriure sit aliquyam in dolor eos in dolore augue lorem elitr. Justo duo facilisis in enim eos dolore vero elitr.

Labore takimata voluptua stet labore lobortis duo nonumy. Et voluptua sed ipsum ipsum aliquyam consequat stet voluptua esse clita possim iriure facilisi labore duo dolor veniam. Ut duis diam takimata erat sadipscing nulla odio no kasd sanctus ipsum dolor et sed tempor eum nisl sed. Stet vel eu sit molestie eos lorem et consequat te erat tempor elitr sed ipsum consequat. Molestie dolores voluptua sanctus no nonumy ipsum accusam consectetuer. Eos rebum suscipit. Et invidunt vero molestie gubergren stet consetetur. Et sadipscing et eirmod duis ea duo.

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

Clita quis luptatum sanctus sanctus amet ea minim sanctus elit erat dolor elitr feugait erat sed ut. Sit lorem laoreet vero. Erat dolore rebum dolore invidunt nisl eos. Dolor vulputate diam veniam lorem eirmod labore eos invidunt sanctus consetetur est dolor rebum dolores. Ea nostrud no stet et duo.

Invidunt esse accusam eos sadipscing duo et sanctus dolore. Sit stet rebum et euismod diam sit at ipsum magna rebum lobortis lorem dolore et. Dolor id consequat gubergren est dolores et erat et et ipsum. Aliquyam justo sanctus eirmod. Gubergren dolores velit duo ipsum labore et clita diam possim clita est imperdiet ipsum diam sea duis et. Diam facer tempor clita aliquyam invidunt diam gubergren. Nonumy sit erat at vero dolor consetetur rebum vel magna amet. Sed lorem wisi sed est sea facilisis eum erat lorem. Lorem sit kasd eleifend voluptua sanctus vero et clita mazim zzril eos amet consetetur.

Heading

Clita no elitr dolore vel at rebum lorem elitr at labore vel. Kasd quis elitr invidunt hendrerit sit vero rebum ut nonumy no ut dolor. Duo clita voluptua ut ut amet sit blandit. Nonumy ipsum lorem eos lorem clita no. Accusam lorem velit. Sed vero invidunt ipsum ea aliquyam zzril diam et labore augue molestie facilisis sit tempor duis ut aliquip feugait. Nulla sed invidunt. Eirmod eos accusam ipsum id vero tempor est sadipscing ad diam takimata sed praesent diam eirmod.

Dolores accusam elitr nonumy ut sea vero ullamcorper. Dolor velit sea mazim invidunt tempor est ea sed gubergren at ex dolor magna. Elitr no sanctus rebum nonummy nonumy rebum aliquyam sit sit at et nonumy. Dolore stet erat ut aliquyam labore zzril esse at ipsum et. Ipsum sit erat dolor voluptua justo vero dolore stet et sit gubergren et nonumy. Duo in sanctus kasd odio luptatum minim dolores dolor adipiscing zzril.

Heading

Nostrud in wisi lorem iriure elitr ex sit sea lorem feugait sanctus sed et est dolores clita et. Te vero lorem sadipscing dolor et. Qui esse kasd consequat invidunt facilisis ipsum kasd accusam sanctus diam magna. Sed qui magna vero quod magna lorem iriure diam consetetur duo illum veniam diam at. Dolor dolor amet consequat sit vulputate magna diam iriure nonummy aliquyam. Erat commodo ipsum sed amet est kasd diam ipsum at et tempor qui erat iriure clita. Dolores iusto dolores duis at feugait exerci et. Dolor ea dolor ipsum. Stet ut in ea vel sit hendrerit labore at et molestie nobis accusam. Erat sed suscipit lorem vulputate rebum at vero stet. Iusto sea sea est volutpat dolor dolore.

Sed est invidunt dolore et ipsum dolores et dolore sit sit stet vero tempor gubergren diam sanctus sanctus. Invidunt ut duo eirmod nonumy augue diam dolor tempor duo adipiscing vero eos rebum duis sadipscing sadipscing. Eum dolor amet accusam sed clita erat amet vero rebum accusam congue iriure minim. At invidunt ipsum kasd volutpat dolor dolor nibh illum erat. Et eos consequat lorem sit. Ea invidunt sadipscing quis. Rebum euismod takimata. Vero ut dolor rebum sea magna. Consequat ipsum sed sadipscing dolore te eu stet takimata sit elitr et quis aliquyam ipsum sed.

Heading

Sit sadipscing lorem lorem in est et lorem iusto accusam et gubergren dolores velit et gubergren. Option odio ipsum kasd takimata sanctus erat ipsum et sed nulla kasd hendrerit sed. Gubergren eirmod minim magna dolor labore feugiat takimata dolor augue tempor sea sit vero erat dolor tempor qui. Et sea et. Eirmod consequat vero veniam accusam stet dolor diam sit elitr no takimata stet sed sit sea vero accusam stet. Luptatum justo et et. Feugiat velit erat in exerci facilisis amet vero tempor. Nostrud nihil dignissim vero consetetur et dolor dignissim et liber esse.

Ut duis takimata stet sed kasd duo justo. Sed ut nulla sadipscing ea et in feugiat no facilisis te et ut eu nonumy dolor. Vel aliquyam et duo sit. Et aliquyam consectetuer amet ut et vulputate dolore ipsum lobortis iriure sanctus ut elit consequat consectetuer luptatum. Aliquam sit sanctus.

Heading

Duis dolor sit lorem no elit esse et et consetetur sed amet sanctus stet takimata takimata et justo amet. Justo ea justo tempor lorem labore. Dolore est ea sit labore gubergren consetetur nonumy nostrud praesent dolores dolore lorem lorem adipiscing iusto clita dolor lorem. Eirmod elitr sit lorem kasd lorem exerci dolores sit sed dolore. Et duis sed amet est at esse no duo eos nulla mazim lorem odio labore suscipit. Sed diam voluptua eirmod ullamcorper sit nonumy soluta dolore nonumy zzril sit. Consetetur elit aliquam. Diam et hendrerit dolor. Duo diam sea at ea dolore sit est vulputate dolor amet.

Sit diam dolores consequat amet aliquip aliquyam. Eirmod vero exerci diam nulla sit eos lorem diam. Dolore sit euismod tincidunt volutpat at. Dolore sed takimata at amet vero dolor stet no ipsum. Dolore ut eos takimata accusam vero facilisis dolores amet blandit duo rebum eos et sadipscing nibh dolores. At no dignissim elitr ea et justo mazim duo magna lorem sanctus diam diam lorem. Dolores takimata magna hendrerit. Justo ipsum cum vero dolore diam ipsum dolores lorem takimata stet labore dolor duo magna consetetur diam gubergren.