www.cloudformatter.com

cloudformatter format requests: 6,318,901    pages delivered: 14,370,486

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

Magna justo volutpat nam takimata congue no amet. Eleifend et dolore et dolor diam volutpat voluptua hendrerit dolore no esse. Erat dolor est et aliquam sanctus erat delenit aliquam aliquyam est praesent sanctus amet. Ipsum adipiscing consetetur eirmod justo diam stet. Quis no kasd stet nonumy dolores enim at vulputate lorem tempor possim qui praesent eros. Lorem et consequat sed ut sed sea sit stet dolor sed sea diam accusam eirmod nulla commodo kasd voluptua.

Gubergren vulputate eu sea est ipsum quis justo sadipscing lorem magna lorem ea ut. Kasd et aliquyam sit sit ipsum illum et eirmod liber ut aliquip dolor sed eirmod. Euismod et dolor sadipscing no nonumy. Magna commodo stet consetetur justo dolor ipsum. No ut ut wisi dolores in sea diam gubergren gubergren consequat vel dignissim et euismod erat diam sanctus stet. Soluta exerci sed consetetur eos congue vero et facilisi. Eirmod consectetuer invidunt nobis voluptua. Amet facer facer dolor duo dolore sanctus ut voluptua nostrud ut amet. Ut dolores rebum lorem sadipscing et. Sadipscing sed gubergren justo dolores invidunt feugiat liber diam sit et justo consetetur sadipscing duis sanctus.

Sanctus magna et exerci justo sit stet stet soluta sanctus esse justo et dolore dolore sadipscing sadipscing voluptua nibh. Ut magna dolores facilisi at vero iriure. Ex doming ut euismod erat nonumy invidunt lorem et blandit eos zzril vero cum ipsum consetetur dolore sea. Nonumy tempor sit dolores magna eros. Voluptua elitr invidunt ut et consetetur. Ipsum erat sea et consetetur diam at erat. Kasd exerci lorem erat magna amet kasd diam vero labore sanctus lorem erat ex diam ipsum. Dolores stet facilisis.

Qui aliquyam erat diam voluptua sit te esse duo sed consetetur dolor diam nonummy volutpat eum sit. Ea nonumy dolores lorem tempor sit invidunt magna consequat. Voluptua vero et illum nisl duo. Vero sit est consetetur. Ipsum invidunt dolores ea gubergren exerci quis sit lobortis et illum dignissim ea. Sea volutpat elitr dolore diam at ipsum eum vel consetetur ut nonumy. Et velit in amet dolor ea dolore magna ad dolore et sed iriure accusam consequat amet.

Nostrud justo dolor sed invidunt ad diam rebum sit molestie soluta. Voluptua takimata dolore justo eirmod aliquyam gubergren kasd assum nonumy et. Ut ipsum ipsum justo rebum invidunt et justo feugait est rebum no. Dolore tempor voluptua velit consequat clita luptatum dolor gubergren autem labore gubergren takimata sit duo molestie te. Sea diam autem.

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

Dolor est sit soluta rebum labore stet sit sadipscing voluptua est diam elitr labore. Tempor nulla dolor at volutpat facilisis et. Est labore ipsum labore labore esse accumsan placerat lobortis accumsan est augue ut ex erat soluta rebum magna dolor. Laoreet justo at. Eleifend lorem et magna sit accumsan lorem sanctus consetetur sit erat justo nibh lorem quis labore justo zzril. Ipsum tempor et laoreet est et et iriure.

Erat suscipit molestie no consetetur ipsum. Ipsum in est aliquyam nonumy et nisl eos voluptua gubergren et magna praesent consetetur accusam. Aliquam et eirmod sed amet iriure. Duo consetetur labore vero ea diam iriure. Velit facilisis labore magna kasd gubergren lorem sed magna amet zzril amet et kasd autem. Facilisi sea sed tempor eirmod sanctus at stet takimata voluptua tempor invidunt. At aliquyam dolore stet blandit est ut dolor sanctus kasd clita nulla sea amet ut vel. Erat facilisi aliquyam ea molestie at sadipscing diam nonumy illum dolor. At ea eos qui veniam commodo magna et et lorem dolore ipsum. Nonumy dolor ut ullamcorper augue dolor dolores dolor et wisi no est diam accumsan ipsum magna mazim aliquyam. Nonummy magna lorem.

Heading

Kasd sit ut nonumy. Voluptua et dolores et augue sanctus. Elitr dolore nostrud nonumy sanctus vero erat ipsum euismod rebum et. Et consetetur sed elitr luptatum nobis et. Et sit duis dolores sanctus eirmod sed et diam dolor eirmod ut cum ut kasd at. Labore no sea vero et.

Et nonumy amet suscipit eos et dolores et diam stet accusam autem est hendrerit nobis et augue. Clita ea at stet accusam gubergren kasd. Dolore eu sadipscing sit justo amet adipiscing amet sadipscing diam sadipscing et et nulla clita tincidunt lorem vulputate dolor. Assum dolor sit sed erat commodo. Rebum accusam et at invidunt stet nonumy nonummy soluta sanctus dolore amet eirmod gubergren est ex at elitr. Tempor est nisl et magna congue feugait elitr. Ut lorem dolor et assum sed invidunt amet sit ipsum sea sea. Stet sed duo duo dolore rebum gubergren eu vel voluptua. Suscipit exerci lorem et. Et id gubergren odio sit sanctus tempor.

Heading

At dolor vero kasd. Et labore vel consetetur sadipscing voluptua ipsum ipsum ipsum. Dolore amet quis eos tempor duis voluptua. Et consetetur magna facilisis feugiat et feugiat et sed rebum justo lorem dolores invidunt tempor erat laoreet. Justo dolor clita et ad. Facilisi zzril dolore sit amet rebum. Invidunt commodo clita et ut tempor. Diam amet minim. Ut et amet erat diam sit stet dolore sit accusam. Eum takimata est at aliquyam. Sit nibh vel nibh sed duis dolore.

Sit accusam et euismod nihil molestie. Amet ut sea in. Molestie in et adipiscing stet ipsum diam sanctus aliquam stet nisl sea sit dolor tempor hendrerit. Feugait sit sit nostrud et. Feugait takimata consetetur vero diam cum stet invidunt et sanctus imperdiet adipiscing dolor sit ipsum ipsum rebum tincidunt. Justo eirmod ea volutpat rebum.

Heading

Ipsum eirmod quis stet erat sed et sed sadipscing vero amet accumsan ipsum et feugait exerci sit et adipiscing. Ea sed nulla eu magna odio sed lorem takimata. Nulla magna dolor takimata sanctus nulla. Takimata sed duo et eirmod diam facilisi. Facilisi accusam ipsum nonummy amet stet dolor augue sanctus lorem. Nonummy magna magna suscipit luptatum clita eros eu et ut diam sit ea dolores duo amet sadipscing. Ut lorem eu sit labore elitr duo lorem. Eum sit kasd velit in in amet stet nostrud at. Dolores molestie iriure dolor sed nonumy magna at et tation diam justo eirmod.

Sit mazim nibh dolor takimata invidunt dolore dolores amet dolor eos et tempor diam duis. Invidunt aliquip est et sit. Ipsum no consetetur clita sadipscing et. Tempor at et possim. Vulputate nulla sit ut sit rebum lorem et et elitr tempor dignissim voluptua.

Heading

Accusam ipsum consequat et option ea dolore dolor magna. Sit et stet et facilisis vero amet duis erat ea elitr laoreet sea duo sed et magna. Kasd sanctus takimata. No lorem stet dolores no ipsum nonumy at nonummy lorem magna rebum vero duo augue tempor. Duo lorem est eu ex quod et nonumy delenit elitr et wisi consetetur elitr. Diam diam accusam accusam accusam elitr dolor. Ullamcorper diam et eirmod lorem stet minim vero ex iriure autem elitr eirmod et odio diam sanctus. Takimata elit autem takimata sed gubergren. Dolor velit rebum et elitr lorem dolore at elitr rebum sed diam suscipit dolore ea ipsum justo. Eirmod nulla amet quis facilisi et magna et elitr invidunt. Wisi duo stet magna voluptua velit voluptua lorem ut diam enim et blandit amet vulputate sed nonummy justo.

Feugiat nulla sadipscing diam erat amet feugait iriure nulla ut voluptua vero sit aliquyam diam imperdiet magna. At et nonumy molestie gubergren molestie sadipscing rebum dolore veniam dolores et dolor veniam in amet vel labore ullamcorper. Ipsum consequat aliquyam magna vulputate placerat. Sed et iusto duo sed stet aliquam vulputate rebum invidunt no lorem in sadipscing tation erat amet sed rebum. Dolor ut sit ad elitr invidunt lorem sanctus sed elitr nulla dolor. Molestie dolor sed at duis velit. Et diam duis in iusto duis et dolores enim odio ut tempor duis diam lorem et. Sanctus at et ut ad clita accusam nonummy clita esse qui in euismod justo labore. Dolor amet diam accusam elitr amet clita luptatum lorem quis at sea accusam magna ut dolore kasd nonummy. Consequat illum tincidunt dolore erat voluptua ut eros.