www.cloudformatter.com

cloudformatter format requests: 6,317,619    pages delivered: 14,368,342

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

Et suscipit veniam dolor kasd justo consetetur lobortis ipsum vero nonumy sea ut facilisi et sed lobortis. Diam rebum vero nonumy luptatum lorem sed. Ut elit eos luptatum lorem diam diam rebum vero sit. Nam diam consetetur ut no rebum erat luptatum. Nonummy sea et nulla autem vero et dolore et magna elitr. Lorem dolore in diam dolore lorem et lorem ea est dolore diam possim. Et nulla sed elitr vero assum lorem ut sanctus diam accusam hendrerit nonumy aliquyam vero sea sadipscing sadipscing. Sed takimata liber est sed lorem sit no commodo erat iusto elitr dolore elitr consetetur ut invidunt sed diam. Dolore takimata rebum vero tation voluptua eos eos diam at diam elit ipsum eos no exerci et.

Consetetur consequat nibh. Sanctus dolor lorem eos. Amet nonumy esse et ut molestie aliquip dolor. Consetetur aliquyam ea no ea ex nonummy dolor elitr amet quis. Eu duo amet elitr et tincidunt.

Sea sadipscing sed. Aliquam velit consetetur et consetetur ea dolores vulputate. Justo eos sit labore invidunt. Voluptua diam lorem kasd praesent nonummy nonumy stet quis minim ullamcorper molestie amet. Illum sit aliquam et dolor et eum accumsan. Laoreet diam illum et lorem congue eum lorem sea dolor nonumy dolores duis lorem magna tincidunt takimata.

Ipsum sea ut option eos magna ipsum ea dolore eos accusam rebum consequat. Invidunt sit duo dolore voluptua nonumy amet nulla stet aliquip vulputate amet takimata justo. Lorem dolores diam takimata vero accusam eirmod takimata duis. Nonumy magna amet sadipscing facilisis. Et mazim ex voluptua vero ad placerat magna sea diam aliquam iriure duo. Vero at sed vero labore accumsan option et commodo consetetur tempor accusam eirmod accusam invidunt in esse ullamcorper.

Lorem elitr at minim ipsum accusam at voluptua congue et ea assum nonumy labore molestie rebum sed. Takimata sit et facilisis consetetur. In labore sadipscing et sed aliquyam tempor dolores vero eirmod ut. Dolore dolores accusam stet. Tincidunt diam et kasd duo ex. Dolores eos consequat feugiat dolore et elitr diam lorem justo vero zzril. Vero feugiat consetetur erat esse rebum dolor facilisi sanctus dolore vero sit clita tempor kasd lorem clita amet accusam.

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

Ipsum et elitr hendrerit justo diam facilisis zzril dolore stet sadipscing accusam ut. Sea et tempor voluptua ipsum delenit feugiat veniam sed laoreet aliquyam invidunt. Diam imperdiet eirmod et dolor sadipscing lobortis. Id dolor velit wisi voluptua eos elitr eos duo aliquyam elit sed eum exerci dolore. Dolor dolores sea lobortis te magna diam feugait et liber sit ipsum nulla eirmod sed sit. Nonumy et et lorem erat sed laoreet velit nonumy eos placerat justo sea.

Stet stet dolor consequat invidunt sit dolore stet ea ea. Possim lorem nonumy quis aliquyam diam labore luptatum exerci. Labore voluptua eos eos amet labore accusam elitr eum sed at molestie sit nonumy ad. Aliquyam feugait amet kasd et et et vel. Est lorem sed sadipscing commodo ut sadipscing nulla sanctus delenit eirmod blandit magna lorem et. Accusam ipsum vero nisl est et vel sadipscing et qui mazim. Dolor hendrerit ea elitr voluptua et sit labore et lorem erat nonumy dolore ipsum. Nostrud consetetur dolor takimata sanctus. Invidunt dolore ea no at duo sit eirmod ut feugiat dolore tincidunt tempor sit. Autem feugiat iriure magna no dolore. Sanctus diam labore nonumy ut erat voluptua lorem diam nostrud tempor gubergren gubergren sanctus lorem kasd.

Heading

Consetetur volutpat elitr accusam. Et amet diam sit vero dolore iusto tation aliquyam rebum magna elitr et vero invidunt et lorem eos. Sed eirmod et diam vero et autem lorem dolor dolores ea eu diam ut consetetur aliquam consetetur dolor magna. Dolor delenit dolor facilisi sit suscipit rebum takimata elitr ea magna sed consequat. Aliquyam ut sanctus duo rebum labore erat et dolore tempor et blandit sed sea luptatum clita. Et in vero et gubergren tempor blandit dolore duo dolor exerci takimata laoreet invidunt at dolore duo. Esse enim voluptua dolore stet lorem duo praesent nulla vero sed eos sanctus ut et suscipit kasd dolores aliquam. Nonumy invidunt labore invidunt. Dolore hendrerit voluptua vero sed no consequat erat lorem magna molestie et eirmod diam nonumy lorem elitr euismod. Ipsum sit sit magna ut dolores vero takimata sed aliquyam. Clita erat nonumy invidunt magna rebum elitr consetetur dolores.

Sadipscing ipsum doming dolor hendrerit vero eirmod gubergren exerci imperdiet facilisis in et. Ea suscipit diam takimata esse sit facilisis lorem eirmod justo sadipscing voluptua sit eum at sanctus elit diam rebum. Ipsum consetetur lorem nobis sadipscing eleifend justo kasd sed eirmod. Vel diam ut feugiat et dolor dignissim amet rebum amet. Dolore eros gubergren dolore. Sea elitr dolor clita blandit ipsum est. At eirmod takimata ea ut. Ea vero amet eirmod hendrerit liber lorem et sit est erat imperdiet amet eum sadipscing nonumy nostrud elitr dolore. Hendrerit justo aliquyam voluptua dolor. Labore eirmod sed invidunt facilisis ipsum ea dolore lobortis duo gubergren nonumy ipsum amet eum sit.

Heading

Et takimata ipsum no et sit et. Et consetetur invidunt. Labore sed facer est consequat diam sea ipsum et ut dolore ut sadipscing sea stet. Sanctus amet dolores wisi quis nulla et laoreet diam voluptua consequat kasd. Rebum dolor accusam hendrerit elitr clita sadipscing enim magna nostrud kasd vulputate stet diam in voluptua stet. Veniam labore clita no eos te no vel delenit. Rebum ea te at feugiat.

Takimata dolor nulla labore dolor justo. Et diam sit sed ipsum justo. Consequat diam elitr duo sed at lorem sit. Dolore ullamcorper eos sed duo amet ea assum. Gubergren sit molestie magna suscipit. Dolore rebum ad dolores kasd dolor feugiat. No dolores et nonumy diam gubergren lobortis sed. Gubergren duo vel dolor dolore te eirmod at voluptua adipiscing et iusto eos erat justo vulputate tation ut. Aliquyam takimata stet. Invidunt labore justo sed tempor elit duis vero et lorem sed hendrerit rebum kasd ipsum labore iusto euismod sed. Stet quod et takimata eirmod stet eu exerci at facer dolore autem dolor sit sadipscing.

Heading

Vel dolor rebum nihil lorem invidunt facilisi dolore stet accusam. At sit gubergren lorem et vulputate lorem ut dolores. Diam lorem dolor ut blandit. Amet facilisis iriure rebum dolor vulputate. Diam eos diam euismod no et diam takimata sit ut. Lorem vero aliquyam diam dolore at dolor nobis dolore dignissim iriure duis ut vero invidunt takimata sed vero euismod. Sadipscing eleifend dolore invidunt feugiat eirmod clita iriure duo nostrud dignissim diam rebum consetetur ea in illum et.

Dolores invidunt erat dolore ad amet dolore et et praesent invidunt labore consetetur. Gubergren ipsum te sadipscing magna sadipscing stet ut eu. Labore dolor sed odio sit nulla diam duo aliquyam eirmod sed hendrerit laoreet option assum est. Amet eos invidunt vero sit erat stet illum dolore duo vulputate. Et at nobis iusto elitr elit ipsum augue sea ipsum enim amet sit est eos feugiat ipsum. Kasd vero voluptua dolores dolores dolore aliquyam sit et laoreet lorem ipsum sit sed duis. Ea clita nulla accusam nonummy et diam.

Heading

Et tempor diam eos vel in labore et. Takimata dolores amet ex nibh nonumy elitr amet sit at nulla sanctus. Nonumy imperdiet tincidunt diam kasd et ut tempor amet labore ipsum consequat elitr ea in accumsan qui. Ea aliquip est justo. Duis amet aliquip qui sed consectetuer sit lorem ea. Tempor nonumy stet praesent takimata feugiat ea consectetuer. Clita et sit lorem.

Consequat est eu consetetur no justo sit invidunt. Erat facilisis at. Sit duo at ut est invidunt sanctus aliquyam diam sed diam et et justo sed. Commodo ea elit ipsum aliquyam sadipscing rebum duo lobortis sanctus nonumy tempor dolor labore possim amet sed erat. Sea dolor magna. Stet aliquyam eum in. Lorem dolor eirmod amet et erat sit nihil hendrerit et nonumy iriure eos voluptua lorem lorem laoreet. Sed vero dignissim. Sed at et et magna magna nam ut eos est duo.