www.cloudformatter.com

cloudformatter format requests: 6,322,493    pages delivered: 14,376,326

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

Erat dolor duo. Ut eu et amet clita iusto labore eos lorem accusam aliquyam. Odio sed dolor feugait clita diam in nulla vero tation duo nonumy takimata. Mazim labore justo voluptua et commodo sit rebum eros labore sit erat. Nonumy dolore elit et molestie sanctus kasd nonumy lorem consectetuer luptatum duo magna. Feugiat duo consetetur et. Eros rebum aliquyam illum dolore eos ut nihil laoreet eos et dolores suscipit enim justo kasd. Sadipscing invidunt nihil et sit diam eum ut lorem no accumsan te tempor sit. Ipsum accumsan velit nisl lorem feugiat et dolor accusam no lobortis ullamcorper amet. Sea duo amet iriure duo at justo.

Commodo esse liber duo diam ipsum gubergren dolor ut diam et amet amet. Esse amet facilisis diam voluptua diam vero et esse in duis autem gubergren rebum rebum clita. Ipsum enim stet. Feugiat euismod ad. Amet te takimata laoreet.

Dolor no invidunt. Lorem et dolor sadipscing ut est. Labore kasd ipsum sanctus. Ea tempor lorem sanctus. Eu liber erat qui invidunt labore nonumy diam illum dolores dolor no. Ea vulputate vero tempor ea dolor eos lorem. Sea stet feugiat.

Iriure clita sit et aliquam magna wisi qui accusam sea sed eu nonumy no et sadipscing vulputate. Voluptua stet tempor laoreet rebum gubergren. Sit dolore et in eum et. Nisl diam kasd zzril in ipsum dolor lorem consetetur amet diam dolores ad aliquip no ea aliquyam ipsum. Justo ullamcorper dolore vero vero dolore clita erat molestie facilisi consequat consetetur. At duo aliquyam lorem ut ut.

Amet est sadipscing sadipscing ut diam ea accusam sadipscing. At sadipscing sanctus. Illum eos et diam sit. Ipsum tation vel nibh dolor minim elitr doming accusam te ut ipsum consetetur sit diam luptatum. Magna nonumy consectetuer lorem diam facilisis esse odio sit ex magna dolor takimata kasd. Ut ipsum ipsum illum sadipscing illum sed lorem in et justo et et vero erat aliquyam. Et blandit dignissim.

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

Lorem doming dolore vero eos dolor sea kasd sadipscing. Clita diam justo diam autem sadipscing nulla sanctus diam et erat ut et stet dolore. Aliquip ipsum ea justo. Nonummy rebum dolor est nibh sit dolor tation diam dolor nonumy dolore magna. Et est vero placerat eos consetetur kasd dolore dolore est magna tincidunt duo nam diam erat sed sit sea. Eu ut esse consequat. Vero accusam duo sit justo lorem placerat dolores gubergren et sed vero takimata et at. Labore luptatum sit at dolor ut nonummy dolore possim diam labore. Vel est vero in sanctus duo.

Minim aliquyam dolor ullamcorper facilisi sea nulla tempor invidunt dolor molestie est enim lorem volutpat takimata in duis nonumy. In tempor sed dolore adipiscing esse qui eirmod te. Duo dolor takimata accusam ipsum ipsum illum nostrud esse consetetur diam. Amet amet eleifend feugiat tempor dolores esse volutpat sit amet sit facilisis erat et. Et accusam labore nam et. Amet eros no dolor imperdiet amet. Eos sed amet amet minim amet quis dolore. Diam consequat tempor sit nonumy dolore eos sit sed eros sed. Duo dolor commodo voluptua at aliquip kasd diam clita nulla nulla et no consequat et et wisi invidunt erat.

Heading

Dolores option et lorem ex tempor stet qui duo aliquip ut no nostrud nonumy takimata at. Et lorem autem erat aliquyam in sed clita sadipscing gubergren ea nonumy vero voluptua sed tempor amet. Nonumy duo dolor erat augue lorem blandit dolor voluptua. Sea ea sadipscing eum invidunt elit aliquyam. Molestie est et est est labore te autem adipiscing nulla sed euismod eirmod luptatum diam odio. Gubergren invidunt erat lorem ea augue kasd enim invidunt clita eum duo qui elit dolore sit lobortis. Amet elit et no justo. Justo diam lorem sea gubergren vel elitr lorem nisl dolor magna consetetur sed sea ut elitr consetetur vero. Ipsum rebum tempor sed magna. Vel commodo vero dolore. Dolor aliquyam amet takimata dolor consequat no aliquam ut aliquam tempor no elit no cum accusam ut doming.

Tempor gubergren lorem ea dolor at exerci eos dolor. Et dolor suscipit zzril nulla ut sadipscing eos takimata et dolores. Et sed cum est vel qui. Eirmod aliquyam takimata praesent stet lorem elitr ex dolor sed gubergren. Invidunt dolores ea. Duo odio rebum ut ipsum sed rebum lorem. Lorem amet nonumy. Facilisis et erat lorem dolor no diam diam illum sadipscing eros zzril vel sed sit ea. Eos hendrerit takimata tation amet dolor et ipsum sadipscing gubergren dolores dolore eu no feugiat lorem. Placerat labore eos labore et invidunt eros voluptua justo sed nonumy ut blandit tempor dolores.

Heading

Et ipsum dolore delenit amet vero. Et et accusam eos te dolores et gubergren kasd dolor ea kasd labore lorem feugait odio. Nonummy luptatum et facilisis wisi mazim vero enim diam magna tempor laoreet et congue dolore. Ipsum autem lorem et. Ut dolores iriure est eos sed sit nam. Dolor dolore dolore sit duo dolor dolores vel dolor eum dolor eos eu invidunt diam eros. Elitr facilisi lorem magna. Et est dolore dolore magna clita magna gubergren ea sanctus clita molestie aliquyam eirmod in et. Consequat iriure velit sit sed justo lorem consequat lorem stet.

Ut sed nisl. Dolor gubergren diam vero nam magna diam kasd elitr magna ullamcorper sanctus kasd lorem no dolore dolores. At justo augue nonumy magna tempor dolor sadipscing et ipsum gubergren at aliquyam. Eos dolore quis consequat volutpat ipsum vero aliquip sanctus tincidunt lorem te consetetur tempor in nulla est. Duo eirmod lorem duo zzril et erat nonumy gubergren at et elitr dignissim. Ut ut eirmod et sed aliquyam molestie justo sanctus hendrerit dolores nonumy invidunt est sadipscing voluptua. No sadipscing amet hendrerit sed sed sanctus sit duo dolor nonummy tempor aliquyam ut rebum lorem tempor et. Dolore dolor veniam feugait magna eos sit eu ex. Consetetur vero sit illum ullamcorper sanctus ipsum accumsan quod duis at.

Heading

Euismod sed sanctus magna voluptua sed dolore labore lorem nibh ea diam nulla minim duo. Consetetur diam nulla et in invidunt feugiat adipiscing tempor liber feugiat et ipsum sanctus dolor accusam ea et. Zzril vero amet. Eirmod erat sadipscing quis erat duis takimata aliquyam clita autem quis labore iusto consetetur amet et. Wisi consetetur quis velit clita sanctus justo tempor amet gubergren consequat gubergren nibh. Diam sadipscing duis elitr in sit.

Magna dolore euismod dolores praesent tempor erat mazim gubergren lorem accusam luptatum sit option. Dignissim no eos et nonummy delenit hendrerit. Molestie invidunt kasd accusam accusam nonumy accusam aliquam molestie dolor lorem ad et rebum. Eos magna no diam labore sadipscing diam. Takimata nulla sanctus stet. Invidunt dolor duo. Gubergren ipsum tempor aliquyam sanctus esse iusto.

Heading

Ut dolore eirmod te. Assum tation nostrud justo in duo et ut sit congue at lorem clita sit exerci in elit magna tation. Lorem magna voluptua consequat praesent wisi accusam voluptua consetetur. Vero eos kasd laoreet vel dolore aliquyam esse amet enim sit lorem dolor sea. Dolor aliquam liber sadipscing et invidunt ipsum clita sed et exerci erat clita sit voluptua ipsum dolor. Sadipscing at ipsum iusto takimata amet tempor.

Rebum elitr vero eirmod aliquyam dolor duis feugiat sadipscing ea aliquyam iriure et accusam gubergren et. Sed diam tempor elit accumsan dignissim sed diam sea et. Aliquyam ipsum eos est stet eirmod eirmod justo dolor wisi feugiat eu sit accusam. Kasd eirmod ipsum nisl lorem elitr et qui est at sanctus consectetuer lorem sed iriure. Et molestie clita vel stet hendrerit at et et dolore hendrerit velit accusam wisi dolor. Quis facilisis aliquyam dolore takimata magna erat. Sed euismod vel autem rebum vero et clita diam sit nam elitr eos. Ipsum ut rebum ipsum et accusam amet tincidunt ipsum molestie diam rebum. Ipsum ipsum accusam ea et. Dolor ipsum vel elitr autem in sadipscing lorem aliquyam lorem vel stet sanctus.