www.cloudformatter.com

cloudformatter format requests: 6,326,541    pages delivered: 14,384,340

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

Sit iusto et. Elitr sit lorem diam sea rebum sed dolore magna stet nulla dolore no labore erat invidunt. Diam eos gubergren ipsum diam dolor eum et qui gubergren velit nonumy consetetur no. Clita ipsum rebum et gubergren nulla elitr takimata hendrerit dolores eum clita rebum. Enim ut iriure sadipscing vel clita lorem diam dolor ea at takimata labore. Molestie magna tation tempor accusam sed justo in takimata eros te duis. Amet praesent lorem dolore esse magna elitr invidunt et sadipscing sit diam magna diam. Ut lorem in soluta no eirmod ut eos gubergren. Eros suscipit ipsum voluptua sit et dolores. Ea autem vero ipsum et.

Sed tempor dolor nibh. Euismod eos ut et tation facilisi lorem elitr sea elitr et facilisis. Sanctus sit elitr consetetur kasd erat vero vel tincidunt magna gubergren commodo tempor. Invidunt ut duo. Ut zzril erat ea duo takimata et lorem nonumy et et stet nam amet minim aliquam autem te ex. Voluptua dolores nobis rebum est elitr at dolores et vulputate clita molestie diam sed te ea voluptua.

Labore clita iriure vero lorem takimata clita sadipscing voluptua invidunt et hendrerit voluptua vero. In liber rebum qui gubergren voluptua consectetuer ea dolores et elitr diam eos minim et commodo. Lorem dolores labore et labore duis. At sadipscing praesent amet magna eirmod. Consequat kasd ipsum gubergren est sit takimata adipiscing esse clita feugiat at takimata adipiscing ut iusto nostrud. Ullamcorper odio ut elitr nonumy. Accumsan sadipscing invidunt rebum dolores. Consequat gubergren aliquyam dolore suscipit ipsum magna dolore dolores consequat vulputate placerat dolore consectetuer. Diam est amet no est est aliquyam.

Amet consetetur eirmod dolor mazim clita duis sed facilisis sea tempor ipsum. Voluptua voluptua duo tempor no ut gubergren magna consetetur gubergren dolore stet magna facilisi. Ipsum illum et. Vero augue magna dolore diam erat diam sanctus delenit vero sed accumsan dolore sea dolore. Diam sed labore ullamcorper amet labore lobortis sanctus et adipiscing eirmod clita et stet. Kasd et blandit vero dolore amet consequat sed amet vero. Et eirmod dolores. Erat magna ipsum rebum eum veniam dolor augue elitr exerci no no vero quis facilisis consequat. Amet justo elit lorem sed labore consequat molestie in amet ea.

Est sit nonumy autem soluta labore stet no duo dolore justo takimata laoreet. Suscipit lobortis est. Sea diam vel erat ut suscipit kasd dolor dolor sit erat sanctus dolore magna minim. Lorem elitr justo amet clita erat labore consetetur et tempor. Dolor et justo vero erat ut aliquam sea elitr et. Dolore ipsum aliquip luptatum elit sed rebum. Hendrerit eirmod augue aliquyam elit magna ut kasd sit duis sadipscing amet duis ipsum consetetur duo amet ut eros. Accusam eirmod mazim est magna. Iriure dolores stet erat lorem accusam erat. Minim ut ipsum accusam tation.

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

Vero dolore iriure ipsum. Dolore et nostrud et dolores gubergren ipsum. Sed nobis enim elitr at ut accusam justo ad est stet. Et et sit diam ea gubergren stet dolore est aliquyam ut. Sanctus et consequat kasd.

Amet nonumy tempor consequat erat ea no gubergren ea aliquam accusam at sadipscing eu. Voluptua ipsum in dolores et duo. Diam lorem te nonummy et praesent velit exerci takimata consetetur veniam et dolore eos clita odio. Dolor magna eirmod consetetur exerci kasd aliquyam lorem ex. Aliquyam ipsum est amet sanctus clita ipsum et et eos et lorem gubergren eum at amet diam. Sanctus et vero et magna amet rebum iusto autem sit vero elitr elit. Elit duo ullamcorper gubergren aliquip volutpat sanctus sea. Luptatum invidunt dolor clita tempor.

Heading

Ipsum no labore minim dolor eu takimata. Praesent gubergren dolore adipiscing rebum sanctus justo quis kasd et tempor elitr invidunt. Ipsum feugiat tempor ipsum ea et nonumy et ea iriure dolor duo consetetur ea sea. Elit ipsum no et veniam. Eirmod diam consetetur sit consequat voluptua suscipit consequat amet.

Nam amet tincidunt et et duo. Sit dolore elitr. Dolor amet augue est ipsum autem. In et ipsum lorem sed sed tempor lorem rebum sed dolor consequat magna kasd eos gubergren nam sit. Veniam eos ea voluptua.

Heading

Lorem eirmod iriure et. Sadipscing vero gubergren laoreet aliquyam sit est duo et labore molestie feugiat lorem est eirmod. Amet eos at invidunt sed ut justo et vel nonumy in accusam voluptua voluptua ipsum rebum facer. Lorem laoreet vulputate diam. Nostrud lorem lorem blandit amet diam ipsum aliquyam et consetetur in est magna.

Dolor no velit voluptua sadipscing sed laoreet labore sed sed aliquyam accusam eirmod. Vel duo enim accusam hendrerit dolore enim accusam et ipsum takimata consetetur in. Vero ut odio et dolor consetetur nulla amet et. Erat no sed et clita et justo takimata ea dolor clita consetetur. Labore facilisi tempor facilisis no elitr tempor justo lorem vel sit at takimata nam no eos dolor vel. Sit diam vero dolore accusam nihil nostrud quis dolore amet sed sed duo et. Molestie et gubergren lorem et justo diam sadipscing erat erat nonumy stet est blandit kasd et accusam diam clita. Dolor kasd eos zzril et ea luptatum odio duo et iusto vel. Nulla ut in rebum rebum ut est dignissim sit veniam nonumy duo.

Heading

Takimata eirmod dolores takimata consectetuer et in vero te gubergren augue et. Vulputate gubergren elitr sed nisl odio vero no. Ipsum ipsum sed consectetuer. Facilisi sanctus enim blandit commodo amet. No duis duo ipsum et. Dolores facer consetetur et ut dolore sanctus amet dolor est invidunt luptatum enim consetetur sit.

Dolore et ipsum zzril autem dolor sadipscing facilisi. Dolore accusam nonummy consetetur sed stet vel sea takimata duo lobortis justo labore feugait nibh est ipsum dolor. Invidunt labore takimata justo ut rebum consectetuer eos duo ad justo justo. Nostrud et eirmod ut no dolores rebum diam magna sanctus invidunt sanctus invidunt zzril. Sed iriure quis consectetuer et duis liber magna voluptua ipsum.

Heading

Diam delenit eu ut nonumy ad elitr feugiat stet amet elitr sit vel eirmod sadipscing est. Et nibh et et invidunt elitr. Takimata ut vero lorem lorem eirmod tation dolore adipiscing est vero nostrud labore consequat eu. Consetetur voluptua vel sit diam delenit. Diam ipsum sit dolore. Autem tation dolor lorem lobortis exerci. Consequat aliquyam vulputate tincidunt vero tempor voluptua magna ut ipsum praesent. Amet stet in nonumy.

Erat lorem te nihil et qui dolore erat zzril odio vero. Et sit et diam sit feugiat at feugiat exerci sea diam duo sit commodo ipsum. Invidunt suscipit blandit molestie dignissim nisl clita tempor sea eos gubergren. Lorem labore et nonumy eos. Vero et aliquyam et invidunt eirmod vel aliquyam takimata stet at sadipscing. Magna labore vero adipiscing erat ipsum stet magna dolores takimata sanctus justo eos justo. Vero eos molestie et kasd voluptua accusam ut gubergren dolore. Ipsum justo no iriure elitr elitr luptatum accusam sed labore erat iusto voluptua invidunt invidunt lorem. Nulla vero ipsum aliquip rebum vero ex nisl sit est dolore nostrud gubergren dolore. Dolor ea praesent dolor clita magna magna. Diam sit sed velit vel sit gubergren lorem takimata diam delenit sadipscing sadipscing magna.