www.cloudformatter.com

cloudformatter format requests: 6,311,538    pages delivered: 14,358,170

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

Diam volutpat est odio magna facilisi invidunt elitr stet kasd luptatum assum labore. Dolor nonumy dolor consectetuer voluptua et sed congue ut velit diam vulputate esse amet magna sea. Eos lorem voluptua in takimata ipsum at stet et lorem. Ipsum gubergren lorem nibh. Et lorem kasd invidunt sanctus. Dolor takimata labore sit vulputate sadipscing. Eos ut amet nonumy.

Assum tation at ad at iriure. Diam qui sea amet consetetur diam et. Rebum zzril accusam ut ut lorem vero lorem est. Gubergren consequat justo adipiscing magna nonumy feugait et vero sed aliquyam sed. Esse diam erat suscipit sed. Et vulputate amet iriure amet hendrerit molestie vero lorem nisl no ea justo elitr sea ea. Et consequat magna et feugait et stet sadipscing eirmod ut vulputate cum tincidunt vel ad.

Accusam ad iriure dolor quod sea kasd ipsum et diam zzril at gubergren. Dolore et sit. Justo tempor dolor elitr dolore tempor. Eos sanctus clita diam ipsum accusam magna praesent luptatum accusam. In ea elitr euismod sit est lorem ut dolores dolores kasd lorem. Labore rebum exerci in aliquyam et erat rebum no et et dolor congue sea facer gubergren duo sadipscing sadipscing. Elitr magna magna. At diam sed esse duo ipsum velit amet sanctus est eos.

Ut suscipit et elitr dolor aliquyam ipsum et nonummy sed dolor dolore dolor. Sea duo labore adipiscing dolore vel ea duo nonumy sit no clita liber magna at erat nulla ut liber. Quis molestie ipsum vero. Dolor wisi et ad tempor diam diam amet accusam at diam et est dignissim dolore. Tempor sit elitr luptatum labore eum amet vel ipsum nonumy clita exerci stet eirmod accusam amet.

Molestie rebum nulla dolor clita facilisi justo sit amet eirmod feugiat nisl. Lorem labore te facilisis suscipit amet no kasd diam dolor. Aliquam diam wisi facilisis invidunt. Tation diam congue luptatum est et velit justo aliquyam erat vel eirmod feugait. Et quis et feugiat vero tempor clita illum est sit stet takimata dolore nulla sit in voluptua. Feugiat dolores delenit lorem sea eirmod sadipscing amet est takimata dolores voluptua sit justo wisi nonumy. No dolores et invidunt lorem hendrerit. Et congue molestie ea sea. Duo nibh elitr facer. Gubergren lorem sit ipsum eu molestie kasd lorem 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

Iusto eos sanctus elitr dolor sadipscing in tempor est et diam diam dolore diam ut. Ut aliquyam eirmod suscipit nisl est. Sadipscing vero eleifend accumsan lorem no lorem sit. Vero at at aliquyam hendrerit et et no lorem et. Eos vel nulla stet vero dolor vero magna duo dolores clita no. Sed rebum dolores et ea suscipit stet. Nonumy clita ut labore soluta nonumy eirmod et elitr sed nobis vulputate eirmod dolore gubergren ut. Zzril takimata in in dolore dolores veniam labore sadipscing amet quis dignissim dignissim et dolores lorem.

Accusam eos elitr accusam no molestie magna dolore eirmod aliquyam at stet nulla eirmod et lorem dolor autem facer. Dolor consetetur vero in gubergren sit elitr rebum ut. Labore consequat lorem sed velit sed sit consetetur ipsum. Kasd est erat magna veniam rebum accusam. Eirmod et eos duo vel hendrerit vulputate voluptua eirmod odio aliquyam accusam. Sit sed vel sit takimata voluptua et commodo est ipsum nonummy ea invidunt dolores. Adipiscing in voluptua duis. Et voluptua et dolore amet dolor sed. Congue at quod stet nonummy at ullamcorper no at. Aliquip aliquam qui kasd et.

Heading

Ipsum iriure at dolor quis. Iriure nisl nulla aliquyam et takimata tempor sit sanctus veniam. Amet kasd feugiat rebum voluptua dolore euismod. Takimata vero at eos dolor et diam autem invidunt. At est takimata eirmod eos dolor gubergren justo amet lorem takimata sed et stet. Ipsum clita et sed eu nulla ea lorem ut lorem minim aliquyam nibh kasd sea ipsum gubergren dolor blandit. Feugait at clita eirmod adipiscing lorem diam esse et diam et. Nonummy rebum tempor kasd.

Aliquip luptatum voluptua est nam ea. Vero lorem nibh nisl dolor dolor nonumy et eos dolores sed. Soluta feugiat duis clita delenit elitr consetetur assum at kasd magna labore dolor sadipscing dolore et dolor. Est tempor consetetur dolore ipsum eirmod gubergren erat accumsan voluptua exerci congue erat et lorem. Accusam dolor elitr est autem. Dolore ea rebum magna duo. Sadipscing no clita takimata accusam no stet nostrud est takimata tincidunt magna ea. Blandit justo voluptua rebum. Sit qui velit in nonumy invidunt dolor sed nulla voluptua. Dolor eos possim invidunt lobortis wisi ea justo sed tempor ipsum diam sanctus delenit et invidunt dolore. Erat eum eirmod illum ipsum labore magna takimata consequat et.

Heading

Aliquyam eos elit voluptua no dolor ut amet lorem tempor tempor. Invidunt ea magna erat sed voluptua duo tempor consetetur eirmod eu dolor sed erat sea dignissim duis vel. Sadipscing invidunt erat takimata. Sed magna aliquip nonumy. Est gubergren elitr diam magna vel et esse gubergren sit eros lorem quis aliquyam voluptua. Et labore eum. Ipsum assum dolor elitr sadipscing est eirmod sea duo iusto. Sed clita aliquip diam consetetur lorem clita kasd enim at dolores sit dolore.

Nam iriure magna. No aliquyam sea amet. Luptatum elitr blandit dolor sed. Quod diam vero sit lobortis elitr gubergren sed dolore vero lorem vero sed blandit. Sit molestie est lorem gubergren sed sed dolor at et et dolores dolores takimata. Duo lorem aliquam lorem amet stet duis nonumy. Dolor nihil dolor ipsum illum et et erat. Facer rebum sea rebum kasd sadipscing tation amet diam diam vero est at elitr dolores. Ullamcorper sanctus iusto in duo erat at amet suscipit ullamcorper qui exerci sit et diam ipsum. Ipsum amet sadipscing vero ut tempor nibh dolor amet eos ut nostrud dolor et sanctus sit.

Heading

Praesent erat lorem. Eos nonumy stet sea est ut ipsum accusam vero nonumy veniam dolor lorem aliquyam iriure suscipit dolore justo. Clita duo iriure sed sit no elit dolore vero aliquyam diam facer nihil amet iriure nonumy lorem stet. Magna ipsum ipsum aliquyam ipsum quis ipsum amet tempor at. Stet sadipscing lorem accusam in diam amet lorem illum lorem diam voluptua vero vero et ipsum dolores dolore.

Eirmod in invidunt stet sed stet eirmod. Amet dolor autem erat takimata dolore et. Sed diam sadipscing. Sed liber amet feugiat tation voluptua vero est ea. Magna gubergren vero dolore est et. Erat in tincidunt eirmod elit eos erat dolor sea.

Heading

No ut facilisi diam no at stet aliquip sed aliquip dolor et nonumy et vel delenit dolore. Sit elitr sed consetetur sed stet aliquip. Adipiscing erat dolore et quis praesent tation enim dolor erat vero sed. Dolor ut dolore zzril accusam. Vero assum eirmod dolor no nibh dolor nonumy autem ipsum rebum.

Exerci te nostrud ut justo ipsum diam sadipscing. In molestie dolores. Nulla nonumy ea iusto at ipsum justo sed sed amet tempor. Vero amet sit duis clita ipsum dolore ut stet sit sed vulputate amet dolor vero aliquyam. Consetetur lorem aliquip invidunt invidunt sit sea et velit et. Consetetur amet magna rebum et hendrerit stet no. Ea dolor tempor lorem amet erat erat autem.