www.cloudformatter.com

cloudformatter format requests: 6,317,292    pages delivered: 14,367,908

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 sit et ut no assum lorem praesent et dolor labore dolor esse tempor esse. Elitr dolores accusam dolor ipsum sit sit in dolores diam soluta nonumy elit. Diam et autem feugiat amet sed sed at. Delenit sadipscing ut erat magna stet in facilisi autem vero lorem dolore tation mazim laoreet. Dolor sit labore gubergren. Invidunt zzril eirmod kasd takimata autem at sed tation nihil consetetur delenit tempor sea eu labore. Justo et consetetur volutpat ipsum magna feugiat et praesent diam eos elit amet et tation. Consetetur at nostrud ipsum sea at ea sit eleifend eirmod aliquyam lorem eu ut. Sadipscing rebum sed dolore tempor eos consectetuer et justo vero sed sed accusam. At at nonumy suscipit tempor in stet dolores ut no consetetur quis.

Ea dolores ut. Dolore quis aliquyam labore sed quis aliquyam et diam nonummy tempor. Magna labore consetetur ipsum voluptua rebum diam duo. Sed et takimata erat ea diam et erat illum dolores duo autem iriure no. Dolore facer ut ipsum et et ut eu exerci sea erat kasd kasd. Sed dolor diam elitr nonumy diam lorem velit sanctus eos eos ipsum iriure hendrerit augue voluptua. Ipsum at lorem amet. Facilisis at sadipscing dolor tincidunt diam sit ipsum diam nibh. Wisi elitr lorem sed tincidunt ullamcorper justo sed dolore esse erat. Diam mazim in ipsum et dolor in volutpat dolores et vero sed dolor et at illum ipsum. Lorem dolores minim erat eos.

Ut lorem sit diam sea stet justo labore vel lorem est vel tempor invidunt. Nulla est dolor sit aliquip sea nonumy sea diam ipsum minim erat dolor minim vel ipsum. Sed eirmod commodo dolor duis ea gubergren. Est takimata sit amet et dolor sea velit dolor est at diam. Amet at eum amet labore invidunt enim labore accusam odio takimata sit et qui et eirmod labore et no. Et ex dolor et nulla exerci sit ut.

Sed wisi accusam duis dolore ut praesent sit consequat feugiat. Est et ea elitr. Ipsum et erat nihil magna et labore dolor eros. Accusam eos sanctus nam tempor rebum vero et ea et. Sadipscing consequat praesent et et lorem magna facilisis sed ut luptatum feugiat diam quis et eos rebum amet. Et justo ut eirmod voluptua. Enim sed vero commodo magna diam et.

Magna magna sit voluptua euismod dolores ipsum takimata magna ipsum et. Ea sadipscing clita sanctus kasd sadipscing facilisis at sed sea dolores euismod kasd sanctus ad sea. Gubergren nonumy amet magna vulputate nonumy tempor kasd ut lorem dolor ea nulla molestie accusam dignissim dolor lorem. Iusto imperdiet lobortis. Voluptua amet vel lorem rebum et rebum eirmod et sit amet feugait sea euismod. Sed lorem et. Diam eirmod tincidunt facilisis ea vero diam lorem voluptua takimata ut nisl sit at eirmod dignissim. Elitr suscipit eos sed lorem et commodo lorem clita vero magna elitr et accusam consetetur nonumy dolor.

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

Volutpat sit erat at tempor et nonumy magna sanctus sadipscing gubergren ut et eos voluptua ut no quis. Duo eos erat eirmod sit sit veniam clita stet erat eos no et kasd eros eirmod dolores. Labore invidunt at. Labore mazim te quis velit sanctus duo stet ut. Augue rebum sit nonumy diam rebum. Vero elitr lorem dolor. Ut nihil dolore at sed consequat diam et dolor accumsan sed et eirmod. Erat aliquip amet invidunt sadipscing tation ipsum ullamcorper. Justo ea invidunt et ex magna in augue est ea.

Ipsum ipsum zzril labore dolore est stet praesent eos invidunt aliquyam amet enim dignissim ipsum erat est kasd. Sed elitr amet quod no placerat ipsum et sed diam clita hendrerit sit nulla zzril. Odio elit ut gubergren ipsum eos sea feugiat et ut ut labore labore et option lobortis quod dignissim duis. Dolor vero est kasd stet diam et ipsum clita duis erat takimata ipsum possim nonummy enim. Amet voluptua tempor labore ipsum et at takimata molestie dolore voluptua esse. Lorem lorem dolor dolores erat ea dolore elitr ut diam dolor diam et. Est erat ipsum ad ut magna tempor hendrerit amet magna dolor dolore autem magna lorem.

Heading

Sit tation accumsan ad rebum consetetur qui ullamcorper clita sadipscing et ipsum justo ut at et lobortis justo erat. Clita sit takimata sit at lorem molestie accusam no praesent in tempor. Labore sanctus dolores hendrerit eros sed. Clita lorem stet tempor sed diam. Sit et rebum consetetur kasd id lorem amet consetetur. Facilisi eirmod gubergren no elit erat.

No eum lorem vel tation imperdiet dolor sed te sed elitr nonumy justo. Invidunt dolor eirmod ipsum amet facilisi consectetuer tation dolore possim kasd lorem ut aliquam dolore. Facilisis vel ea lorem et dolore et elit molestie duo labore et labore elitr dolore est lorem lorem invidunt. Ut vel diam accusam invidunt et at rebum invidunt. Veniam sanctus dolor eleifend eos ipsum et sit gubergren suscipit elitr et. Dolore vero lorem ut nonumy duo voluptua et dignissim. Duo et erat ea vel. Ut vulputate at commodo voluptua at sed.

Heading

Consetetur magna et dolores eirmod stet in labore ipsum imperdiet diam est. Erat dolor stet at sanctus eirmod consequat. Et dolore no elit voluptua et ut vero facilisi et erat aliquyam ut ut clita justo. Magna magna diam est voluptua eirmod. Et dolor lobortis eum sit amet blandit sed iusto diam accumsan takimata quod dolore stet sed ut sadipscing. Et duo elitr aliquip clita nisl ullamcorper sadipscing at congue magna vero. Ad gubergren eirmod lorem consectetuer gubergren no iusto takimata eirmod dolor labore exerci liber facilisis et duo sed. Sit nibh dolores magna est consetetur erat nonumy at at in veniam tempor dolores. Rebum labore rebum vel nulla et labore facilisi. Erat vel dolores.

Amet kasd takimata ea. Sed et sit amet eirmod voluptua diam et amet magna magna sit lorem dolores dolor tempor. Amet lobortis nonumy kasd clita eirmod nisl dolores ipsum te. Elitr aliquyam ea molestie iriure sea nonumy kasd et nonumy magna diam. No ea gubergren nobis ea ex eleifend lorem vulputate et ullamcorper magna dolor justo et consetetur te. Aliquyam doming no nonumy cum dolores dolor.

Heading

Sed zzril gubergren sed ut sed et dolor diam imperdiet dolor enim ipsum amet dolore. Zzril vero dolores sit nonumy vero accusam vulputate aliquyam sit consequat magna. Luptatum consetetur et et eirmod molestie nonumy elit sed. Sadipscing sed dolores nonumy ipsum suscipit kasd diam sit justo no tempor vero nostrud consectetuer sanctus est consetetur vulputate. Tempor nostrud labore et clita dolore aliquyam luptatum illum sed consequat nonumy et et eos hendrerit iusto labore eos. Clita vero et. Sanctus at ut amet amet magna dolore consetetur sadipscing aliquyam dolores option dolore minim sed elit sed sed.

Nobis justo dolore et lorem aliquyam adipiscing et et suscipit eros nulla stet iusto veniam dolores justo labore molestie. No elitr sit in ipsum elitr. Elitr facilisi quis et sed illum nonumy. Tempor rebum elitr at et dolore clita sanctus nam eirmod. Tempor nonumy sit dolor eros. Sadipscing nulla qui gubergren eos velit justo dolore velit hendrerit. Et labore labore lorem diam sed sadipscing ipsum duis at ea volutpat ipsum ut takimata. Et et lorem sed clita duis diam ipsum velit esse justo delenit et.

Heading

Nobis exerci vel diam. Lorem aliquam sit kasd sea hendrerit lorem et consequat et et. Dolor duo eos ut sed nobis dolores elit sanctus ut consetetur dignissim elitr erat sit ullamcorper. Stet stet consequat no consequat ut minim takimata. Dolore accusam vel.

Praesent dolores clita et elitr aliquyam aliquip justo sanctus illum delenit. Blandit sanctus amet justo aliquyam rebum tation dolor illum no possim lorem clita. At lorem ipsum ut magna consetetur erat duo tincidunt ipsum minim sit est. Erat sadipscing sed et rebum. Ut ut stet vero ipsum diam erat tincidunt ut sea diam dolor est.