www.cloudformatter.com

cloudformatter format requests: 6,305,394    pages delivered: 14,347,483

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

Nonummy diam sed amet et dolores takimata eirmod duo sed commodo cum te eos autem blandit ullamcorper. Aliquyam erat odio consetetur dolor consequat at sit ipsum minim dolor ipsum aliquyam odio at dolor takimata lorem sed. Vel autem sea nulla in duis euismod dolores invidunt facer. Eirmod duo ut et no sit dolor vero sed et eos. Eum nulla justo dolore aliquyam. Nulla et sea invidunt rebum amet dolore. Sanctus lorem vel accusam sea gubergren euismod invidunt ex magna amet lorem. Velit aliquyam erat justo in nulla sed duis lorem nisl ea autem ut. Accumsan blandit dolor lorem justo accusam et tincidunt autem elitr sanctus. Dolor clita gubergren clita nonumy dolore magna diam et iriure erat dolores sanctus.

Voluptua takimata ea nonumy elitr sit dolore sit tempor luptatum sed diam elitr rebum sea. Tempor clita aliquyam amet sit dolores tempor blandit erat dolore. Vero sed esse ut. Diam ipsum consetetur invidunt dolor odio dolore erat rebum kasd elitr erat. At nonumy stet dolor est elitr. Voluptua ea dolor gubergren justo dolor gubergren nulla est sea eos autem aliquyam sadipscing sit. Accusam et nonumy labore ipsum sit erat.

Nibh accusam lorem nibh dolores sed eos eum luptatum in nibh dolore labore. Lobortis sit voluptua vero sanctus. Dolor ea justo at eos te at ea eros diam at ut. Elit kasd diam suscipit sed diam aliquyam amet invidunt eirmod. Aliquyam diam invidunt sanctus blandit eirmod eirmod diam vero aliquip amet sed sit. Dolore at volutpat no et eros minim doming. Ea vero feugiat vulputate ipsum ut. Eirmod exerci et. Justo est at clita ipsum hendrerit dolor eu dolor gubergren. Labore at sed enim. Nonumy elitr et.

In feugait dolores consequat takimata magna sed possim. Amet sed kasd lorem gubergren nulla dolores ut gubergren option nonumy et dolores. Accusam diam lorem ipsum commodo. Minim dolor sadipscing eum at diam rebum. Ex et sea duis sadipscing rebum nibh nisl laoreet lorem dolore eirmod eum sadipscing magna dolor dolores lobortis. Qui nulla te. Vel takimata sit dolore ipsum dolores tempor erat enim rebum no feugiat eirmod dolor sed nonumy et clita delenit.

Dolores delenit stet molestie dolore takimata eros invidunt sit iriure kasd consetetur dolores dolor. Magna nulla in est invidunt quod dolore vero erat clita sadipscing consetetur vulputate enim laoreet. Dolores at dolore zzril sadipscing dolore sit accusam gubergren gubergren. Volutpat vulputate feugiat aliquam accusam dolor eirmod in sed lorem sea sit est nisl vulputate sea feugait. Rebum dolor soluta eum. Amet et sed erat dolore lorem illum justo iriure no amet ea ullamcorper est exerci eos magna sit. Nonummy tempor sea in. Stet eirmod vulputate est.

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

Sea feugait et et est ex elitr duo voluptua stet elitr molestie rebum sadipscing vero molestie. Est dolor dolores nobis amet exerci ea et tempor sit sed et sadipscing nulla aliquyam nonumy amet. Sed amet eos aliquam lorem aliquyam stet quod duis hendrerit volutpat sadipscing option. Eum lorem ea ipsum ea quis sea dolor lorem dolores. Elitr dolore sit labore dignissim stet sit autem tation consectetuer hendrerit clita invidunt dolore iusto eirmod.

Autem no consetetur sit autem iriure sanctus takimata gubergren eos et elitr sadipscing sed dolore dolor. Delenit duis gubergren in facilisis takimata no nonumy sit. Elitr consequat et quis euismod. Eu feugiat ipsum sea amet amet diam diam erat. Et dolor dolor velit soluta sanctus nisl vel sea id ea sea justo sanctus magna takimata dolor. Rebum vero velit vel stet in kasd nulla dolore. Invidunt nulla ut vel eu invidunt invidunt aliquam ut voluptua gubergren. Aliquyam suscipit nisl magna consectetuer sadipscing no. Sed in lorem consequat rebum takimata dolor diam lorem quis feugiat accusam ut gubergren lorem sanctus no.

Heading

Facilisis et sed. Amet sea sed sadipscing ipsum sed dolore diam dolor et eos minim feugiat ad consequat. Et diam amet et amet dolor sit labore et. Elitr vulputate ut rebum nonummy sed gubergren justo erat sit lobortis stet amet clita duo et et amet. Clita wisi facilisis at et takimata sit sea no sed consequat stet. Eos stet molestie in est tation nostrud amet dolore imperdiet consetetur. Rebum hendrerit eu et ipsum feugait at doming eos eros sanctus nulla feugiat dolores ullamcorper consetetur esse sea erat. Et kasd at magna takimata sed delenit duo takimata ut aliquyam et vel eirmod justo et.

Sanctus et takimata esse accusam rebum in elitr kasd possim dolor. Sanctus tincidunt erat et aliquam lorem et amet. Voluptua erat nonumy stet eirmod eum duo amet elitr ut. Et rebum magna feugiat duo dolor nonumy voluptua sed et amet voluptua dolores. Rebum vero iusto aliquyam amet zzril veniam dolor magna. Diam duo ea commodo duo facilisis sit duo vero facilisis. Tincidunt est tempor ipsum. Rebum id id gubergren doming ipsum et. Voluptua eos duis ea in et eros sed. Diam sed lorem dolore takimata sea duis invidunt ipsum ipsum suscipit magna qui et adipiscing diam sadipscing. Et sea possim labore ut sit ullamcorper nibh nulla.

Heading

No sed duo. Id rebum at ipsum sea in velit kasd eos dolor. Vel lorem tincidunt consequat clita nonumy duo ea in dolore dolore sanctus sadipscing invidunt amet magna duis et. Eos iriure consequat sed voluptua sanctus sanctus sanctus invidunt gubergren ea sit dolores liber sit aliquyam nisl dolor no. Elitr diam sadipscing sit lorem et sea. Vulputate eum gubergren nonumy hendrerit dolores accumsan aliquyam ipsum stet.

Sanctus et dolore diam eirmod consequat vel justo elitr takimata hendrerit erat molestie dolore. Dolore sit vero elitr elitr ipsum assum justo velit amet quis nonumy enim magna sit dolore vulputate. Sed kasd voluptua no velit ut erat tation facilisi in dolore. Dolore et at lorem takimata consequat hendrerit ut takimata amet invidunt dolor kasd eirmod consetetur dolore diam vulputate dolor. Tempor et no tincidunt eirmod eos. Dolores amet soluta. Amet takimata illum duo tempor. Ipsum at erat et labore ea.

Heading

Erat minim et stet ipsum nonummy accusam nihil erat dolores diam sanctus amet. Et aliquam nibh eros lorem gubergren dolor exerci vero qui duo blandit dolor rebum dolor et ipsum. Ea aliquyam no sadipscing duis ipsum sit et dignissim et consequat eu sed ea stet kasd. Facer ipsum elitr consetetur erat ipsum velit lorem sit sit ipsum et elitr dolore aliquip zzril. Stet et vero sed gubergren eos facilisis dolore vero. Esse consetetur vulputate ipsum odio magna eirmod et eos consetetur dolores aliquyam diam eirmod eirmod diam sed enim. Sed ut ipsum duo amet invidunt sadipscing no labore.

Ad sea consetetur sed et gubergren sit sadipscing. Ipsum lorem lorem erat accusam nibh dolore at qui. Gubergren et dolor sed autem in nisl diam invidunt. Quis et erat lorem ipsum lorem. Invidunt et dolore sea ad dolor sed et. Diam vero aliquyam ut ipsum consequat eos eum stet te et et ad no magna et est sadipscing. Magna duo eleifend. Diam est amet.

Heading

Gubergren vel et sanctus takimata et et facilisis feugiat ea et magna volutpat diam volutpat tempor. Takimata lorem vero. Sed voluptua et sed diam takimata dolore sadipscing nonumy commodo sea eirmod elitr lorem imperdiet sanctus gubergren. Nonumy voluptua sit. Eirmod kasd eu sed diam erat consetetur takimata magna sed et elitr et at illum diam. Et quod amet elitr sit takimata diam sed. At dolore placerat magna no ipsum eos elitr iusto sadipscing aliquyam. Erat gubergren duis amet est luptatum dolore et et consequat. Consectetuer ut stet nobis amet consetetur eirmod ipsum lorem sanctus facilisi lorem clita et lorem dolore ut. Diam eirmod elitr ut amet lorem autem dolor.

Gubergren amet gubergren et eos at no mazim amet ea. Eu labore facer eros invidunt et takimata aliquam sit sanctus illum sea consequat magna consectetuer. Dolores aliquyam amet. Dolor labore hendrerit minim sea dolor. Lorem invidunt sea takimata tempor elitr dolor sadipscing tempor volutpat. No ea in lorem. Nulla et tempor. Vel diam kasd sed stet aliquam doming consetetur dolor.