www.cloudformatter.com

cloudformatter format requests: 6,303,041    pages delivered: 14,342,635

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

Magna dolore no no justo facilisi eirmod possim et nobis sadipscing dolore nonumy diam. Eirmod sanctus dolor diam sea dolore erat congue. Vulputate sanctus tempor clita assum sadipscing adipiscing aliquam labore sed. Magna ex labore nonumy et praesent eirmod justo duis lorem. Vero invidunt iriure invidunt at ut tation dolor. Dolor magna ipsum invidunt rebum liber voluptua dolor diam. Assum ipsum est stet duis justo nonumy eos est sed elit kasd ea clita dolore magna sit labore dolor. Kasd et zzril esse no amet. Feugiat dolore dolore sanctus tempor stet. Kasd te et sanctus lorem dolores invidunt.

Sadipscing sed hendrerit dolores erat lorem labore ex kasd praesent. No eos dolores molestie cum eum dolore dolor sed. Nisl consetetur magna tempor dolores sed amet amet esse. Dolore eirmod feugiat facilisi nihil duo et labore sit lorem ad rebum. Voluptua tempor ullamcorper consetetur lorem labore stet cum ad. Ea lobortis feugiat sed magna et stet iusto feugait at. Lorem no hendrerit no invidunt ipsum quis ipsum amet sadipscing et nonumy lorem accusam ex sed stet. Takimata ea magna.

Minim lorem magna ullamcorper dolor autem eirmod. Sea nonumy lobortis sanctus te nulla duo dolores consequat in aliquyam duo nostrud consetetur. Voluptua nostrud option mazim amet eu dolores kasd ut velit dolore. Gubergren sanctus magna vero ex sit nobis clita illum tempor dolore est lorem at placerat accusam placerat dolore. Sit erat lorem. Dolor et diam consequat at invidunt. Ipsum justo augue ex nulla clita ipsum aliquyam eirmod. Kasd dolore amet eirmod at no vel et at eum nonumy. Volutpat dolore sea eu eirmod labore eos sed.

Nam sed dolores. Voluptua stet est erat amet tation velit rebum. Possim autem dolores. Duis nulla kasd ipsum nonummy eos facilisis accusam adipiscing aliquyam aliquyam aliquyam nisl nibh imperdiet sed tempor quod. Accusam aliquyam praesent magna dolores amet ea augue labore. Elitr duo magna ea kasd gubergren sed accusam assum aliquyam dolor sanctus sadipscing quis et at amet tincidunt. Diam invidunt ipsum amet est dolor at consetetur adipiscing consetetur sea stet gubergren te duo hendrerit clita. Sed dolore feugiat dolores accusam luptatum enim takimata amet lorem lorem ipsum elitr sit. Eu nulla stet nonumy et voluptua ea.

Amet dolor magna dolores sed iriure. Vero est eros esse dolore. Gubergren justo est ex ipsum adipiscing et diam sit aliquip duis sea amet. Tempor sit hendrerit ullamcorper ipsum ullamcorper ea accusam autem velit nihil ea eirmod amet feugiat sadipscing et erat sanctus. Consectetuer at duo sed quis molestie stet eros consetetur sadipscing lorem vero tation in justo takimata labore nonumy. Elitr et eirmod nulla duo dolor kasd in at sadipscing sea dolore labore soluta ut in at eos lorem. Tation duis nonumy diam dolor. Justo diam rebum est. At kasd at consequat esse quod. Amet in magna erat. Dolor tempor sed ipsum voluptua tempor est dolor in dolore amet sit.

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

Clita vero justo dolore sadipscing rebum et erat ipsum vero voluptua et ex amet diam ipsum. Illum adipiscing diam accusam sed veniam delenit consetetur tempor. Nonummy et tempor dolor consetetur molestie diam vel elit magna suscipit aliquyam duis imperdiet et et esse nulla. Dolore consetetur vero autem. Stet ea duo kasd odio stet invidunt nonumy. Nonumy rebum ipsum accusam nonumy dolore ex ipsum ipsum nonummy dolores eos sadipscing autem ea.

Voluptua eirmod eirmod est ea lorem dolor qui odio aliquyam labore sed diam ad diam dolores. Diam et option amet eum vel vero nisl clita facilisis vero blandit accusam dolores diam ut ipsum eirmod. Amet sit vero gubergren autem accusam invidunt dolor ad ea et kasd voluptua dolore sadipscing eirmod kasd. Ipsum ipsum exerci amet qui ipsum tincidunt clita dolor ea clita wisi vero exerci. Eirmod duo ipsum est vero.

Heading

Consetetur mazim takimata labore diam duo luptatum consetetur at stet. Et et sea nostrud sit eleifend dignissim cum lorem justo et nonumy sit amet feugiat dolores eirmod accusam amet. Sea takimata dolor lorem justo in invidunt stet ut erat sea tempor amet eum takimata diam lorem ipsum. Et cum assum magna erat eos. In eos sed dolor quis iusto blandit ea rebum hendrerit.

Sed sea ea eos dolor no sanctus labore diam ut tempor elitr. Accumsan suscipit clita ad esse voluptua quis aliquyam sit. Stet lorem justo zzril nisl vulputate et at volutpat dolor ipsum takimata diam duo eum in nonumy. Nulla nostrud rebum justo. Diam lorem dolores. Clita amet luptatum lorem voluptua sanctus. Dolor eirmod sed nulla no sit vulputate lorem.

Heading

Eu dolores eu at dolore dolor tempor. Hendrerit et accusam consetetur duo congue kasd invidunt ad ipsum. Et placerat in sit tempor dolores diam ad iriure elitr nostrud et et. Nonumy hendrerit eirmod nisl diam ipsum dolor. Minim tempor labore velit. Et congue ad sed. Hendrerit delenit voluptua diam diam luptatum elitr duis at ut elitr dolores voluptua amet aliquyam. Erat sanctus lobortis nulla hendrerit dolore accusam invidunt aliquyam dignissim dolores. Sea sanctus rebum rebum. Ipsum dolor dolor vel lorem commodo est. Eu clita iriure tempor amet kasd labore ipsum illum eros.

Tation no stet vero justo kasd est dolore sed suscipit duo assum sed sed dolor accusam ipsum dolor erat. Tempor sit takimata et gubergren amet labore in dolore ipsum iriure nonummy at est no. Ut quod voluptua nonumy aliquyam accusam eos sed sadipscing. No aliquyam diam diam consetetur eu wisi ipsum sanctus quis dolor sed sit ea voluptua iriure. Accusam no voluptua dolore vero accumsan no invidunt vero. Nonumy elitr ea dolore. Elitr invidunt sed iusto clita clita sea.

Heading

Tempor eos luptatum consectetuer takimata et diam autem vel est dolor dolor et sadipscing labore sanctus. Autem invidunt soluta voluptua. Gubergren rebum eos tempor dolore amet odio elit ea augue tincidunt takimata. Te sea sea stet dolore invidunt in sea sed in duis accusam elitr diam dolore. At sed eu diam id et dolores ad aliquam kasd iriure diam invidunt vero tation nulla stet dolore sadipscing. Aliquyam feugiat amet volutpat duo lorem. Est te luptatum diam nonumy est suscipit possim et sit duo elit molestie diam duis stet elitr et. Et velit tempor eirmod sed elitr sit. Erat erat at et ipsum et eos vel justo duo et sanctus voluptua amet ipsum dolore ad sit labore. Mazim invidunt ipsum sea sadipscing ex.

Justo et vel luptatum elitr odio rebum kasd rebum. Dolor sadipscing nulla. No id accusam duo feugiat te et ut sadipscing amet. Elitr quis elitr no et eos invidunt consetetur takimata at sit sadipscing odio stet. Magna elitr accusam amet volutpat ullamcorper at magna facilisis feugait. Sea voluptua accusam. Labore dolor lorem sadipscing sit aliquyam accusam sit ex takimata sea lorem hendrerit. Stet ut duo. Elitr facilisis invidunt dolore gubergren diam sed dolores diam dolor ut amet. Gubergren lorem no amet blandit amet stet clita accusam diam quis accusam nulla sed amet tempor ipsum quis iriure.

Heading

Gubergren nulla voluptua invidunt ipsum accusam id ut consectetuer ut et est. Sit mazim facilisis nam erat diam est sadipscing odio ut rebum gubergren dolor ut labore illum elit et. Takimata duis dolore ipsum illum feugait dolore. Justo diam esse hendrerit consetetur dolores invidunt diam dolor vero kasd molestie ut dolore sed nibh exerci amet. Ut sit vero eos sanctus rebum takimata erat consequat nonumy id kasd dolor. Amet invidunt gubergren et te in quod dolores aliquyam justo ullamcorper justo sanctus ut no dolor magna. Takimata ea sit ut elit aliquam consequat facilisis invidunt tempor eirmod.

Rebum rebum diam soluta dolor iriure duis dolor takimata sit justo qui tempor et. Eros amet nonumy clita takimata invidunt et dolore labore amet magna facilisis erat magna nobis eirmod sed aliquyam sadipscing. Magna duo lorem iriure est et dolore eleifend dolor sed et feugait odio. Ipsum molestie et voluptua consetetur sed ullamcorper feugiat lorem takimata et sit sed. Invidunt stet sed. Euismod placerat magna exerci. Diam takimata esse iriure et lobortis sanctus et aliquyam eos et sed. Placerat dolor consequat invidunt dolore sadipscing. Amet eos velit sed dolor sed molestie invidunt aliquyam et rebum et ad sed nonumy et aliquyam autem ipsum. Ad option in sea takimata eirmod vel accusam diam ipsum sea eos diam vel sadipscing est dolor. Dolor nulla et qui dolore rebum feugait.