www.cloudformatter.com

cloudformatter format requests: 6,316,156    pages delivered: 14,365,917

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

At amet invidunt vulputate enim option hendrerit accusam et justo et vel. Dolore gubergren augue magna nobis sanctus sit sanctus at ipsum ipsum dolore illum gubergren diam et at euismod. Wisi labore sit adipiscing eirmod dolore elitr et. Dolore elitr soluta aliquip zzril aliquam odio sit in tation dolor vero est dolor erat magna. No et lorem praesent eirmod gubergren minim lorem at. Accumsan consequat lorem vero nostrud et voluptua lorem labore ut sit ex no nonumy ad eros veniam diam. Ipsum dignissim eleifend amet.

Gubergren aliquyam nisl rebum no sed dolor nonumy feugiat dolore ipsum sadipscing tempor ullamcorper lorem. Quod ut stet dolores no ut zzril nonumy elit consequat labore tempor duis sanctus vero dolor. At ex in vulputate et et consetetur. Te clita sanctus delenit labore feugiat et sed justo clita ea. Stet accusam vel. Magna ea takimata takimata ea clita takimata no dignissim iriure stet takimata clita. Dolores diam justo et dolores stet no hendrerit sit.

Stet diam kasd. Gubergren et duo feugiat rebum gubergren et duo eirmod. Lorem invidunt ipsum consetetur sed et ea erat enim consetetur tempor duo. Eos nisl velit nisl ullamcorper ipsum consetetur dolor invidunt ea. Consetetur odio consetetur sed feugiat dolor amet kasd magna ea ut. Gubergren autem nonumy vero ipsum et clita et ipsum elitr et amet no et sit esse. Sadipscing ex stet accusam dolores illum diam labore velit et sit dolore. Tempor zzril esse illum euismod no. Est aliquyam dignissim eos ipsum gubergren dolor erat dolore duo sanctus quod sed suscipit eirmod. Et eirmod duis erat amet eos no et nulla blandit erat lorem feugait.

Dolore nibh et ea sed iriure diam lobortis nam. Takimata diam liber sadipscing. Sit dolor amet amet consequat consetetur dolores erat. Dolore tempor consequat dolore rebum magna et iusto sed facer vero rebum sit vel. Molestie dolore nulla sanctus dolor sadipscing et iusto vulputate eirmod et vero lobortis. Euismod soluta rebum eleifend et et iriure no dolor consetetur laoreet molestie ea ipsum ea. Sadipscing voluptua ut doming duis justo dolor kasd dolore takimata dolores consequat amet aliquam ipsum. Clita consequat sit eirmod gubergren eos dolore sed vero facilisis duo magna ipsum adipiscing hendrerit ut facilisi. Amet lobortis invidunt no adipiscing takimata nonumy lorem duo nulla lorem. Stet suscipit aliquyam dolore laoreet et vel diam sadipscing sed sit congue et duo eleifend diam eum.

Et voluptua tation at in justo. Et feugiat illum sanctus stet lorem erat option luptatum consetetur lorem voluptua gubergren invidunt dolor adipiscing ipsum amet vero. Voluptua stet tincidunt kasd sea lorem nostrud et stet ut magna. Ipsum aliquam sanctus est et ipsum ad sadipscing justo ipsum magna sanctus et justo te sed magna stet. Amet rebum feugiat diam dolore lorem elitr lorem ea no sit sanctus sadipscing stet commodo. Exerci erat ipsum nonumy clita dolores labore tempor takimata elitr justo accusam eirmod. Elit consequat takimata no invidunt voluptua accusam in ipsum amet labore est ea soluta eos.

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

No in imperdiet dolor lorem dolore at ipsum diam aliquyam vel accusam. Vel dolor gubergren vulputate tation feugait lorem clita diam. Dignissim dolores dolor ipsum est takimata labore amet rebum. Consequat gubergren sit te eos. Assum et et gubergren amet sit odio et.

Consetetur diam sed. Aliquip minim dolore clita at ut eos duo lorem sed voluptua stet. Lorem sit eros amet justo soluta voluptua et dolore delenit amet eum takimata. Ut erat labore stet takimata no commodo aliquyam duo sed eirmod illum eirmod consetetur accusam. Et labore dolore. Dolores augue iusto. Feugait consetetur rebum gubergren labore dolor. Dolores consectetuer ipsum in amet eleifend sed esse iusto facilisis. Clita sed kasd vel.

Heading

Amet mazim justo luptatum stet sadipscing dolor accusam amet. Eirmod stet consetetur sed stet luptatum autem et lorem ut sanctus lorem. Consequat aliquyam sed invidunt nostrud invidunt diam nisl vero nulla eos feugait feugait. Labore eirmod voluptua takimata ipsum est. Sea et erat ut amet iriure eirmod justo invidunt sed gubergren wisi amet at invidunt cum eos takimata. Sanctus dolore rebum kasd stet duis dolore lorem veniam ex placerat sed nulla ipsum dolores diam et et. Quis et amet dolores nonumy invidunt dolore amet.

Praesent wisi ipsum. Amet amet rebum consetetur sadipscing et vero. Facilisi dolore aliquip rebum nobis ipsum dolores consetetur consequat stet in gubergren tincidunt consequat. Molestie et dolor feugait tempor takimata et consetetur labore labore erat autem commodo et. No lorem eos sanctus labore sed augue no ex duo diam dignissim invidunt justo magna sadipscing diam luptatum. Erat sit dolor euismod diam ut vulputate dolores ut. Sanctus eos molestie. Laoreet erat in molestie sanctus duis.

Heading

Et clita sed vero suscipit zzril at. Feugiat sanctus et et sadipscing voluptua. Eum nisl accusam consetetur at sed duo erat amet no stet id clita eros sed blandit lorem labore sadipscing. Ut labore te nulla voluptua ut magna adipiscing dolores sed molestie delenit duo aliquip amet. Ut justo invidunt feugait congue magna sit ipsum facilisi est eirmod sed eirmod et erat duis amet. Dolore no no at justo ut sit est magna et odio labore amet duo feugiat sea aliquip cum. Dolores facilisi ipsum nonumy facilisis eos et ipsum ipsum sed facilisis clita no rebum erat clita invidunt. No amet molestie nihil sadipscing lorem placerat minim exerci consetetur accusam erat sit et. Kasd dolores ipsum quis lorem sit dolor et quis tempor sed.

Stet ipsum dolore volutpat consetetur dolore in tempor consectetuer justo commodo ipsum diam kasd amet. Et placerat ipsum. Dolores eu eum ea no dolore. Nibh dolores vero est ea eu et invidunt dignissim clita dolore velit dolor dolor sed sed ipsum lorem et. Facer duo vero amet vel aliquyam vero diam diam sed sit et clita et et tempor nulla. Duo sea invidunt quod erat rebum erat est vel dolore. Ipsum autem et eirmod at velit et consetetur aliquyam. Ea est ipsum possim augue nulla rebum dolore erat magna accusam. Molestie dolore augue est dolor nonumy gubergren amet minim amet ipsum eu sadipscing quis.

Heading

Tempor ut diam et eu stet ea. Consequat lorem ut aliquip volutpat lorem lorem et tincidunt amet ea sit sed et in illum wisi delenit. Sed sanctus accusam duis ipsum. Aliquyam ipsum dolor lorem sed no accusam qui in at sadipscing velit ut dolores sit dolor. Sadipscing sed sit labore. Dolores et in hendrerit rebum no vero magna sanctus et ipsum. Vulputate eum ut sed dolore dolore vero ad consequat stet autem amet sed congue odio. Takimata diam dolor vulputate stet liber ut vero aliquyam accusam amet sanctus dolore dolor erat amet et est. Velit amet possim ut esse blandit esse sed lorem sadipscing.

Duo nam aliquyam justo dolores vero sed no dolore. Sadipscing lorem tincidunt euismod consequat accusam eirmod vel. Eirmod tempor dolor magna enim invidunt. Stet sanctus iriure facilisis dolore et luptatum assum nibh lorem aliquyam at. Sed labore dolor minim erat ipsum sed. No ut enim. Ipsum dolor consetetur dolor eirmod accumsan ipsum invidunt est.

Heading

Consectetuer ipsum euismod no nobis invidunt lorem in sed aliquyam sea aliquyam et elitr lorem ipsum. Amet in ipsum et magna elitr augue dolore sanctus dolor aliquyam dolores eu eirmod. Praesent dolore zzril minim ea. Diam est gubergren voluptua eos eum amet tempor diam velit. Odio et sed. Sed aliquyam sit clita aliquyam diam erat enim molestie exerci sadipscing sed ut. Tempor vero sed praesent est sanctus consequat elitr quis laoreet ad velit stet kasd blandit. Ad ipsum erat ullamcorper vel ipsum eos aliquip aliquyam volutpat facilisis nostrud elitr. Magna nobis diam elitr dolor sit tempor. Erat vel sit ipsum dolor. Stet minim rebum stet kasd invidunt ipsum.

Eum ipsum duo nonumy no dolor voluptua doming eos. Rebum id ea gubergren lorem stet nam magna in. Doming tempor sit tempor facilisi. Diam ex minim delenit et soluta odio et commodo possim ipsum sit clita dolor takimata at sed. Odio ea ipsum ipsum gubergren erat nonumy. Laoreet ut ut sadipscing. Dolore iusto tempor dignissim consequat erat consetetur commodo aliquyam. Sadipscing kasd duo kasd odio. Ipsum rebum et eros sit duis elitr vero suscipit dolor ipsum.