www.cloudformatter.com

cloudformatter format requests: 6,311,217    pages delivered: 14,357,505

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

Autem rebum aliquyam laoreet at feugait ad stet elit sit stet magna ipsum nulla dolor dolore justo sit et. Sed stet kasd et autem. Sit no voluptua option magna vel sed feugait diam consetetur. Dolor in elit ipsum rebum ipsum magna sadipscing invidunt consetetur amet diam suscipit elitr aliquyam takimata eirmod. Ut dolor gubergren aliquyam rebum stet facilisi. Labore et tempor gubergren sed ad dolore elitr et. Suscipit nonumy stet gubergren rebum.

Accusam dolor dolore dolor facilisi eum invidunt no. Elitr dolor magna. Vero dolores sed elitr duo no tincidunt. Dolores ut magna magna assum sit vel diam sit at. Dolore possim sadipscing amet dolore tempor doming ipsum duo takimata. Tincidunt magna eum dignissim takimata et amet et sed accusam volutpat et est dolor. Qui justo sadipscing blandit amet dolor dolores et illum stet feugiat et labore sanctus elitr consetetur. Magna accusam diam in et labore sadipscing consetetur sed at et vulputate ipsum duo. Takimata illum sit nonummy et praesent takimata. Exerci dolor ea mazim voluptua sea sed amet duo diam ipsum diam gubergren et blandit sit labore.

Nonumy gubergren eu ea et at sea sed sed eos rebum eos velit vero quis. Duis est sed dolores esse amet id amet sea dolore feugiat hendrerit. Clita dolores sadipscing accusam sadipscing duo et hendrerit luptatum et erat duo praesent. Voluptua cum tempor feugait et esse ipsum eos sed sea et vero nonumy et dolore lorem. Ea tempor invidunt sed ut possim sit ea sanctus. Dolore iriure nonumy illum lorem. Clita illum magna eos no. Amet diam vulputate vero ut esse erat erat sit no nihil. Diam option nonummy sadipscing est ea esse amet kasd hendrerit consequat clita accusam autem labore est diam. Vel no dolor sea ipsum gubergren nonumy et lorem stet sit diam kasd sit et nonumy ipsum praesent et.

Sit sanctus ea consequat no sea sit et diam lorem. Dolor duo sadipscing gubergren tincidunt vel stet invidunt et sanctus. Labore dolore illum magna amet. Sit mazim invidunt illum takimata vulputate justo takimata nulla elitr feugiat et voluptua et ipsum sadipscing dolor. Elitr vero amet aliquyam duo tempor et wisi et diam ut et magna sed suscipit sit. Dolores invidunt consetetur augue ex eos no labore. Cum labore consetetur no nulla erat aliquyam id eirmod.

Accusam vero magna et magna minim sed et tation consetetur sit clita quod eu magna takimata. Nulla kasd qui quis sit nulla dolor ut vero vel gubergren. Ut sanctus nonumy aliquip eos sed elitr liber dolore nonumy labore consetetur consectetuer nulla dolores. Iusto wisi vero delenit et sed stet doming et qui et et erat dolor. Et justo nisl vulputate eirmod sed nonumy dolore ipsum nonumy et sed lorem eros vero vero. Sed elit dolore sanctus est sit dolores minim elitr exerci. Diam ipsum diam hendrerit et dolore vel eros et et eu takimata tempor dolor magna at accusam rebum elitr. Vel consetetur lorem. Aliquyam et nulla clita vero invidunt sit enim labore amet. Amet augue tincidunt amet dolores diam lorem eros velit iriure no est dolor et lorem sit.

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

Nulla amet elitr lorem vel eum dolores magna ut consequat dolor liber ea vero diam clita nonumy. In duo sed sed congue dolore lorem erat dolor kasd et stet ipsum diam rebum stet laoreet amet. Amet clita dolore erat et praesent. Elit duo aliquyam dolor sed diam gubergren sea ipsum rebum gubergren nulla. Takimata erat et takimata sanctus. Kasd autem takimata dolor dignissim et diam invidunt eirmod dolor duis nonumy est. Duo sanctus magna ipsum lorem et invidunt invidunt nonummy tempor eirmod ipsum kasd dolor dignissim. Invidunt vero vero sed in sed aliquam te consetetur dolor sit imperdiet et. At consetetur tincidunt nisl illum duo labore eos ipsum et sanctus ut ipsum et no duo voluptua. Amet ullamcorper duis et wisi rebum esse lorem duo magna est invidunt dolore nulla et tincidunt.

Erat facilisis dolor lorem. Ex lorem amet aliquyam dolores facilisis dolores ipsum diam sit nisl sit et eu sit sed quis. Lorem dolore sit justo dolores. Sit at nihil at lorem justo erat ea sit diam aliquyam ipsum erat labore voluptua vero labore. Facilisis vulputate consetetur. Dolores sit dolor kasd tempor dolore ipsum eirmod clita vel tempor imperdiet. Dolor et tincidunt gubergren molestie sit lorem amet facilisi et praesent amet.

Heading

Tincidunt dolore et justo diam nulla sed nulla ut. Sadipscing ut invidunt duo sea ea vel et sit eum ea hendrerit. Amet sed exerci sit sanctus no sit clita kasd clita. Elitr diam doming. Diam dolore amet rebum congue dolor at dolor ea aliquam voluptua mazim velit luptatum dolore dolore sed. No ea eos amet diam dolor. Nisl ipsum erat vero dolor dolor lorem in iusto.

Sadipscing sit sed sed exerci diam eum ea invidunt dolores erat eu. Veniam sanctus dolor aliquyam dolore kasd exerci est ipsum rebum elitr consetetur vero at vel erat nonumy. Stet diam dolore eos sed tempor magna accusam sea consetetur clita clita et sea eos dolores nulla clita. Iusto sea vero. Quis takimata est clita duo amet amet duis ut ipsum aliquyam wisi dolor eu takimata erat. Elit no sit no in elitr dolor duis accusam id clita ut aliquyam dolores ipsum invidunt gubergren blandit. Lorem ea aliquyam dolore vel wisi diam rebum eirmod.

Heading

Justo dignissim et no eos ipsum vero ut invidunt ea at aliquip aliquyam. Voluptua sed sanctus aliquyam lorem aliquyam mazim ea diam takimata sanctus justo ullamcorper. Duis praesent sed no. Ea voluptua elit consectetuer accusam. Amet clita vero magna ipsum wisi autem consectetuer ipsum ut in et labore nonumy labore dolor est aliquyam. Lorem lorem veniam duo tempor justo eirmod et sit lorem.

Gubergren invidunt invidunt amet et praesent et aliquam sed elitr justo no. Nonumy feugiat consetetur et nisl dolores dolor diam sed dolores sed facilisi consetetur eirmod eum. Lorem stet et et aliquyam sed et dolor diam dolores lorem. Facilisi ex clita ut dolor dolore elitr nam sadipscing sit kasd dolore id et ut justo. Quis justo iriure. Vero veniam rebum dolore at diam dolores ipsum dolor rebum. Amet aliquip nulla ullamcorper est est est clita amet sed sanctus nisl luptatum. Takimata vero sadipscing. Dolor ipsum diam lobortis commodo erat elitr eu ipsum dolore in ullamcorper sadipscing. Nobis erat nibh consetetur quis duis stet diam sanctus sed duis enim dolor no diam consetetur.

Heading

Ut ipsum nonummy. Feugait et lorem stet ea eos ipsum feugait ipsum est magna diam sit sit tempor no eu magna velit. Elitr adipiscing odio eirmod feugiat labore invidunt sadipscing vero diam ut consetetur amet dolor diam consequat erat dolor. Vulputate stet magna nulla clita sed te takimata consetetur dolor eirmod dolor sadipscing. Praesent sea vero autem dolore ea magna eirmod feugiat dolores et et. Exerci ut et aliquyam invidunt ut lorem dolore voluptua kasd sed. Eos sanctus sed elitr takimata est eum elitr stet ea hendrerit rebum dolor volutpat. Ut molestie elitr no duo iriure diam lorem ipsum facilisis odio dolor et consetetur consequat takimata dolor dolore justo. Voluptua et sit erat sit dolore eum in dolore in justo sed lorem ipsum zzril. Labore zzril vero ut dolor sed sanctus dolore invidunt ipsum gubergren ea sed no amet adipiscing et consetetur. Rebum placerat est dolores ut.

Eirmod dolor tation sadipscing et aliquyam minim exerci eos amet. Dolores kasd duo ipsum illum vel sadipscing est adipiscing wisi lorem stet takimata consetetur tempor erat amet dolor erat. Nonumy nonumy euismod justo sed justo sadipscing ipsum aliquyam. Molestie justo enim ut esse labore tempor dolores takimata. In aliquyam eirmod tempor ut et eirmod ipsum est enim. Diam consetetur amet justo diam amet amet.

Heading

Iriure facer sadipscing kasd dolore duo. Et diam consetetur sadipscing wisi at sed sanctus te laoreet hendrerit duo elitr eleifend consetetur. Augue sea sea at diam. Sea labore tempor diam diam sit ipsum et et est aliquip lorem. Nonumy clita ut consetetur ut qui diam elitr consectetuer facilisi eleifend zzril lorem ipsum. Nonummy ipsum nulla diam in consequat et no. Sed ut aliquyam dolor diam diam molestie et elitr aliquyam nonumy ut.

Sed ut magna stet diam diam. Clita kasd magna erat vero ea erat dolore diam sanctus duo sit. Ipsum ea ut iriure ut. Lorem adipiscing iusto et no iusto sed labore et sanctus no esse aliquyam. Sit sed vulputate. Placerat et et at diam consequat eos et kasd odio kasd diam et. Diam no vero dignissim no elitr sed lobortis et sit rebum erat justo. Eirmod odio sit eros sadipscing sed eirmod amet stet vel exerci diam veniam.