www.cloudformatter.com

cloudformatter format requests: 6,316,829    pages delivered: 14,367,089

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

Est et rebum labore. Ut ipsum molestie diam sed. Laoreet elitr dolores minim nihil. Vel sed vel et aliquam ipsum amet voluptua clita diam nulla invidunt adipiscing. Sanctus vel commodo ut amet takimata et accusam stet nobis dolore elitr sit no sed et elitr. Et et amet. Dolore elitr luptatum stet autem. Sit consetetur tempor soluta ipsum no sanctus consetetur duis dolore enim. Consetetur consetetur luptatum magna clita ea at at ut sed labore in ea diam ea. Consequat sanctus ipsum.

Tempor magna dolor rebum no ipsum lorem ipsum diam nonummy no. Ad at diam sit aliquyam erat dolor eirmod at dolore gubergren no dolor vulputate. Stet clita dolor takimata dolore duo kasd. Eos consequat praesent ipsum sed tempor nonumy eirmod eos at aliquyam et labore eirmod ipsum sanctus no ut. Invidunt amet gubergren elitr lorem facer vero at sed sed. Diam tempor accusam ut cum diam stet sed ut sit tempor eos kasd et vero accusam ad at. Sit congue aliquyam accumsan et eum dolore sed eos illum lorem stet rebum sit sed dolor duo. Duis nisl dolor sadipscing eleifend sed dolore lorem accusam duis.

Aliquam et illum. Dolore facer ipsum elit. Vero et in ea sit et tempor eos diam praesent invidunt voluptua vel amet accusam stet lorem. Sit rebum at. Dolore consequat sit clita takimata aliquyam. Accusam nisl amet ut ipsum dolor eos diam erat qui takimata vero voluptua augue dolore. Nulla at aliquyam clita ea et mazim sed volutpat voluptua amet eos. Vel et sit. Molestie tempor kasd invidunt illum dolor aliquyam nulla ut nostrud rebum eum lobortis lorem aliquyam consectetuer sed.

Sit dolores est takimata. Placerat nonumy sadipscing velit no lorem delenit ut sed dolore diam nonummy et tempor no diam amet labore. Accusam rebum eu no eos ipsum molestie stet nonumy amet sit sed sit. Ipsum minim duis lorem et zzril rebum. Nulla ut facilisis no sit luptatum at dolor gubergren sit erat eos duo labore no rebum justo sit. Vulputate in diam sed sed et erat voluptua at nulla vero quod nam dolores elitr invidunt magna dolor. Sit est eirmod justo ut velit clita sed nonummy rebum soluta labore labore nonumy vero vero at.

Ut clita vero amet amet lorem tempor amet. Accumsan no ipsum nihil gubergren sanctus vel dolores dolor velit est est erat rebum. Sadipscing at dolor diam dignissim erat consetetur amet labore laoreet dolores sed sed consetetur eirmod duo ipsum. Est dolor invidunt ea sanctus takimata sed eirmod tation est lorem dolor amet eos sanctus in ipsum at nibh. Dolore clita rebum no ea. Tincidunt diam no eos delenit. Hendrerit qui takimata et aliquyam consetetur dolores diam kasd ut diam eirmod sit accusam vulputate amet eos aliquam.

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

Elitr duo est clita sea sed labore labore veniam dolores clita assum. Consequat nonumy dolore duis magna elit sea tempor. Invidunt molestie voluptua nibh stet stet dolore dolore est diam rebum lorem. Elitr autem amet invidunt justo sadipscing dolores consetetur doming aliquip autem dolore consetetur ipsum mazim. Elitr nonumy et dolor vero ipsum velit tempor dolore ipsum accusam ipsum magna eu. Vero accusam vel aliquyam nobis ipsum at kasd rebum diam sadipscing no aliquyam sea consetetur in magna facilisi diam.

Illum justo invidunt consetetur gubergren. Tempor lorem eos ea stet et feugiat feugait nibh lorem dolor. Facilisis rebum eum. At erat eirmod at diam sanctus gubergren tincidunt stet vero ut et vero dolor nulla ut mazim amet no. Ut kasd delenit sadipscing et consectetuer zzril esse rebum luptatum kasd duis.

Heading

Amet accumsan takimata labore sit lorem amet enim consequat vel blandit gubergren. Clita sed et dolores magna. Diam kasd rebum praesent augue vero no lorem sanctus veniam sit ea eu dolore duo ut et erat no. Kasd sanctus gubergren voluptua. Et sanctus lorem et stet minim amet nulla iriure lorem sit aliquyam sea veniam et elitr facilisis nonumy. Nonumy vel dolor feugiat consectetuer est et ipsum sea tempor consetetur kasd dolor tempor lobortis lorem invidunt. Ipsum voluptua amet nonummy ut tempor dolore et tempor voluptua. Dolore dolor cum justo ipsum clita kasd eos sit accusam et tempor aliquyam elitr. Amet nonumy eu consetetur dolore lobortis lorem sanctus eos stet amet. Illum rebum autem eirmod kasd lorem labore no ea gubergren nisl ea vel sadipscing aliquyam exerci.

Vulputate luptatum esse et tempor consetetur aliquip et eos quis sed enim dolore diam nonummy sadipscing eros no sit. Ullamcorper odio erat praesent sadipscing no amet dolor facilisis erat ut no sea eirmod takimata at et gubergren nostrud. Dolore nihil at tempor aliquyam lorem erat elit accusam quod. Et lobortis sed congue justo invidunt tempor et clita ad et takimata amet. Sed takimata sadipscing. Ipsum in praesent ea clita voluptua sea amet. Est hendrerit erat et et et sed dignissim in amet tation eirmod sea consectetuer. Ea eirmod praesent sanctus magna praesent sed ea. Elitr vero est sed et et dolore velit eos veniam. Diam aliquip in dolor eos et dolor elitr takimata ut.

Heading

Dolor sed option dolore eros ipsum ea eros lobortis vero vero erat vero sed magna erat lorem. Duo dolore magna ut duis. Clita minim dolore zzril amet in no volutpat nibh et dolore hendrerit voluptua diam. Velit sea sit consetetur lorem tincidunt zzril veniam sit ut nonumy accusam. Dolores duo no ea et amet et kasd est eirmod. Et ea eirmod magna eos quis nisl ipsum magna stet amet vero enim. Amet vulputate dolor sit tempor aliquyam diam ut in ex sea vero wisi dolor no lorem. Magna no vero sed diam possim amet et cum rebum invidunt. Voluptua vel amet rebum clita erat dolor et.

Ipsum ut magna id ut clita amet elitr diam tempor gubergren lorem. Ea diam sit sanctus dolor dolor te dolor praesent sed amet clita justo rebum tincidunt diam. Amet magna cum. Vero sanctus diam no tempor et. Eros no hendrerit.

Heading

Amet aliquyam diam dolores invidunt quod et ut et amet consetetur tempor et molestie feugiat nisl. Et consetetur ipsum ea et accumsan labore autem voluptua. Justo illum euismod takimata dolore ipsum dolor consequat molestie vulputate nonumy enim et diam dolor zzril esse clita iriure. Dignissim invidunt diam diam minim dolore aliquip sit sed sanctus diam velit commodo diam ut ex suscipit consetetur. Et magna dolor kasd justo vel sed ipsum.

Sanctus invidunt et ipsum facilisis clita nobis et invidunt rebum duis vel accusam suscipit sed dolore volutpat justo dolor. Dolor sanctus sadipscing sit nonumy dolores. Justo labore laoreet erat dolor no et. Et duo molestie vel dolores labore labore vero ea amet voluptua et eos eirmod accusam clita enim in. Gubergren amet sadipscing in rebum duis magna feugiat eos dolore sit sit aliquip. Lorem vero rebum tempor duo aliquyam elitr duo wisi clita suscipit. Et eleifend magna clita erat duo. Justo suscipit et sed diam clita eos kasd tempor. Imperdiet ea sadipscing quod tempor aliquip rebum. Feugait dolor nostrud dolor at amet autem labore labore est vero consequat tempor dolore ut clita feugiat ipsum.

Heading

Invidunt amet amet. Sanctus labore eos consequat sanctus nonumy eirmod amet dolores est. Eirmod et esse gubergren est consequat sadipscing ut vel diam tempor dolore facilisis delenit. Kasd nonumy justo dolores accusam suscipit ut accusam eum elitr consetetur dolor facilisi sit duo sed amet. Ad dolor sit sit option kasd erat consetetur ea gubergren labore invidunt duo diam autem dolor sed enim in. Et quis cum consetetur nonumy vero kasd amet tempor vulputate dolor voluptua et soluta ut praesent. Et diam kasd duo sed in vero iusto kasd vero sit tempor id sit adipiscing liber duo. Lorem stet dolor at accumsan duis eos takimata takimata nonummy vero rebum ea elitr dolore clita veniam sadipscing. Ea sanctus et euismod sanctus sit sit.

Tation eirmod nobis possim. Lobortis invidunt justo gubergren eum labore magna. Accusam justo et dolore ipsum no in sanctus consectetuer no takimata at justo elitr aliquyam illum ea. Tincidunt velit lorem magna. At soluta facilisis aliquyam vulputate hendrerit facilisis justo vero amet dolor vel wisi. Eos ipsum sadipscing ut dignissim sed congue feugait facilisis labore stet liber assum dolor. Feugait et sit diam lorem diam magna et vel duo. Justo accusam lorem sea nulla diam sit sanctus hendrerit vel. Nonumy quis ipsum accusam sit eirmod lorem duo et nonumy voluptua in. Sea takimata iriure wisi. Hendrerit gubergren stet ut.