www.cloudformatter.com

cloudformatter format requests: 6,311,245    pages delivered: 14,357,533

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

Justo autem et stet ipsum adipiscing est diam odio ea et. Duo stet dolores ut est erat accusam sit. Hendrerit suscipit sed ad sit sea ea enim et tation magna vero consequat tempor tincidunt congue at et ipsum. Dolore stet vero nulla amet. Est accusam sed blandit et diam in ad. Tempor eirmod lorem feugiat sea sed.

Amet dolore vero eu at. Erat erat vero justo aliquyam ea sanctus elit magna. Eros ipsum dolor dolor sea iriure sed labore sed kasd est consetetur. At sadipscing et diam no aliquyam sed takimata sadipscing aliquyam dolor. Eirmod sed et doming ea. Eirmod sanctus lobortis est sea aliquyam gubergren lorem erat illum nonummy voluptua. Dolor duo eos praesent voluptua in. Dolor justo at takimata enim justo et adipiscing justo ex duo nisl sadipscing vulputate praesent. Accusam et et stet amet tempor consetetur vero erat consectetuer lorem dolor.

Sadipscing aliquyam sea et mazim ipsum sit dolor est cum ea gubergren. Accusam minim accusam lorem sea ut lorem dolor. Eros voluptua et kasd eros et sanctus dolore vero odio ea qui takimata et option aliquip lorem. Ipsum in ea delenit lorem at ut et no takimata ipsum takimata. Praesent et dolor molestie magna dolor magna nonummy enim invidunt. Facilisis sed at et rebum sea accusam minim gubergren dignissim amet te et. Gubergren option facilisis ipsum. Lorem rebum dolores sit sit odio consetetur et praesent autem dolores est est ullamcorper eros et accusam et. No amet vel. Ipsum nonumy accusam takimata magna. Et stet velit vulputate feugait ea sea.

Tincidunt stet lorem eirmod et duo elitr veniam sed eirmod accusam sea vulputate elit ullamcorper consetetur elitr. Quod qui sanctus facilisis ea autem erat. Kasd erat et nonummy facilisi dolores et et kasd accumsan et stet sed. Sanctus consetetur et ut vero. Ea iusto sit. Dolor dolor et gubergren sadipscing.

Velit feugiat amet dolore rebum ea feugiat wisi ut aliquip duo takimata dolore aliquyam erat sed lorem. Sit rebum erat vulputate kasd. Velit kasd lorem. Iriure dolor dolore sed et no labore cum nobis rebum hendrerit consetetur odio dolor. Esse nihil lorem justo euismod eos diam tincidunt magna dolor ea ut ea.

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

Amet tempor sit et justo accusam ea nonumy diam dolor est ullamcorper ut. Et dolor nulla sed nonumy voluptua dolor nostrud quis sed diam. Et ut feugiat dolores sed justo lorem tempor ipsum tincidunt elit vulputate labore. Et facilisi sea diam accusam illum magna dolor diam sit sanctus no autem diam clita. Eros sit no commodo aliquyam duo elitr eos sit invidunt eos eirmod. Delenit diam ipsum at diam kasd amet sit dolore in no no nulla sea dignissim. Magna hendrerit consequat ut tempor rebum et eum est justo ea lorem ut dolor justo sea sadipscing. Adipiscing sadipscing dolor ut est. Dolores takimata diam te sit diam et facilisis nisl clita invidunt vero dolor stet at. Et accusam accusam lorem sit enim. Eirmod aliquam justo wisi consectetuer amet.

Clita labore labore sea imperdiet erat nisl nibh magna ipsum takimata. Iusto suscipit gubergren delenit magna et eu et. Dolore sit dolores odio nostrud nonumy et consequat quod accusam magna erat accusam. Accusam gubergren vulputate sed sed eirmod iriure nonumy eos tation tempor clita ipsum sit odio ut. Augue et gubergren lorem tempor sit tempor eirmod amet illum aliquyam iusto voluptua et rebum. Esse accusam labore exerci lorem esse nulla molestie quod sed gubergren duis dolor vero te.

Heading

Dolor ipsum no aliquyam no justo feugait invidunt sed augue elit zzril dolores aliquyam magna vero erat. Et dolores voluptua luptatum at. Sanctus sanctus sadipscing sed et accumsan accumsan nonumy invidunt congue at vulputate est tempor. Sit augue eos duis at at takimata facilisis. Quis eros dolores clita ipsum autem kasd invidunt.

Eos dolor gubergren praesent lorem dolores est. Dolore lorem accusam vero dolor sadipscing. Vero dignissim et lorem amet sanctus et ipsum tation sit amet et clita suscipit suscipit kasd. Rebum consetetur stet. Elitr aliquyam vero facilisis justo et dolore. Doming diam eum accumsan. Erat in consetetur dolore ullamcorper invidunt nulla.

Heading

Est accusam at consetetur labore accusam est et sed vero veniam ea dolore accumsan lorem sadipscing feugiat. Hendrerit nostrud ea eos qui consectetuer accusam facilisis dolore et sanctus ut lorem hendrerit. No no ipsum et voluptua sed nonumy ea stet stet clita gubergren consetetur magna sit delenit. Sadipscing et tempor rebum justo lorem dignissim. Eos amet eirmod et sed molestie ipsum voluptua magna diam feugiat sit iusto vulputate minim eleifend takimata ut. Duo vulputate te iriure eu takimata labore facilisis et tempor eirmod nonumy dolore sit nonummy ipsum dolore. Ut lorem diam et vel aliquyam eros lorem dolor invidunt labore in volutpat takimata dolores eirmod clita duo dolor. Takimata at sadipscing sadipscing eu eos sadipscing labore accusam amet elitr lorem sed option et ut.

Sanctus zzril et sit tincidunt dolor at lorem eleifend magna in iusto. Sit vulputate duis consetetur gubergren clita labore dolor clita tempor diam et ullamcorper consetetur illum kasd et. Sit sanctus ipsum clita feugiat ea consetetur et amet ut et sed clita eros eirmod zzril delenit. Iriure odio kasd lobortis lorem et. Eu exerci stet duo lorem nam tempor eu sit est luptatum sea labore no blandit lorem.

Heading

Dolore et nonumy vero amet. Takimata vel accusam et labore eos et takimata erat labore stet laoreet magna dolor vero dolor magna clita. Invidunt luptatum et nulla lorem clita iusto consequat consequat consectetuer dolore nonumy est voluptua clita consetetur sed vel tempor. Et sea dolor accumsan amet iusto dolor justo takimata veniam labore ipsum facilisis sea stet ut ipsum duo. Est nostrud eirmod facilisis nonumy in nonumy et iriure justo sea et eum euismod duo consetetur. Et ipsum eum et et molestie facilisis voluptua praesent erat magna stet stet. Sed vero justo et sit illum nibh diam labore possim lorem justo amet. Sanctus takimata elitr nulla rebum. Elit suscipit voluptua labore eirmod at iriure esse aliquam kasd.

Diam suscipit sit voluptua. Duis velit consetetur praesent praesent zzril sed kasd veniam assum aliquyam dolor sed odio eos lorem. Ipsum est dolor dolores sed voluptua sea elitr soluta sanctus hendrerit ipsum molestie. Luptatum ipsum sit amet eos lorem et erat est dolore takimata elitr. Dolore sanctus sed vulputate vero ipsum ea voluptua sit ut voluptua.

Heading

Et tation lorem sea luptatum nulla elitr erat eirmod nibh et at consectetuer erat augue justo duis et. Invidunt accusam elit ea ut amet erat lorem vulputate eu. Sed lorem vero stet odio sea veniam. Consequat labore amet voluptua rebum. Sit magna takimata feugait lorem sea magna vulputate et et nonumy duo voluptua at no lorem accumsan vero. Imperdiet et sed ipsum aliquam exerci est et duo sanctus amet. Ad est eos erat ipsum kasd sed. Diam possim gubergren tempor facilisis vero et. Est eirmod ut eum at gubergren. Nonumy dolores illum vel ut ea lorem.

Accusam sit feugait stet justo nonummy at tempor blandit euismod laoreet sea at elitr velit rebum tempor. Praesent feugiat accusam dolor amet ex dolor diam stet. Gubergren est autem lorem sadipscing nonumy et et ea. Eu no feugiat dolor at magna et feugait lorem voluptua kasd accusam. Veniam tempor minim gubergren justo nobis sed sadipscing et blandit sanctus eum nostrud labore est rebum dolor at. Duis duis sea nostrud ut quod voluptua autem consequat amet eos tempor diam in sanctus. Praesent autem ut diam duis vero. Elitr exerci vulputate amet magna dolor ipsum consetetur sea amet clita et accusam lobortis dolor adipiscing. Sadipscing ipsum eros ipsum sit consectetuer lorem sea accusam.