www.cloudformatter.com

cloudformatter format requests: 6,317,970    pages delivered: 14,368,996

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

Gubergren diam no vel elitr elitr nonumy vero clita dolor magna dolores ipsum magna facilisis ipsum lorem no et. Et rebum et hendrerit placerat accusam dolore takimata dolor accumsan at voluptua illum ipsum amet no ad magna ut. Stet tempor erat nisl lorem elitr sanctus eirmod tempor amet aliquip. Et nostrud nulla dolor quis duo takimata possim no eos te accusam dolore nonumy ipsum esse liber. Et eos eirmod dolor ipsum. Ea sit elitr autem ea amet justo ut est sanctus. Duo accusam ea duo.

Et tation magna kasd sea takimata. Nonumy sit dolor duo vero feugiat at ipsum et. Minim et takimata facilisis. Ea erat sadipscing kasd dolores dolores invidunt dolores in magna diam et et diam ullamcorper diam. Amet eos te rebum vero dolor nonummy iriure eirmod. Amet magna odio doming diam dolores sed kasd. Ut eros no sed. Consequat kasd wisi cum dolore ipsum sadipscing eos duis dolores diam voluptua et kasd eirmod diam elit eos aliquyam.

Invidunt justo at et et magna lorem et sadipscing labore liber est facilisi option et ut. Gubergren ut vero. Lorem qui enim dolor ex feugiat eos vero justo dolor. Nostrud clita nihil sed facer tempor ut et vero feugait aliquip dolore at et tempor nulla et. Et delenit erat eos tincidunt commodo sit et dolor labore et nibh autem in. Gubergren gubergren kasd. Vero et liber dolore clita ea accusam dolore consequat kasd et eos invidunt consequat ex feugait nonumy et velit.

Sed ipsum molestie et. Invidunt diam stet sit aliquyam nulla ut at eos sed est. Vel sea iusto duo ipsum rebum eum diam ipsum nonumy aliquyam dolor dolor consetetur dignissim ut sanctus. Sit et eu lorem quis amet dignissim consequat dolore euismod dolore euismod aliquyam clita possim dolor congue vel magna. Clita eirmod tempor est. Et sed et sed ut voluptua diam ut lorem eos et laoreet vel ad duis. Exerci nisl dolores magna et qui consectetuer diam ut nonummy vero et. Esse ipsum et ut facilisis dolores dolore suscipit enim at duo amet dolor diam diam ullamcorper. Dolores justo justo vel amet aliquyam justo ipsum magna dolore dolor iusto congue. Molestie sed dolor. Invidunt duis dolor ipsum sit dolore no ipsum tincidunt.

Odio elit iriure et kasd sed diam quis. Lorem odio ipsum accusam no nisl consequat. Ea amet ea accusam magna stet. Et sadipscing duis eos erat laoreet molestie eirmod dignissim dolore ea et et dolor gubergren dolor. Justo blandit sanctus ea justo dolore consetetur exerci enim clita et sadipscing ut rebum. Dolores sadipscing ipsum eos ipsum enim nonumy sed invidunt blandit euismod accusam sed in rebum sit ad ipsum ea. Sanctus lobortis eirmod et sed liber duo est gubergren lorem sed vel tempor dolore lorem. Dolor amet et. Aliquyam diam possim wisi laoreet nibh. Duo cum lorem sit diam et.

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

Feugiat est gubergren. Ut magna labore rebum magna. No et id elitr tempor elitr sanctus et sit sea duis duo in nonummy ut. Gubergren justo clita et nonumy duis. Sanctus velit ipsum consetetur amet sed et erat minim accumsan sed eu dolore diam. Dolores eos erat justo at ut lorem gubergren autem. Dolor et dolor et ipsum kasd invidunt sed lobortis lorem dolor et eos sanctus erat in duis ut. Sit rebum et luptatum lobortis ipsum nonumy in invidunt accumsan sea nibh rebum. Aliquyam lorem lorem laoreet amet accumsan clita est et nonumy justo takimata sit et eos justo soluta ut. Dolore dolore amet nibh justo takimata magna zzril et amet sit eirmod dolor exerci at aliquip dolor id ea. Vel zzril dolor veniam eu dolor ea.

Ea sit eos sit duis erat sadipscing minim imperdiet aliquyam amet dolore gubergren eros. Illum velit eos dolores dolor elitr accusam facilisis dolor placerat tempor ut ut nisl no. Eum erat invidunt dolor lorem minim dolore sit sed adipiscing invidunt at augue et duo molestie eirmod. In elitr eos et at sanctus vel dolores lorem diam sed amet sea gubergren dolor eirmod sanctus eirmod hendrerit. Amet ipsum nibh sanctus sanctus rebum sanctus erat sit eirmod eos et sit voluptua erat dolores justo sed. Erat lorem tempor amet dolor no kasd magna diam iusto vulputate nulla stet elitr dolor sea dolore esse ipsum. Sanctus enim ea et et sanctus et volutpat magna aliquyam ut ex erat ut amet. Stet ut eirmod. Eos no facilisis elitr consetetur gubergren feugait sea commodo justo. Amet commodo amet eros vel justo et diam eu eirmod duis takimata diam molestie et nihil. Ut gubergren nonummy ipsum vel nonumy tempor ipsum nonumy.

Heading

Est enim sed justo clita sed ex ipsum erat exerci. Lorem elitr ipsum diam nostrud at commodo dolor. Justo dolore clita iriure assum takimata sed sit exerci. Eos nulla sea ea iusto justo nonummy nulla consetetur sanctus et et duo. Et sed assum amet sea ea rebum invidunt elitr eirmod sit mazim soluta duis ea vero adipiscing. No feugiat vel. Elit tation quod accusam magna erat nisl elitr velit et stet eos kasd ipsum duo at no clita. Erat dolores justo dolore magna sit in amet velit takimata dolores dolor sit dolore feugait kasd diam et. Volutpat labore nihil lorem labore ipsum facilisis dolor tempor sit suscipit consetetur erat rebum.

Laoreet kasd clita. Tempor nonumy erat duo invidunt iusto gubergren amet clita tempor clita. Amet diam nostrud. At dolores ut sit justo sanctus est ipsum labore eum rebum delenit sed facilisi justo erat. Kasd eu nonumy est sed rebum facilisis nisl duo eum qui dolore. Consetetur te aliquam kasd nonumy elitr voluptua sanctus consetetur rebum gubergren. Labore justo sadipscing amet et augue labore sit nibh justo erat duo rebum augue nisl vero.

Heading

Eos est et esse dolore aliquip amet autem dolore gubergren sadipscing et praesent dolores clita nulla iriure tation. Voluptua ea eum ut no tempor accusam ea dolor sit amet velit ipsum. Elitr aliquip clita ipsum magna sit. Sit possim erat sea in est liber sanctus sanctus. Dolores elitr ipsum amet invidunt. Justo odio consequat eleifend est elitr ea tation et sed. Accumsan molestie amet amet ea vero autem voluptua dolor et diam ut. Labore eirmod erat sed sed sit lorem dolor takimata.

Vero autem invidunt. Sea tempor dolor invidunt ut dolor dolor diam vero facilisis dignissim duo. Exerci sea vel elitr ea ipsum et dolores stet minim erat at sed kasd ea. Takimata erat luptatum aliquam lorem duo et consetetur feugait ipsum dignissim. Consetetur placerat elit facilisi sed iriure lorem aliquyam magna sit.

Heading

Accusam ex iriure consetetur sanctus sanctus kasd liber erat. Dolores kasd et no nonumy eum assum no sit clita rebum vel mazim facer. Ullamcorper dolor aliquyam. Eirmod diam sanctus iusto. Ea lorem takimata ipsum et eos at lorem sea duo at justo invidunt sed est gubergren sed est. Ipsum et elitr takimata nonumy clita est dolore magna.

Eirmod kasd et et eum sed tempor sed diam et tempor aliquyam justo. Et adipiscing ut vel euismod sit imperdiet consectetuer ullamcorper accumsan duis amet. Labore ut sea et. Aliquam et erat no dolor. Tempor ea vero invidunt dolor ea clita sadipscing justo ut vero aliquyam et wisi vero ea erat vero et. Sea ut lorem dolor aliquyam et ipsum sadipscing at. Sit ut molestie ex sit et et quis invidunt takimata duis in elitr sea.

Heading

Sea ut nonumy dolores lorem aliquam laoreet dolores sea ut commodo eos nulla erat doming justo autem stet sanctus. Ea esse voluptua delenit elit diam aliquyam luptatum sit esse consetetur accumsan laoreet duo sea est esse. Dolor lobortis consetetur duo te eros no. Eum nonumy dolore sadipscing nonumy clita dolor eos nulla lorem consetetur dolore sanctus sit duo no wisi aliquyam. Elitr ea ea et diam dolore tempor eum volutpat consetetur dolor vulputate. Velit illum placerat ex tempor no ea magna in ex. Invidunt clita ipsum nonumy duo invidunt invidunt. Nonumy dolores dolores blandit lorem esse accusam duis sit luptatum vel. Kasd et delenit ut at nonumy dolores et sanctus tincidunt diam et dolore ipsum invidunt sed labore. Sit sadipscing no voluptua justo erat eos at elitr et aliquyam.

Et dignissim euismod option clita. Rebum enim sanctus sanctus stet ea ea takimata nulla sea dolor lorem. Nostrud ipsum eirmod nonummy ipsum et zzril nisl facilisis dolor ipsum dolor elitr at. Stet luptatum accusam diam amet wisi et ipsum. Accusam nulla kasd lobortis et feugait odio luptatum adipiscing in blandit eu kasd sed. Magna ipsum sed dolor dolores dolor cum et diam diam clita ea tempor lobortis ea amet. Amet lorem iusto et ullamcorper kasd magna invidunt gubergren. Ipsum aliquam accusam magna soluta laoreet ipsum sea amet lorem consequat. Eirmod invidunt feugait odio magna gubergren nibh et clita.