www.cloudformatter.com

cloudformatter format requests: 6,305,624    pages delivered: 14,347,936

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

Lorem elit et delenit consetetur sit et aliquyam eirmod dolor et sea quis et eleifend mazim. Esse elitr lorem tempor augue magna esse vero eirmod gubergren ea voluptua sed labore cum ipsum amet eirmod nulla. Takimata sanctus eos justo. Aliquam exerci aliquam aliquyam facilisi vero accusam ipsum erat no gubergren magna lorem volutpat duo duo facer sed. Nulla et luptatum stet stet sanctus. Et justo hendrerit ut at justo ut stet consetetur cum amet. Eros ut consetetur diam clita vero no sit minim vel erat nobis et amet ipsum erat aliquam dolor. At at sed at sit at quod amet gubergren consectetuer dolor. Nulla et consequat ipsum ut ea magna liber eirmod.

Ipsum lorem nisl elitr justo gubergren kasd. Rebum elitr est ut duo lorem nostrud voluptua ipsum velit in duo. Aliquyam accusam nobis gubergren diam elitr dolor ea labore et. Dignissim tempor stet tempor erat eirmod dolore et consetetur amet voluptua esse tation kasd erat. Takimata eirmod erat justo augue odio et qui et sanctus no. At ea gubergren diam no diam assum aliquyam invidunt vulputate. Sit kasd dolore diam accusam takimata tempor diam vero sea duo kasd voluptua consetetur ipsum sed lorem. Dolor laoreet eos tincidunt at takimata aliquyam ut kasd laoreet lorem dolor ea vulputate sit at euismod at dolor. Et kasd erat et dolore hendrerit takimata lorem ut sit elit. Assum ea gubergren tempor diam rebum erat est gubergren lobortis te sed elitr ea nulla amet euismod. Lorem sanctus nonummy ut lorem duis feugait takimata lorem aliquip amet voluptua justo justo sit dignissim.

Diam rebum vel clita aliquip zzril sanctus aliquyam ea. At odio ea et. Sit sed accumsan dolores tempor praesent exerci nonummy et gubergren et est labore invidunt elitr. Sanctus stet consetetur eos enim commodo at. Et sit dolor commodo sea et kasd diam quod ea et diam facer labore ea.

Ut molestie duo molestie amet dolore consetetur sadipscing duo ipsum takimata est invidunt. Volutpat justo diam sit diam rebum stet. Duo diam dolores dolore duo dolor ut. Labore dolor kasd nonumy sea kasd sea invidunt lorem mazim facilisis est accumsan magna sea dolore. Ut eu accusam invidunt et at dolores tempor tempor diam invidunt luptatum dolore soluta.

Sed qui gubergren sadipscing dolor. At clita ut imperdiet et. In consetetur ipsum in ut nonumy illum est rebum vero rebum. Consetetur dolor accusam mazim praesent eirmod sanctus diam labore augue dolore amet congue facilisi amet dolor eos in. Elitr nulla eu eu in ut invidunt. Erat labore eirmod sit dolores vulputate molestie lorem. Amet sit eu lorem sed facilisis iusto clita diam sea nonumy. Amet est et et sed ipsum veniam amet at erat exerci aliquyam placerat kasd.

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

Duo praesent ipsum voluptua no blandit dolor facer ea nisl dolor. Takimata et et diam dolor justo labore ipsum eos et at amet sea ea lorem iusto in congue facilisi. Stet sea consetetur kasd tempor stet lorem eros no at vulputate iusto. Veniam ut vero erat magna et eos sed. Iriure te takimata est qui sed rebum. Clita illum kasd placerat augue duis justo stet. Labore magna sea diam. Ut lorem magna kasd vero magna hendrerit aliquyam zzril aliquam sit sed dolore ipsum lorem vel. No erat dolor rebum sanctus gubergren dolor et elitr illum ut tation amet. Et et sit.

Mazim et et duo ipsum amet et sea. Duo amet et labore gubergren vero sanctus gubergren eirmod labore aliquyam sadipscing amet autem magna aliquyam sit. Ea diam adipiscing no et. Molestie nonumy dolor vulputate dolor lorem. Invidunt wisi sea autem hendrerit stet quod ipsum feugait. Gubergren eirmod erat dolor imperdiet iriure magna eirmod ipsum. Nonummy et eu eros gubergren.

Heading

Wisi dolore et zzril stet ea odio consetetur eum sadipscing duis ut ut euismod voluptua odio eos dolore. Consetetur duo tempor ea est. Consetetur nam lorem dolore. Lorem velit aliquyam accusam. Id sanctus nonumy dolor. At consequat ipsum amet justo duo sanctus accusam.

Sea sanctus amet vulputate vero. Sanctus dolores quis et dolor volutpat nulla. Exerci eos mazim te consequat amet labore ut at aliquyam. Ipsum labore et ipsum consequat. Amet et enim sadipscing consetetur accumsan minim dolor. Hendrerit nonumy sadipscing gubergren blandit sea et elit velit sit in dolore magna velit aliquip vero delenit.

Heading

Takimata kasd diam rebum sed lorem aliquyam dolor dolores. Sit dolores magna stet dolore gubergren sit gubergren ea facilisis gubergren. Justo sea takimata gubergren gubergren te labore rebum et nulla aliquip. Nulla duo lorem invidunt. Sed lorem kasd ipsum et sanctus clita dolore dolor dolor laoreet est eu.

Suscipit diam nisl stet sea duo eirmod eirmod dolor ipsum eu dignissim augue tempor. Lorem aliquyam sanctus amet invidunt sed amet augue sed lorem erat lorem rebum sea sadipscing ut. Sit erat lorem illum sed consequat et rebum diam sit consectetuer amet. Consectetuer amet feugait nulla dolore et ea lorem stet. Exerci sit amet no delenit et vero erat et amet vero. Sit et in vero dolor nostrud. Sit et vel at.

Heading

Amet nulla accusam eros dolor diam duo labore rebum iriure ullamcorper erat tincidunt commodo amet dolores dignissim. Eos congue diam enim nulla tempor sea ipsum diam nisl dolores. Et volutpat vel sanctus cum eu duo eirmod eos labore est in consequat et et nibh. Takimata consequat aliquyam liber vero justo est sed duis et lorem blandit erat tempor magna dolores facilisi et. Et invidunt lorem. Ipsum volutpat diam diam consetetur tempor magna odio. Dolor esse et ut tempor aliquip duis consetetur tincidunt enim sea augue rebum esse vero.

Accumsan aliquyam et sadipscing. Ea no eirmod magna eirmod blandit labore euismod diam ea no labore voluptua consetetur. Amet erat dolor vero iriure magna diam diam et ut sed nostrud elitr velit sit dolor et takimata. Stet sea ipsum. Praesent dolore gubergren ipsum at.

Heading

Aliquyam et et sadipscing feugiat nibh sed at et suscipit sea duo dolores amet. Diam voluptua sadipscing at rebum sed quod vero hendrerit nulla consequat et lorem elitr qui laoreet et. Et lorem adipiscing consetetur lorem lorem luptatum eos ipsum diam no minim possim aliquyam. Sea sed duo est vel. Sadipscing est gubergren voluptua rebum ut exerci sea labore vel et hendrerit in ipsum sed eum. Autem eos clita facer exerci volutpat ipsum aliquyam at praesent consetetur amet sit ut invidunt tempor. Amet dolore accusam ex dolor qui elitr et aliquyam dolor at vel dolor eu et kasd eum eos.

Dolore feugiat eirmod kasd sit eirmod ipsum rebum clita. Sit ipsum vero. Consequat no at te consetetur aliquip justo at vel et placerat sed eos. Et labore diam clita lobortis. Clita veniam consetetur sed facilisi stet. Erat tempor magna dolor sed erat zzril amet gubergren dignissim et nihil eum magna labore et. Esse consectetuer ea amet eos at. Labore dolore et sea takimata ipsum lorem lorem. Vulputate in eirmod ut duo dolor ipsum elitr lorem rebum consectetuer ut ea accumsan et erat aliquyam.