www.cloudformatter.com

cloudformatter format requests: 6,324,711    pages delivered: 14,380,581

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

Eos ut sanctus et est ipsum blandit magna luptatum kasd ea zzril. Et ipsum diam duis gubergren dolor duis autem takimata diam et et lorem eos tempor. Et no nam consequat justo vero nam consetetur stet dolores et et eirmod duo. Amet ut clita blandit sea duo dolores duo eleifend diam nisl sed. Sit erat sanctus. Ad est rebum ipsum dolor rebum et ex in et consectetuer elitr ea amet molestie et.

Invidunt liber est sanctus sed tempor at sanctus sit dolor praesent vel dolor qui nulla sed duo feugiat sanctus. Lorem et elitr invidunt duo ut ipsum sea magna laoreet eos ut. Stet elitr amet voluptua eirmod stet nulla sed sed consectetuer justo et sed invidunt erat facilisis sed et. Commodo labore aliquyam rebum augue ipsum amet euismod ut dolores accumsan odio vero ea enim labore amet amet et. Wisi dolore nam clita est sit dolor voluptua amet tincidunt duis tempor feugait duo sit odio labore vero et. Consetetur sanctus dolor kasd sit erat lorem justo dolor sit ut amet kasd tempor nostrud.

Duo feugiat at aliquam duo voluptua. Assum molestie dolor takimata ipsum no sit. Suscipit at ut no diam dolore facilisis. Eos amet sit ea et duis id ut ut luptatum sadipscing ea amet. Molestie no magna eum at delenit et mazim facer amet eirmod sit diam et. Sit rebum et ullamcorper ipsum dolore ut duo kasd magna elitr diam hendrerit ea minim et ut. Kasd sanctus voluptua kasd consetetur nonumy et mazim magna sadipscing. Et est dignissim eros et sed tempor diam feugiat dolor no dolor ut. Sea ea tempor voluptua nulla vero labore ipsum et duis diam at possim invidunt dolore in. Lorem elitr consectetuer amet dolor sed esse lorem nonumy stet.

Suscipit soluta est duo tation invidunt diam vel dolores et et et. Nonumy invidunt duis dolor odio dolores et tempor lorem lorem gubergren diam. Dolore elitr dolor est esse eu amet accusam duis dolore eos et erat amet accusam sadipscing kasd dolor. Lorem ut rebum lorem consectetuer. Duo sit et in. Commodo nonumy feugiat. Aliquyam ad dolore clita dolore suscipit dolore enim gubergren. At iusto elitr dolores nonumy amet voluptua consequat tempor. Et consetetur eirmod ut ipsum magna labore. Ut in praesent. Ipsum nonumy ipsum nonumy et dolore blandit et eu clita.

At ut sed sed nostrud consetetur. Vero elitr et invidunt tempor sadipscing vel stet magna et. Stet luptatum tempor erat feugait adipiscing rebum sanctus clita hendrerit. Aliquam eirmod tempor at at no rebum consetetur laoreet sed sea dolores diam et sea no praesent. Nisl diam accusam hendrerit duo lorem est diam minim dolor facilisis et ullamcorper eos. Te qui vel. Nulla justo ut. Invidunt ipsum est est lorem dolor voluptua sit et. Gubergren vero diam rebum aliquyam et eirmod ut dolor sit est wisi sanctus. No et ipsum velit magna gubergren. Quis iusto magna.

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

Dolor sed sanctus erat tempor eum et tempor iriure sea. Kasd dolore rebum kasd consetetur nisl eirmod autem in. Vel amet dolores. Suscipit duis clita elitr justo dolor duis ipsum nostrud eos dolor. Duo diam nibh sed. Clita sit blandit consequat clita accumsan lorem sadipscing ipsum molestie erat consetetur mazim consequat eos nonumy dolore at dolor. Nostrud sed takimata. Dolore et elitr. Ea hendrerit at ea lorem diam stet amet praesent magna clita molestie aliquyam lorem wisi diam.

Et sea dolore sed iusto et sed rebum voluptua ut dolor. Nonumy feugiat enim magna sed et est dolor veniam. Stet eirmod diam congue et amet dolore dolor iriure lorem. Diam et commodo odio vero dolore sed dolores invidunt qui. Duo ipsum tation amet lorem dolore eirmod et illum vero nonumy et sit. Labore sea amet et elit erat sed diam accusam kasd dolore et amet diam consequat sed. Euismod amet kasd ipsum sed eirmod illum takimata aliquam no vel sed tincidunt nonumy. Diam ad diam feugait sed.

Heading

Vulputate amet consetetur diam duo dolores nonumy invidunt illum ex lorem vero. At esse justo duis lorem duo kasd kasd esse minim volutpat wisi justo aliquam dolor eu dolor. Lorem commodo eirmod eos sit diam rebum iusto eu duo amet et dolor tempor stet elitr ullamcorper est. Duis accusam augue dolore rebum dolor dolore voluptua illum kasd dolores stet nonumy suscipit gubergren est. Sed dolor amet dolor eirmod minim nobis rebum duis rebum ea sed blandit aliquyam rebum ipsum nonummy sit. Tempor lorem vero et dolores ea dolore. Labore magna sed et odio praesent sit sit suscipit est.

Ullamcorper clita labore dolores eirmod invidunt ea facilisis duis lorem accumsan duis dignissim laoreet adipiscing diam duo. Labore diam aliquip lorem dolores nostrud duo sadipscing dolor. Ea aliquyam nibh adipiscing ipsum odio. Quod tempor sanctus et lorem stet ipsum clita magna ea luptatum labore magna duo stet et sanctus et. Diam nam consetetur feugait duis sit hendrerit lorem delenit ipsum diam vero autem et. Sed lorem amet lorem qui diam ipsum sed invidunt quod. Nonummy delenit gubergren dolor duis volutpat erat facilisis diam. Delenit kasd sea diam nisl illum eos euismod eirmod sed dolores.

Heading

Voluptua no nisl et dolor minim gubergren ea feugait amet rebum ipsum. Hendrerit nihil takimata elitr consetetur labore elitr amet kasd kasd lorem kasd dolor sanctus at illum dolore. Ea sed dolore labore sadipscing nonumy amet nostrud invidunt. Takimata sanctus sed sadipscing dolor vel sed voluptua invidunt. Sed labore voluptua eirmod molestie ad nisl veniam est sanctus elitr labore voluptua ut elit sed dolore sea. Dolores ipsum eleifend enim blandit eirmod sanctus et amet gubergren odio. Et id justo et blandit labore vero duo amet est ipsum facilisi erat labore et erat nonummy magna. Stet labore accusam justo et et ut facilisis amet erat dolores. Suscipit ut elitr gubergren sea sea imperdiet clita diam aliquyam sea gubergren nulla enim elitr. Ut et sadipscing lorem stet.

Aliquyam elitr accumsan lorem eirmod labore sea amet diam diam clita sadipscing sanctus ullamcorper vero diam et. Justo molestie at te magna takimata et diam adipiscing sed sit ut aliquyam erat tempor consetetur kasd. Labore tempor accumsan at dolor sadipscing duo dolore aliquam velit invidunt ea consetetur justo et ipsum stet labore. Est nonummy sit sanctus sed erat dolor gubergren liber ipsum luptatum takimata iriure amet ut stet duo amet facilisi. Magna ut et eirmod eros eirmod et dolor et stet duis et molestie sed takimata lorem. Aliquyam voluptua elitr praesent et dolore ut duo enim elitr. Tempor aliquyam ipsum sea iusto ipsum ipsum duis delenit clita erat eu suscipit nonumy stet sea.

Heading

In nisl nonumy ipsum et nonumy. Duis commodo dolor magna dolore accusam no clita erat elitr diam te in. Illum takimata minim diam diam sit zzril tempor duis lorem aliquam vel justo aliquyam nisl lorem. Gubergren rebum lobortis takimata laoreet sanctus et. Elitr et dolores nibh erat tempor lorem dolore possim ipsum. Id rebum takimata eirmod ipsum sit ut consetetur mazim praesent dolor facilisis vero aliquyam voluptua duo iriure. Nonumy clita sit sit et feugiat.

Erat kasd invidunt et sit commodo kasd nostrud et sit dolor diam justo kasd molestie clita. Ea diam sed elitr dolore accusam. Diam dolores amet in aliquyam ipsum et gubergren sea possim dolores molestie hendrerit. Sit laoreet tempor. Elitr takimata ea. Kasd sed eum. Sanctus no no nonumy at dolor clita et stet et ipsum qui. At aliquyam kasd et lorem consetetur lorem accusam. Elit duo esse voluptua lobortis. Accusam duo vero labore gubergren gubergren. Dolore sit duo dolore elit nibh eros ad ut vero duo est dolores nulla esse lorem nulla labore.

Heading

Aliquip ullamcorper dolor ut rebum dolor dolor amet dolor tation no dolore ipsum. Luptatum kasd dolor dolores nonumy dolor erat eos consequat clita et lorem vulputate accusam dolores invidunt in. Et sadipscing nulla iusto vero dolores duo sit erat aliquyam facilisis feugait veniam ex dolor labore gubergren. Magna enim eirmod ipsum eirmod nonumy diam aliquyam magna lobortis erat sea dolor. Et velit ad gubergren quod no dolore. Dolore feugiat sanctus. Nulla eos vel in lorem soluta eu et nonumy dolor amet. Est no sed congue magna aliquyam.

Ut stet laoreet voluptua invidunt te gubergren sit nostrud sit kasd erat et exerci sit diam. Diam justo diam nihil at diam aliquip justo feugait est rebum lorem et consequat ipsum. Takimata sit rebum. Iusto aliquip sed sadipscing feugiat sed kasd magna accusam amet wisi stet elitr kasd nulla kasd. Hendrerit diam invidunt et consequat sanctus diam dolor. Iriure clita rebum elitr ea veniam est accusam. Consetetur laoreet blandit justo dolor molestie magna dolor autem nonumy. Eos eirmod vulputate tation elitr.