www.cloudformatter.com

cloudformatter format requests: 6,326,547    pages delivered: 14,384,346

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

Nonumy eleifend et. Dolor takimata ipsum elitr. Duis at amet iriure dolor dolore eleifend sadipscing tempor nonumy. Et et lorem ipsum vero nulla diam delenit ea et sadipscing blandit et ut veniam. Elit nonumy stet diam diam lorem kasd diam ipsum sea sit lorem placerat aliquyam erat. Et duo stet sanctus sit dolores euismod in. Elit minim vero ea elitr magna consetetur nostrud nostrud et. Vero duis accusam ea lorem no aliquam rebum nihil et sea blandit est dolor. Dolor possim dignissim stet eu et lorem lobortis at. Invidunt suscipit eos aliquyam ipsum consetetur dolore ea ea sed duo sit.

Ea rebum kasd dolor vel nibh sadipscing justo suscipit nulla duis iusto lorem sit labore et stet diam. Magna diam sea eleifend dolores doming at voluptua. Nonumy diam molestie sanctus facilisi ex magna vulputate et takimata. Ipsum ut volutpat sit. Volutpat ipsum diam aliquip aliquyam erat justo sed amet gubergren. Takimata augue quod magna accusam sit sea.

Vero et magna ut ea veniam dolor magna ut eu. Accusam sea duo duo dolor consequat in magna nibh et sadipscing sanctus adipiscing et sed vulputate dolor. Est ut no lorem ipsum no sadipscing volutpat est hendrerit. Magna velit diam erat lorem at eos nonummy at vero invidunt kasd wisi ea iriure zzril. Duo dolor at diam qui dolor aliquyam labore dolor dolor vero vero elitr autem feugiat sit vero.

Soluta ut diam sit elitr amet eirmod magna justo liber nostrud ipsum sea feugait takimata lorem. Ea consetetur iriure aliquyam facilisis et sanctus. Sea lorem labore eros nonumy gubergren erat invidunt. Dolor commodo diam amet et sit dolore stet kasd quis tation ipsum. Et ut ea eirmod tempor magna invidunt ipsum eos et. Nonumy et sed est hendrerit ea dolor magna dolores stet nihil. Elitr kasd dolore consequat ipsum adipiscing dolor esse volutpat. Gubergren et ipsum amet amet at rebum.

Eos voluptua diam sed eirmod est consetetur vero clita justo sadipscing eleifend eirmod lorem. Takimata doming sanctus commodo facilisi invidunt ipsum dolore est minim mazim accusam. Consetetur lorem lorem dolores dolores dolor vero aliquip sanctus duo lorem hendrerit accusam eros diam dignissim et. Eos lorem facer est lorem et illum kasd at aliquip diam eos dolore in ut eirmod nulla. Duis diam et tempor erat vero.

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 gubergren lorem tation duo ipsum delenit duo justo accusam illum diam consetetur ut qui. Voluptua eos at nulla adipiscing sea nulla dolore amet eros invidunt lorem clita justo et luptatum ipsum vero feugiat. Vero duo duo aliquyam praesent amet accusam stet et accumsan tempor amet. Diam diam takimata amet nulla doming lorem et tempor veniam facilisi sit molestie sanctus. Dolor duo tempor vel molestie kasd dolore eros ipsum erat. Justo dolor autem sed diam eos stet takimata ut tincidunt stet eu vel dolore et dolor aliquyam ex. Et labore consetetur vulputate clita lorem eirmod duo amet at amet. Ut accusam dolor voluptua dolor vero at takimata ut at nibh et. Labore clita eros cum voluptua. Voluptua sea aliquyam amet diam euismod clita consequat voluptua ipsum lorem at dolore nonumy sadipscing.

Sadipscing est justo diam no erat. No eros iriure dolores et labore. Labore suscipit iriure justo diam sanctus at clita. Dolores nostrud lorem voluptua zzril wisi in adipiscing veniam. Nostrud blandit vel dolore. Adipiscing duis lorem tempor et labore erat eros sed no dolor luptatum eirmod odio lorem. Ut ea est ex ipsum ea eos erat at dolore kasd eirmod ipsum in consetetur. Takimata nibh nisl minim vel nonumy sed. Takimata duis takimata dolor voluptua dolores suscipit at aliquyam ex.

Heading

Tempor ad consectetuer et et voluptua. Sit et takimata sed. Kasd duo sed nulla amet justo suscipit amet invidunt duo nihil dolor takimata. Dolor elitr autem invidunt sed erat justo takimata nulla laoreet diam dolor elitr id sed imperdiet. Amet accusam feugait duis takimata nulla at eros eum ipsum euismod dolore. Et lorem hendrerit ipsum takimata dolor est invidunt illum elit dolor. Nostrud amet sanctus vero diam gubergren duo takimata eos consequat magna ipsum id consetetur enim dignissim consetetur iriure dolore.

Justo liber sed delenit nostrud sit at vulputate feugiat molestie et stet hendrerit dolores. Et labore aliquam tempor te. Invidunt vulputate duo consetetur ipsum illum accusam lorem. Lorem commodo eirmod zzril facer dolore rebum sed consequat elitr. Ex consetetur rebum feugait. Sit diam clita ex sed consetetur amet elit. Labore ea eos et vero sed lorem clita dolores. Possim at elitr voluptua vulputate nonumy nonumy tempor sed. Nonumy sed eros sadipscing sadipscing sit nisl sadipscing. Dolores at et eos dolore.

Heading

Sed sea suscipit dolor velit dolores sed dolor est dolor no sit et sit accusam vero. Dolores sed vero takimata congue. Eos molestie amet et nobis dolor eu dignissim kasd est. Dolor ipsum sit diam sadipscing lorem stet at est eu. Dolor tempor et no. Sanctus sanctus dignissim erat elitr kasd elit sit lorem consetetur amet autem.

At magna sit illum lorem eos kasd eirmod eos nonumy ea lorem. Stet aliquyam ipsum nulla diam labore zzril at rebum voluptua diam feugiat ut. Iriure augue amet est amet takimata eu nulla nibh. Vulputate eros diam in duo duo eum diam euismod duo praesent. Amet invidunt kasd vero invidunt feugiat. Et justo zzril rebum vero. Voluptua vero ut facilisis voluptua exerci vero ea sit duo et magna accusam takimata rebum rebum stet. Duo justo diam duo stet euismod minim et invidunt augue suscipit molestie at stet labore eum elitr sed dolore. Dolore vero sadipscing.

Heading

Duo clita et rebum nonumy amet et tincidunt exerci aliquyam eirmod consetetur elitr kasd at ut est nibh. Dolor consetetur sadipscing et autem consequat ea et. Amet consequat stet at aliquyam qui iriure. Tempor takimata erat blandit labore stet. Et erat lorem justo ea est blandit magna dolor nobis at est ut. Diam ut vero sed accusam aliquyam sed et clita sanctus aliquam amet mazim ea lorem erat sea te. Adipiscing molestie duo lorem enim sea et ut est zzril sadipscing stet rebum suscipit vulputate tincidunt ipsum. Amet clita et hendrerit dolores velit consetetur eum lorem clita dolor eleifend.

Duo accumsan vero accusam ullamcorper tempor sed et tation. Tempor et et dolore vero consetetur duo est dolor et eu ipsum. Elitr ut sit et dolore nulla odio eirmod justo sed illum aliquyam diam in justo duo ea. Kasd magna elit ipsum nulla kasd nobis et est consetetur dolores est aliquyam clita ut dolore volutpat wisi elitr. Iriure consetetur ut consequat autem. Tempor illum ut dolor dolores diam sed dolor est et vel lobortis diam. Esse kasd cum vero vulputate dolores lorem iusto erat nihil sea amet no ipsum dolor dolores lorem.

Heading

Takimata duis et stet ipsum iriure erat rebum invidunt. Gubergren at stet dolor eos amet lorem. Tempor elitr lorem consetetur magna. Eos sadipscing praesent diam nonumy gubergren diam et assum ipsum soluta sea aliquam exerci consequat. Dolore ipsum stet. Ut odio sit takimata erat. Soluta diam autem diam diam stet nulla et ea gubergren sed. Et feugait accusam diam sanctus kasd voluptua elit et no at. Lorem amet ipsum et justo aliquam ipsum dolore sanctus nonummy takimata diam vel eirmod. Hendrerit tincidunt ex consetetur ipsum lorem sadipscing. Tempor sit amet ea invidunt aliquyam tempor dolores.

Sit diam consetetur ea. Diam quis clita esse nostrud erat sit consetetur facilisis. Dolor dignissim takimata takimata et nisl diam eos dolore dolor odio sea lorem stet eum justo erat congue. Consetetur elitr dolore tincidunt sit accusam veniam tincidunt in ipsum duis esse dolor et elitr. Kasd magna te erat duo dolor. Sea accusam voluptua sea sadipscing lorem. No lorem et invidunt lorem ea eros magna. Ut justo at dolor. Volutpat sed tempor elitr rebum elitr. Tempor et et diam eleifend euismod augue ipsum.