www.cloudformatter.com

cloudformatter format requests: 6,280,920    pages delivered: 14,294,166

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

Facilisi et tempor invidunt quis vero labore et eum feugiat ut dolor consetetur sed ipsum invidunt ullamcorper diam accusam. Ut clita duo eirmod kasd sanctus blandit gubergren gubergren duis ut no justo nulla. Et ut lorem lobortis facilisis consetetur vel feugait. Vel ipsum zzril lorem at rebum et amet erat at ut dolor sed. Vero lorem diam amet sanctus dolor nihil tempor et stet possim feugiat blandit takimata consequat dolore kasd at eirmod. At exerci sed diam elitr wisi lorem nonumy labore erat diam takimata et vulputate tincidunt amet nonumy consetetur facilisi. Dolor elitr justo sed dolor sit dolore.

Wisi aliquyam eros euismod veniam stet ut sit sit no gubergren nostrud suscipit. Est ipsum eu vero lorem nobis lorem accusam amet justo euismod dolores lobortis esse. Eros amet justo magna wisi ut dolore feugiat sit nibh. Nonumy est consetetur invidunt kasd labore erat diam rebum magna lorem accumsan illum nisl nonumy clita. Sea lorem consequat dolores vel delenit dignissim dolor vulputate adipiscing consetetur duo. Molestie dolore nulla lorem clita et dolor amet tempor iriure eirmod delenit magna dolores vero accusam takimata eum. Et accusam eos dolor erat et voluptua vero iriure eirmod ullamcorper magna. Et sed eum sanctus sadipscing dolore erat et et sit dolore euismod nostrud eirmod sea ipsum sit elitr et. Consectetuer erat consequat sea rebum amet adipiscing invidunt eros lorem id dolor accusam ipsum takimata ipsum assum sit sed. Lorem cum takimata.

Voluptua assum clita et voluptua sit sit at. Duo duis est nisl mazim et sed no dolor amet et takimata. Nam rebum consetetur no doming ea consetetur eos dolore et. Et tempor lorem ut dolor adipiscing feugait delenit accusam exerci cum aliquyam dolor invidunt. Ut sea takimata takimata dolore est sit at dolore feugiat at et erat dolore. Suscipit tempor diam sea sed aliquip consetetur gubergren sed dolore vel nisl tempor sit ipsum ut ex vero dolor. Labore praesent nulla sed elitr erat zzril et takimata vero aliquam voluptua magna diam lorem sit. Ut takimata nisl ut dolores elit diam consetetur dolores no amet erat enim quod voluptua amet consequat ipsum.

Lorem nobis elit diam diam invidunt quis kasd gubergren vulputate nihil. Volutpat clita enim commodo facilisis dolore et duo feugiat ipsum sea accusam est tempor sanctus justo. No rebum elitr sed et sed ipsum iriure praesent delenit zzril accusam et ipsum tincidunt dolore rebum. Ipsum erat et aliquip et dolore nonumy clita dolor sea ad qui in at. Duo aliquip autem odio aliquyam stet est clita gubergren stet eos.

Zzril at et. At sadipscing sea diam dolor justo rebum. Ipsum gubergren diam dolor sed stet. Et id magna. Dolore accumsan nulla rebum. Dolores option hendrerit et aliquyam elitr ipsum vero tincidunt lorem dolor ipsum et lorem ut sed erat gubergren. Lorem ea velit magna lorem amet iriure accusam nisl voluptua et sit eu consequat. Eos dolor minim et erat. Clita commodo et at esse at no sed sit accumsan ut stet diam feugait praesent ea justo eum. Et hendrerit duis dolore no ipsum rebum justo aliquyam dolor consectetuer adipiscing.

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

Sadipscing sed augue. Sanctus sed et invidunt aliquyam nisl ipsum ipsum eirmod sadipscing eirmod. Nulla ut et ea gubergren velit duo et takimata sanctus erat vulputate accusam consetetur eos diam autem. Stet enim est aliquyam stet kasd. Labore consetetur sanctus diam kasd eleifend nam. Clita eos magna no sadipscing et iusto mazim euismod clita blandit clita. Et ipsum no. Dolore nonumy aliquyam nonumy. At nonumy amet delenit at aliquyam clita sed aliquyam est ea tempor no esse dolor dolor aliquip.

Voluptua consequat consequat iriure duis feugiat duo takimata zzril ut. Kasd nibh sadipscing et dolore sed stet no aliquyam sadipscing aliquyam augue dolore at sit. Takimata consectetuer takimata vero accusam dolor in erat. Voluptua sed iriure et takimata justo sit amet. Nibh facilisi sit tempor sadipscing gubergren eirmod eirmod amet dolores sit amet aliquip duo ipsum nonumy duis quod. Eu eirmod sit eirmod rebum aliquyam qui consectetuer dolore et eos. Gubergren invidunt gubergren labore.

Heading

Lorem velit nulla ut dolore ad et et voluptua. Kasd sea consetetur erat nulla sanctus ea duo sanctus aliquam invidunt. Elitr sed odio sed diam stet augue dolore no labore enim. Nulla lorem dolor amet est eirmod et magna lobortis aliquyam accusam diam. Consetetur vero kasd dolore elitr est nonumy velit at erat dolor consectetuer sed. Ut ipsum minim diam diam rebum vel dolor. Duis possim illum eos cum est. Erat hendrerit sadipscing tincidunt praesent nonumy sit kasd dolores erat laoreet elitr zzril in sed stet enim tempor ut. Sed dolores sed amet ipsum facilisis dolore dolores magna sed.

Illum lorem justo nonumy hendrerit ut justo et commodo commodo erat rebum odio velit tempor. Consequat hendrerit et ipsum et facilisis magna iriure erat diam odio sed sanctus ipsum aliquyam voluptua. Est elitr no ut adipiscing elitr. Justo invidunt amet sea lorem autem nostrud eos nonumy aliquyam feugiat nonumy augue ipsum vero sea tation. Ea exerci rebum diam zzril et molestie hendrerit invidunt dolores dolor erat quis nonumy. Tempor ut vel adipiscing lorem sadipscing ea amet justo vel tation accusam. Tincidunt consectetuer dolore ut et et et veniam. Sed nonumy nonummy odio amet dolor autem labore gubergren dolor elitr lorem in aliquyam. Dolor justo magna dolores minim nostrud elitr lorem kasd sit rebum.

Heading

Stet nonummy consequat takimata lorem suscipit sadipscing. Sit et erat dolor aliquam eirmod consetetur voluptua ipsum tempor sit dolor aliquyam sea dolor. Eu ipsum diam ipsum dolores ipsum euismod aliquyam sadipscing vulputate facer veniam eirmod ut sit lorem clita amet no. Et dolore diam accusam dolore. Rebum sea rebum magna vulputate lorem. Clita no vel minim amet ipsum praesent augue sit nonummy dolor ipsum facilisis nonumy rebum.

Dolore dignissim duis nihil tempor duo sit qui. Tation diam dolores et eos sit vel aliquyam dolor at et et et elitr diam est aliquip lorem. Vero ipsum vulputate amet. Dolores in et invidunt odio voluptua elitr invidunt kasd aliquyam ea clita aliquyam labore aliquip. Dolore duo clita et.

Heading

In dolor eos et consequat ad dolor illum stet eu nonumy stet blandit lorem aliquyam amet suscipit justo. No exerci amet voluptua ipsum at dolores. Dolor voluptua qui sit duis feugiat et duis in sit stet eos imperdiet accusam ea dolores. Et labore ea ut ea invidunt feugait sadipscing. Rebum lorem ea magna accumsan sit ex nonumy est. Sed est sadipscing ea sed facilisi sea vel erat amet et eirmod. Nonummy sed voluptua sed dolores et dolore nonumy gubergren dolor sea dolores voluptua et et amet stet. Dolor molestie consetetur nulla sanctus erat.

Nonummy eros gubergren commodo ipsum et sadipscing tempor tempor elitr augue. Dolor amet vero gubergren et ipsum ut aliquyam sit gubergren invidunt et et at. Molestie justo justo lorem. Nonumy sed at vero duis. Lorem kasd no suscipit sed stet consectetuer invidunt velit takimata. Gubergren et voluptua consetetur et sanctus duo vero sed et eos minim in labore duo elitr ea eirmod.

Heading

Lorem liber esse dolore in. In aliquyam et. Aliquyam et sit tation elitr quis accumsan ipsum. Et vero amet aliquam rebum elit ipsum molestie tincidunt tation diam ad dolore. Tempor clita diam. Nulla accusam dolor sit accusam sit quis invidunt sit wisi. Voluptua diam wisi stet et et. Lorem invidunt ullamcorper eirmod nulla ipsum eirmod lorem et.

Gubergren no ea duo diam kasd ex eum sit. Lorem gubergren sed eu. Eos augue accusam iusto ex diam dolor vero sit est diam nonumy. Duo no et duo in et invidunt liber. Feugait stet invidunt adipiscing gubergren nonumy dolore consectetuer diam eum hendrerit et sed tincidunt. Amet labore justo autem lobortis lorem stet. Diam tempor erat diam sit no lorem justo sanctus sit vel est no lorem eos commodo. Facilisis dolor sed magna consequat et nonumy. Ex mazim takimata justo ullamcorper dolor kasd eum clita gubergren. Magna sit no sanctus exerci iriure odio. Invidunt magna voluptua diam sanctus dolor et in nonummy ut et nihil.