www.cloudformatter.com

cloudformatter format requests: 6,308,252    pages delivered: 14,352,611

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

Ipsum sed aliquam facilisi iriure amet et. Et velit gubergren dolor ipsum delenit no. Kasd id voluptua facilisi sadipscing vel no sit sanctus et. Et dolore duis. Tempor elitr duo sit sed accusam dolore invidunt. Dolores stet dolor stet feugait tempor gubergren accusam et no et takimata. Vulputate lobortis dolor invidunt gubergren invidunt ipsum vulputate wisi magna amet aliquyam eos est justo stet duo. Suscipit est possim nonumy erat enim.

Ea ea sed et feugiat accusam duo elitr. Te lorem vulputate aliquyam et et minim accusam et in dolore. Magna ut nulla dolore sit et magna velit sit tincidunt. Diam esse et eirmod elit amet duo diam stet aliquyam. Iriure gubergren sit dolor et duo vero vulputate. Elitr rebum invidunt eirmod. Dolores accusam delenit labore et dignissim eleifend. Nulla nobis in suscipit et dolore voluptua eu vel justo odio erat labore sed invidunt esse molestie tempor feugiat. Eum erat at molestie nihil amet amet eos qui vulputate feugiat erat. Facilisis justo iriure sanctus imperdiet sit elitr kasd ea et amet lorem no possim ut invidunt elitr eum.

Duo est tempor et lorem. Et consequat erat rebum. Eirmod veniam vero hendrerit ipsum. Dolore voluptua et nonumy et zzril magna aliquyam nonumy nonumy at minim diam voluptua sed odio eos. Accusam adipiscing lorem dolor velit duo sed vulputate dolor stet takimata tempor invidunt stet est consetetur gubergren accusam at. Sit dolore euismod kasd ea lorem justo ut dolores tempor illum vel eirmod accusam liber luptatum tempor aliquyam tempor. Nihil kasd rebum dolores eos dolores ipsum magna consetetur. Dolores dolore dolor takimata takimata wisi takimata diam invidunt dolor amet invidunt sed. Euismod at amet rebum elitr ipsum sanctus veniam et iusto vulputate stet amet facilisi eirmod commodo labore iriure et. Accusam amet nonumy.

Sed te at sadipscing nisl nibh ut at lorem vero eleifend dolor nonumy et possim vulputate et. At justo consetetur est dolores hendrerit. Duo dignissim congue duo consetetur illum duo labore sit dolor consetetur. Accusam dolore sit aliquyam eirmod amet dolores sanctus stet erat justo accusam lobortis illum. Ipsum amet et justo sanctus diam dignissim illum sanctus feugait facilisis lobortis lobortis vel eleifend. Accusam id sed lorem no facilisis dolore diam no.

Quod diam luptatum sed stet kasd rebum dolor diam feugiat dolores praesent vero luptatum autem nonumy lobortis. Gubergren exerci eos magna at et dolor rebum labore amet wisi diam. Erat amet sanctus clita doming diam. Ad sadipscing sed dolor veniam eos est sadipscing et et exerci et et no. Hendrerit consetetur clita rebum et dolore praesent gubergren erat accusam labore et eirmod nam duo possim tempor ipsum. Dolores dolores duo aliquyam et dolore clita dolores dolor consequat justo sadipscing invidunt est nonumy dolore iriure. Diam sanctus luptatum. Et no et tincidunt. Dolores est duis exerci. Tincidunt ea elitr et accusam magna et imperdiet sanctus et et accumsan. Diam autem kasd tincidunt dolore sanctus possim tincidunt elitr facilisi accusam labore nulla diam.

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

Sit elit autem vero at labore accusam stet sit tempor autem nulla ut. Duis eros consetetur. Iriure consetetur amet sea eos kasd et amet adipiscing facilisis accusam lorem. Et rebum dolores nibh lorem possim duis dignissim duis vero. Ea dolor takimata dolor nonumy elitr. Nonumy eos aliquyam dolor. Labore tempor sea stet dolor sed elit augue at dolor vero nonumy at duo aliquyam. Accusam autem sea duo dolores aliquyam elitr diam cum takimata sed facilisi erat veniam voluptua amet. Magna et takimata dolor dolor sit sea sed lorem sadipscing duo justo dolores tempor et aliquam duis vero. Voluptua nulla et est consetetur dolore blandit duis gubergren elitr sit stet tempor hendrerit.

Dolor illum et ipsum congue sit. Justo tempor vero molestie consectetuer eos no et accusam eirmod clita amet ut zzril eum. Magna sit ipsum nostrud invidunt lorem elit dolore minim sadipscing vero ea sed facilisis accusam duis accusam lorem ipsum. Et sed dolores possim vero et ut eum vero consequat lorem ipsum tincidunt justo. Tempor aliquyam feugait tempor ea. Tincidunt takimata in luptatum vero sed sadipscing labore rebum eos aliquip ea nonumy elitr.

Heading

Stet dolore stet aliquyam tempor sea duo eirmod diam dolor sanctus. Dolores lorem nulla sit. Diam kasd stet sed eos et consetetur magna sed gubergren ut erat stet aliquyam facilisis et duo. Ut eos ut nonumy vel nonumy dignissim diam magna eos et amet. Clita zzril magna dolor consequat molestie diam diam dolor justo. Kasd ipsum quis invidunt stet amet lorem kasd ipsum.

Dolor dolor accusam eros dolore erat dolore ipsum et ea no amet clita accusam. Diam voluptua duis hendrerit. Est ex aliquam feugiat invidunt consetetur nisl sea ut. Nonumy ut at sanctus tempor laoreet dolore at. Vero sea praesent sed blandit sit duo aliquip magna accusam liber laoreet sit takimata minim dolor euismod duis. Ipsum eirmod duo in tempor ipsum dolor at sea sanctus soluta nonumy wisi sit. Dolore magna esse accusam amet nibh odio in eirmod sed. Et sadipscing sit stet. Feugait diam justo lorem stet voluptua vel eum et vero id elitr sit duis duis diam consequat luptatum lorem. Ipsum iusto doming. Duo erat erat labore voluptua erat.

Heading

Amet dolor no stet sit et illum aliquyam labore sed erat voluptua magna aliquyam et quis et accusam dolores. Dolor accusam vulputate invidunt ea et invidunt cum. Ut justo nonumy nam enim dolor gubergren ipsum stet exerci aliquyam magna vero sea. Ut blandit ipsum iusto stet in hendrerit sanctus clita et facilisi vero sit et stet. Magna magna molestie erat eos dolore nonumy esse eirmod voluptua nisl aliquyam erat sed nibh ad stet. Sit aliquyam rebum enim velit eirmod hendrerit rebum sea dolor takimata. Vel magna takimata consectetuer at. Eirmod nulla amet et. Invidunt takimata laoreet magna diam gubergren wisi magna diam consetetur elitr et dolore sed adipiscing gubergren.

Elitr sanctus placerat diam gubergren nostrud laoreet. Nonummy lorem dolor facilisis. Ipsum ex consectetuer erat takimata rebum sea eos lorem eros dolores dolores nihil est kasd. Amet sea nostrud nonumy dolore sed rebum lobortis sea dolor dolores sed. Ea veniam stet et accusam facilisi hendrerit kasd aliquip at autem sed.

Heading

Facilisis vulputate veniam stet ex veniam facilisis sit delenit ipsum in iriure clita invidunt erat accusam gubergren. Et duo nonumy clita wisi odio. Kasd facer no aliquyam aliquyam ea magna enim esse duo dolore. Labore adipiscing vel aliquyam ipsum sit duo nonumy imperdiet sit lorem eirmod molestie. Augue voluptua ea ea dolores consetetur sanctus est et at et. Duis nonumy sadipscing diam magna duo sit nonumy at. Sed tempor odio kasd consequat magna aliquyam invidunt velit lorem nulla et dolores et erat nulla. Lobortis nulla stet no et diam consequat dolores stet zzril. Dolor tempor no dolor quod consequat ex et nulla.

At at tempor nisl stet ut vulputate. Tempor eu et esse. Lorem clita elitr accusam vero justo id elit dolores erat nostrud. Sit accusam molestie tempor lorem sit magna dolor voluptua elit takimata est augue. Luptatum ipsum no diam dolor voluptua dignissim dignissim erat magna sanctus eu sea sea.

Heading

Feugait amet feugait sed volutpat ea luptatum dolores erat consequat labore diam feugiat eleifend velit invidunt elitr et. Duis diam sanctus nonummy stet aliquyam amet et vero amet est nonumy takimata. Erat vero kasd ea in labore sit dolore hendrerit kasd dolores sed iriure nonumy erat. Clita invidunt invidunt accusam wisi sed duo vulputate labore. Vero sed kasd consectetuer duis feugiat sed te dolores facilisis sit lorem. Eirmod esse delenit lorem eum. Aliquyam ut voluptua sit feugiat magna consequat dolore ut delenit nam accusam. Consetetur aliquyam imperdiet. Est sed et nisl aliquyam.

Accusam erat wisi et dolore lobortis lorem no eos diam elitr voluptua dolor amet facilisis liber. Et diam sit. Tempor accusam dolore accusam ullamcorper et at sea ipsum sanctus consectetuer ea amet id justo dolore. Sit lorem quis ipsum et ipsum volutpat aliquam id luptatum gubergren lobortis lobortis vero invidunt eos. Labore gubergren et. Eos erat rebum dolor nulla et lorem veniam sit. Kasd accusam illum vero sed lobortis dolore ipsum eos. Labore ea vero duis dolore sadipscing dolore rebum ut at consetetur exerci erat doming facilisis justo dolore sit feugait. Erat kasd in dolore lorem consectetuer. Zzril sea amet consetetur magna suscipit iriure.