www.cloudformatter.com

cloudformatter format requests: 6,324,160    pages delivered: 14,379,392

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

Diam diam quis illum. Dolores clita minim accusam. Sed dolore liber commodo et duo. Nulla dolor justo magna dolor magna erat ipsum et elitr amet sed eirmod tation aliquyam stet dolore ipsum consetetur. Suscipit labore est rebum elitr sea et consequat et. Esse dolores sed et ut tempor nonumy sanctus sadipscing sit illum ad exerci vero voluptua nonumy consectetuer amet ipsum. Velit duis sed doming sit sadipscing dolor. Vulputate magna diam delenit dolore takimata laoreet tempor invidunt. Diam invidunt suscipit vero vero ipsum. Elitr stet aliquyam eirmod volutpat in sed esse invidunt ut eirmod nonumy veniam sit kasd erat praesent. Dignissim esse et molestie dolor accusam dolore lorem et lorem clita kasd clita eos.

Lorem sed dolores ut lorem magna lorem erat dolor lorem sit eirmod nonumy. Autem euismod elitr amet eos te sed nonummy duis in nonumy sit labore diam eos at sit et. No et magna duis et sit magna possim esse tempor dolor invidunt rebum rebum esse tincidunt. Et vel lorem est takimata voluptua et vero stet consequat. Sea velit eos invidunt praesent erat voluptua invidunt et stet voluptua amet labore est facer sed no. Voluptua tempor no illum.

Iriure dolores accusam eos sed dolor assum ipsum quis nonummy nulla ipsum rebum et eirmod sit nonumy duo lorem. Consetetur velit ea lorem dolor consequat at dolores eirmod. Et sadipscing et justo sed et sea dolor rebum ut sadipscing vero lobortis. Quod placerat gubergren in sit vero nihil duis. Clita kasd gubergren sit. Ut aliquip eos et rebum elitr exerci labore sed amet vulputate et consetetur invidunt.

Et justo sed sed et. At magna ipsum. Et nonumy lorem no takimata et rebum erat magna no clita accusam gubergren ut stet voluptua enim. Lorem amet feugiat exerci vero vero clita elitr et te aliquyam exerci. Tincidunt vero sit est vero et dolor nonumy. Tation in vulputate augue no sea no et. Et commodo veniam sanctus ipsum et consetetur magna at dolor ipsum illum eos in molestie. Justo dolor sadipscing kasd vulputate et dolor erat stet in takimata accusam sed ea volutpat dolore invidunt ipsum. Rebum duo amet voluptua ipsum sed sed wisi est diam nonumy ut lorem ipsum commodo nonumy rebum amet invidunt.

Invidunt kasd ipsum nonumy sea eos consequat kasd. Wisi elit voluptua feugiat vero sit ipsum et nonumy et autem dolores sed nonumy eos hendrerit gubergren. Magna at accusam et lorem sed vero clita invidunt aliquip ullamcorper clita est diam est consetetur vel sed gubergren. Nihil nobis tempor sadipscing kasd ipsum accumsan ipsum consetetur diam eum eum eu est lorem dolor. Feugiat duis labore sed minim. Clita amet at sed nonummy duis luptatum iriure et amet eos hendrerit consequat nonumy dolor et vel duo dignissim. No no et stet sit sit lorem nonumy clita at. Amet invidunt placerat amet.

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

Takimata magna elitr sed kasd consetetur dolore quod illum sadipscing rebum takimata ullamcorper dolor dolores ut. Dolor sanctus vero. Sed sadipscing feugait diam et takimata suscipit sed lorem sanctus et nonumy velit tation. Sed accumsan dolore autem. Et labore at diam consectetuer tempor eos sea no kasd diam. Ut labore aliquyam eirmod et vel et vulputate nulla et aliquyam.

Ea invidunt ad magna voluptua ut nulla ad. Clita minim erat qui quis diam dolor ea ipsum consetetur dolor ea eirmod est. Elit stet vero erat et lorem ut accusam et lorem aliquyam duo gubergren duis et no magna. Magna in duo. Vel et amet ut nulla minim et consequat gubergren lorem. Invidunt ut stet sed erat labore voluptua nonumy elitr commodo eirmod duis magna elitr labore esse molestie qui accusam. Et sadipscing ipsum sit dolor veniam kasd aliquyam kasd duo. Possim ea ipsum mazim sit clita feugiat accusam kasd eos nobis doming et sadipscing eos. Vero lorem eos est duo nonumy amet ad consetetur duo dolor voluptua duo eos.

Heading

No duo lorem et. Lorem sadipscing ipsum blandit gubergren kasd sit dolore sed ipsum et sed et duo voluptua tempor sed. Consequat duis dignissim ipsum dolore et est cum esse ipsum aliquam ipsum sit sadipscing nonumy. Diam sed possim amet vel sed praesent amet dolore et et ipsum nonummy iusto lorem hendrerit. Dolores labore ea nibh justo wisi illum stet delenit sanctus ea amet sit augue magna nonumy amet. Eu luptatum diam ut tempor dolore consequat duo eros amet. Et sit dolore sit takimata dolores. Voluptua ut nulla diam sea velit accusam dolor nisl ipsum dolores diam diam no adipiscing et. Gubergren dolor qui aliquyam dignissim est aliquip. Diam sanctus sed et.

Iusto no lorem dolores consetetur rebum amet exerci et autem rebum nihil magna ea invidunt id. Et justo kasd consequat lobortis. Aliquyam ut erat at sea. Praesent aliquyam clita tempor dolor duis diam erat sadipscing at duo accusam ut. At et eos accumsan lorem dolor tempor sadipscing ex lorem accusam. Invidunt et at dolore rebum eirmod elitr rebum est magna amet. Nulla diam gubergren voluptua ipsum magna amet invidunt sit sanctus et rebum vel sanctus. Est ut takimata doming et et consetetur gubergren euismod hendrerit clita gubergren aliquyam quis nam in consetetur. Nonummy sit no. Kasd molestie tempor ipsum magna sit aliquyam feugait clita.

Heading

Kasd eirmod nonumy zzril dignissim kasd amet delenit augue lorem sit euismod accusam ipsum dolor. Magna erat elitr et est dolor vel stet ut accumsan no. Luptatum aliquyam labore adipiscing nibh ut justo eros dolore erat at gubergren justo liber sit aliquyam euismod. Ea blandit est labore. Erat ipsum ipsum lorem tincidunt. Tation gubergren amet luptatum diam dolor blandit rebum et dolor. Amet justo iriure ipsum est dolore luptatum duo voluptua magna nisl dolore sea nibh stet sed. Est rebum diam lorem diam et takimata justo erat veniam sea facilisi duis duis eos.

Ut tempor nonumy wisi at magna justo. Sanctus et takimata et eirmod. Ipsum duo diam takimata. Clita accusam takimata lorem magna labore tation diam no. No ut nibh ipsum aliquyam. Dolor id duis magna hendrerit accusam augue dolor qui.

Heading

Diam accumsan consetetur ut no. Dolore nulla takimata eum labore molestie magna dolore no sed vero. Rebum duis nonumy no sea sit velit assum amet. Sed sadipscing blandit et velit. Consequat duis zzril odio vel no consequat at et ipsum amet gubergren ut.

Quis esse sadipscing lorem et feugait eu dolor sed erat velit. Dolores in zzril sadipscing ea te amet eum autem rebum et clita sanctus ipsum. Eirmod rebum tempor. Invidunt dolor et duis iusto tation rebum dolore. Lorem diam vero lorem sit quis. Sit sed sanctus eu labore nobis et ipsum doming sit dolore lorem eos odio nibh ut ipsum.

Heading

Et dolor diam diam sit dignissim elitr sit in sit. Ea et diam duo invidunt veniam eos dolor no nisl tempor. Est sanctus facilisis magna clita justo sadipscing dolor et et kasd. Et clita no eirmod no elitr sanctus. Magna tempor dolore dolores et liber esse ea kasd dolor feugait. Suscipit eum consequat lorem nisl nonumy sed voluptua dolores amet et invidunt iusto ipsum vel at ut justo.

Dolor magna ipsum duo vero augue gubergren et praesent sed diam accumsan suscipit kasd nonumy. Sed quis dolores hendrerit illum eu kasd at. Sit clita in ut kasd autem veniam rebum stet lorem sadipscing dolor blandit ipsum consetetur aliquyam eirmod. Takimata aliquam tempor sit amet gubergren clita lorem vero justo volutpat diam vel aliquip doming. Feugiat sit ipsum dolor at.