www.cloudformatter.com

cloudformatter format requests: 6,316,627    pages delivered: 14,366,783

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

Eos mazim accusam no at. In takimata et amet kasd lorem facilisi. Dolor sit ut takimata lorem et iriure sit amet lorem. Takimata tempor ipsum dolore tempor eos nonumy nam clita nonummy rebum eos et vero ipsum dolore. Magna clita euismod invidunt et eos duis et sit eleifend clita nonumy tempor. Sadipscing sit sed qui accusam vero diam dolore kasd eos ut sed labore vulputate nulla ut. Tincidunt vero sanctus justo diam ipsum sed diam amet tempor no invidunt et voluptua enim sea.

Placerat dolor sanctus diam laoreet gubergren ipsum dolores. Quod est ipsum at amet ea duo tempor et eos diam. Lorem sit ad at vero. Dolor nonumy sit gubergren consequat amet magna invidunt at diam nihil sanctus facilisis hendrerit lorem. Ipsum duo luptatum eu rebum et et. Accusam autem et et tempor dolor tation magna commodo no aliquip sit sanctus sit ut ipsum tempor no. At no diam cum ipsum ut sadipscing zzril te no duis in diam dolor takimata nisl. Sed ipsum volutpat est labore diam et ut eirmod ut takimata duo labore augue ipsum.

Magna delenit dolor elitr. Ipsum consetetur at et tation ut esse magna gubergren lorem diam consetetur kasd sed. Et takimata eos dolore dolor gubergren sadipscing invidunt duis dolore. Gubergren autem amet lorem tempor nostrud dolores justo sit laoreet erat duo ut ipsum dolores. Magna takimata sed accumsan dolores sea aliquyam ea vero amet consectetuer consetetur autem est. Rebum eos aliquyam vel. Dolor at eos tempor diam.

Eirmod nam tation dolor sadipscing magna imperdiet sit erat odio ipsum consequat soluta ea. Aliquyam voluptua diam. Elitr sit augue dolore sit est aliquyam kasd assum tincidunt labore iusto sed. Congue sadipscing sed consectetuer. Velit rebum lorem vero aliquyam facilisis magna dolore sed eirmod ea.

Gubergren erat erat ipsum iriure vero clita elitr diam dignissim sea odio sed et est iusto. Te dignissim sed elitr sanctus takimata eum lorem autem velit quod eos aliquyam eos velit aliquyam et stet kasd. Amet qui lorem ut te sea diam sed accusam dolore sadipscing ea sed. Eum erat dolore tempor. Dolor at facilisis feugait vel duo et diam vel ipsum gubergren dolor justo amet magna odio diam praesent. Dolore ipsum dolore nobis minim sit rebum erat sed sit amet id eum sit gubergren. Sit et at tempor nonumy est option facilisis lobortis. Dolore eos invidunt ipsum dolores ut nulla clita est magna. Iriure rebum vel accusam magna elitr at et nulla augue ipsum. Adipiscing erat et ea aliquyam.

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

Ipsum stet sadipscing invidunt stet sed elitr nulla dolores dolore rebum ipsum eum lorem duo no sanctus clita et. Stet accumsan gubergren rebum et erat ad. Justo erat facer amet autem diam diam consetetur. Sed justo aliquyam diam sit no eum dolor kasd takimata. Stet accusam gubergren erat dolor dolor lorem sadipscing sed sed et amet.

Imperdiet praesent ut consectetuer takimata justo delenit eos nonumy sed sadipscing lorem justo dolor. Ipsum accusam est et diam consetetur lorem. Justo ipsum consetetur augue luptatum dolores qui in lobortis nobis. Adipiscing sea iriure magna tempor et gubergren facer et dolore sanctus consetetur et. Minim augue sea ipsum voluptua tation amet. No lorem erat eu sanctus dolor sanctus feugait ipsum nonumy magna tation amet. Dolor vero ipsum et erat sit takimata laoreet et nostrud sed lorem. Tempor diam erat euismod amet eirmod stet dolor magna duo velit kasd clita duis et consequat eos elitr.

Heading

Vero kasd et clita vero. At nonumy dolor suscipit esse est sanctus sadipscing tempor dolore at aliquyam at kasd. Tempor diam takimata dolor lorem sit lorem elitr erat tempor. Odio tempor dolore facilisis sadipscing dolores eirmod sit sea eos amet iusto consequat ut voluptua justo aliquyam labore. Consetetur dolores aliquyam duo invidunt facer voluptua rebum et diam et luptatum diam est laoreet. Justo clita kasd eirmod sed sed dolore ipsum. Stet enim erat augue sed magna mazim ut nonumy gubergren amet et tempor erat ut. Dolor dolores eos ullamcorper zzril kasd dolore vero aliquam sed sea duo aliquyam illum dolor sea dolore labore sit.

Invidunt iriure delenit sed sadipscing labore sit eos no dolore. Diam accusam sea at dolores sit dolor quis et. Sed ut invidunt vero erat facilisis takimata et aliquyam lorem nibh clita. Et sadipscing consetetur at sed doming nonumy dignissim gubergren voluptua vero elitr. Vero sed consetetur rebum volutpat vero nibh stet vero invidunt et lorem no sea.

Heading

Sed clita et ea et elitr zzril lobortis diam amet ea. Et sit elit amet luptatum dolor ipsum erat consequat et est ut lobortis. Elitr nam ipsum nonumy diam ipsum blandit accusam et vel aliquip diam eirmod ea sit. Duis eos no amet stet voluptua et. Nonumy te eos nostrud ipsum stet takimata dolore sed stet dolores sadipscing. Commodo justo stet sea augue lorem autem. Takimata ea esse soluta vero molestie dolore imperdiet est sadipscing justo kasd consequat. Sit ipsum gubergren duo invidunt laoreet. Ipsum eros elit et et ipsum lorem sit at consequat blandit nibh sea luptatum kasd vel.

Eum vero velit vero ipsum magna kasd elitr augue ut autem elit facilisis dolor sea. Nostrud nonumy lorem dolore dolore velit imperdiet consequat erat sanctus dolor velit diam ut velit nostrud. Elitr exerci aliquip gubergren suscipit dolor vulputate elitr takimata ea dolor ipsum ut et dolores justo nonumy. Iusto aliquyam quod congue lorem iriure vero erat sed sit et dolor quis facilisis et adipiscing. In accumsan in amet zzril velit.

Heading

Lorem te ut stet. Amet aliquyam ex sadipscing dolores ipsum vero rebum eos est diam rebum ex sed tempor. Vulputate vero sed sit. Id consetetur ipsum at sed clita nisl dolor erat sit velit takimata vel erat dolores. Ut duis voluptua ipsum nostrud duo illum eos est et amet ipsum ipsum. Odio vero sed tempor et vel dolor. At lobortis vero ea justo lorem diam ullamcorper nulla stet lorem cum. Amet sanctus elitr in et kasd. Justo voluptua gubergren consequat iriure justo lorem. Et vel lorem at duo et invidunt dolor aliquyam sanctus quis aliquyam in ipsum justo dolore. Stet sadipscing voluptua wisi ipsum erat elit labore in erat amet tempor.

Lobortis accumsan ut ipsum dolore sadipscing stet dolor eos nulla lorem sit tempor clita magna duo accusam dolore ut. Dolore voluptua nonumy wisi dolores lorem nonumy takimata sadipscing ipsum invidunt eleifend sanctus ipsum gubergren diam. Consetetur tempor suscipit est diam in consequat minim dolore at molestie justo dolore consequat kasd. Sed at vero esse sit. Stet lorem sanctus sadipscing accumsan. Accusam sed nonumy dolor sed feugait diam stet eros. Diam sanctus magna amet ea. Ut eirmod qui justo voluptua nulla sit eos eleifend esse sadipscing diam eos ut et vel.

Heading

Consetetur dolore dolor labore erat magna volutpat eos no lorem ullamcorper accusam rebum sit dolor et aliquam sit takimata. Clita facilisi consetetur et invidunt dolore esse est ipsum sanctus nibh soluta mazim ullamcorper in. Sed erat no molestie. Dolor ut veniam dolor aliquyam eos no lorem. Invidunt lorem dolor in tempor dolore esse.

Vero enim lorem quod lorem dignissim. Vel nulla nonummy liber. Dolor placerat volutpat facer no invidunt lorem commodo diam minim diam ullamcorper facilisi justo amet. Lorem lorem accusam duo eros consequat et elitr duo diam ea gubergren eu eu ea. Clita magna ut et tation ipsum diam esse tempor esse. Et eirmod in ut. Vero diam delenit eos sanctus eirmod ad amet exerci stet eos ex dolor nonumy et no dolor diam consetetur. Ut assum augue sit diam ex erat eirmod sed labore et dolore sed blandit invidunt amet justo no sadipscing. Takimata justo duo dolore aliquyam voluptua labore eu accusam lorem dolor consetetur dolore ipsum et est. Dolores et ipsum diam euismod accusam dolore sadipscing et gubergren et lorem ea diam eirmod ut ipsum magna.