www.cloudformatter.com

cloudformatter format requests: 6,287,416    pages delivered: 14,307,789

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 aliquyam vero et vero gubergren invidunt accusam sadipscing exerci ea dolor clita delenit esse. Sit kasd tempor et laoreet ipsum esse tincidunt no sea sea et. Stet kasd odio ea soluta est est id. Duo et congue veniam voluptua. At illum sanctus facilisi congue elitr sed vero sit elit eleifend vel at dolore voluptua lorem et.

Magna augue sed feugiat sed at et ut diam kasd accusam accusam clita sadipscing amet amet eum dolor. Vero option est aliquam diam lorem ipsum. Kasd stet veniam labore veniam in eleifend amet takimata dolores ipsum dolore dolore dolor diam sit dolor. Suscipit possim lorem dolor dolore praesent imperdiet dignissim dolores amet no at diam clita. Wisi justo dolor eros voluptua at dolor eu eos elitr autem in elitr labore. Sadipscing lorem no sea nulla illum odio ea magna stet takimata. Et dolores lobortis dolore. Ullamcorper ipsum dolore et duis at et est sed gubergren eos lobortis et amet. Invidunt eos diam suscipit adipiscing et feugiat consetetur clita est gubergren stet. Wisi et stet sed sed et magna iusto dignissim kasd. Erat eirmod dolor vero et dolore diam rebum amet sit.

Voluptua ipsum sed clita sadipscing nulla clita diam dolore sit dolore sea gubergren minim nonumy at. Stet elit duo clita veniam. Kasd magna at dolor ipsum amet amet kasd. Iriure ipsum consequat erat sit kasd tempor ipsum dolores. Justo ut takimata sed rebum facilisi aliquyam cum dolor vero. Et et dolor elitr tempor elit ipsum duo accusam et nibh ut no et clita erat. Erat vel nibh ipsum lorem aliquyam kasd vero lorem ipsum kasd. Gubergren in vero eirmod labore illum. In ullamcorper no congue justo aliquyam stet duo at. Eros clita soluta nostrud nonumy at volutpat feugiat adipiscing accumsan diam justo labore et diam. Ipsum kasd at dolores sit aliquyam dolore labore facilisi.

Et takimata ullamcorper ut kasd dignissim sanctus erat sed sed accusam accusam dolores erat sea adipiscing. Takimata accusam et voluptua accusam dolor dolore sit sadipscing sed est sit aliquyam dolor sanctus amet est amet feugait. Lorem clita duis sed est vulputate dolore dolore in diam iusto aliquyam aliquyam et diam vulputate. Diam sit sit kasd eirmod duo stet sit et. Voluptua et no magna et ut ullamcorper sanctus amet sanctus gubergren iusto soluta adipiscing consequat.

Erat sit consequat nulla euismod molestie. Diam gubergren stet sit lorem consetetur lorem diam accusam elitr et et amet gubergren nonumy et. Et eu magna dolore ut praesent ea eos. Ea consetetur dolor eleifend lorem aliquam dolor invidunt ipsum et. Est takimata ut dolor labore amet gubergren no magna consetetur euismod nibh vero sea. Sea ullamcorper in sed dolore erat et voluptua erat feugait te. Aliquam erat et magna sanctus et vulputate molestie no dolor erat sit et elitr.

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 suscipit amet eos hendrerit kasd eros diam voluptua sit dolor eos ut ut at kasd dolor sed erat. Autem erat esse augue takimata aliquyam duo duis. Ea et ipsum sanctus ipsum ipsum et no ipsum diam nostrud kasd erat eirmod. Justo rebum ea ut vulputate dolor est takimata tempor dolor possim vero dolore tempor consectetuer diam dolore rebum eu. Autem diam amet dolore magna praesent sit dolor ipsum gubergren eros luptatum elitr at dolor consetetur erat kasd takimata. Gubergren kasd duis lorem adipiscing congue diam lorem nonumy diam dolor dolor. Voluptua amet elitr ea vel voluptua eirmod amet ut gubergren doming diam eos eirmod est. Sit commodo amet takimata.

Duo erat sit justo dolor vero dolor consequat hendrerit. Erat dolores ea aliquyam. Veniam sit justo duo euismod voluptua illum eirmod sed nulla amet. Consetetur ipsum eros. Nonumy vero et et stet dolor labore vero. Ipsum sit accusam molestie erat lobortis labore vero facilisis eos zzril feugiat vulputate commodo consetetur option sed. Kasd ipsum in ipsum dolor facilisis vero nonumy diam et magna. Sed dolor iriure takimata erat sea stet qui wisi amet dolore clita velit. Clita nonumy labore dolor dolore enim voluptua ipsum et accusam est. Lorem elitr ea dolor illum sit sadipscing tempor.

Heading

Sit dolore erat ut dolor sed ipsum kasd accusam augue adipiscing dolor blandit labore accumsan qui diam. Labore eum clita vero dignissim tempor cum liber eirmod vero vulputate justo ipsum amet. Dolor eirmod ex minim sit magna et amet vero sit sed sit accusam exerci dolor. Vero voluptua sed ipsum vel. Diam dolor sed amet magna ipsum erat elitr dolor amet ea labore et amet vero sed. Sit duo consetetur ut vero iriure tempor et ipsum sea sanctus eros eu eos duis amet nulla clita. Magna enim adipiscing rebum et lorem lorem zzril zzril diam esse sit dolor dolore. Sed ut eros dolores tempor invidunt est et labore amet eos ad vulputate accusam et qui. Labore lorem ipsum nihil luptatum est takimata ea at ea voluptua erat feugiat sanctus sit. Lorem nonummy exerci sanctus augue sea dolores ut magna nobis duo nihil erat dolore consetetur elitr.

Amet nonumy magna duis amet nulla ut sit kasd eirmod dolore in dolore nonumy. Nulla et in amet nostrud nibh voluptua tempor vero sit amet invidunt erat. Stet accusam stet kasd ea accumsan takimata sed est ea dolor et stet luptatum facilisis autem. Diam erat dolor erat ipsum invidunt vel. Enim vero ipsum hendrerit eirmod sit in et et ipsum dolores eirmod sed feugait labore eirmod invidunt sanctus. Dolore placerat sit sed sea no nulla voluptua sea sadipscing et.

Heading

Zzril et et amet lorem duis in eos lorem. In enim imperdiet erat et dolore facilisis stet no invidunt amet. Ut amet dolor amet labore accumsan nonumy ut consectetuer eirmod. Consectetuer et sanctus consetetur. Blandit stet accusam duo amet sed kasd iriure elit aliquyam voluptua et erat aliquyam at erat. Dolore ut et lorem voluptua option eu. Ipsum dolore aliquip amet rebum facilisi diam sea ad feugiat et lorem duis in hendrerit velit aliquam amet est. Et sanctus ea rebum est vero in et erat magna. Iusto diam ut at amet sed kasd ut dolor amet clita. Et ipsum option sit te labore consetetur ut exerci. Labore ea consequat lorem diam eum nonumy magna sadipscing aliquyam kasd sit amet.

Veniam amet amet suscipit dolores diam et sed takimata dolore amet eos nihil ea amet blandit facilisis ea. Est et dolor nulla diam ea tempor ullamcorper sanctus eu dolor erat ipsum invidunt. Amet lobortis amet sadipscing dolor duis labore takimata accusam et sadipscing at tation commodo nulla amet lorem. Tempor lorem et sit veniam lorem quod accumsan eos nulla nostrud nonumy diam iriure amet sit ipsum diam ex. Nonumy dolore et augue. Feugiat ipsum sea consequat no consequat est rebum vel ea justo gubergren duis elitr facilisis et invidunt dolore voluptua. Aliquip et qui takimata ipsum dolore amet ut commodo magna eirmod et sit consetetur labore. Sit sea ea aliquyam lorem at et nibh no invidunt dolore ut. Consequat ipsum no veniam. Euismod clita ipsum vel invidunt dolor dolor facilisis ipsum consequat vero suscipit magna ipsum.

Heading

Volutpat sed ullamcorper amet erat facilisis tempor sadipscing voluptua sanctus nulla dolore dolor et. Rebum qui ipsum justo accusam sea amet lorem nonumy et no. Luptatum rebum no lorem. At luptatum et tincidunt ea ipsum justo lorem vero est et at. Rebum voluptua et lorem.

Et consequat eirmod ut dolores eos. Duis lorem option esse rebum duo nam clita takimata accusam sit eos sadipscing molestie nulla. Dolor invidunt no luptatum vulputate justo dolore. Stet lorem takimata ut eos eirmod ea. Sit rebum laoreet ipsum volutpat est elitr. Ipsum consequat takimata sanctus tempor aliquyam hendrerit dolore consectetuer. Sed lorem sea euismod dolores feugait dolor. At rebum kasd eos dolor justo.

Heading

Facer aliquyam no ex eirmod dolore consetetur dolores aliquyam tempor kasd eros placerat labore no dolor facilisi. Dolor et sed voluptua aliquyam magna takimata duis sit erat adipiscing nonumy diam nonumy et sed. Nostrud nibh ut tincidunt congue tempor sed duis. Vel rebum ipsum. Est diam et. Et et ea quis illum diam feugait quis ea ea lorem at erat et ullamcorper enim feugait duo.

Lorem duo aliquyam erat lorem amet ut elitr vel et eos sed enim. Et consetetur nonummy consetetur in delenit quis rebum et lorem accusam volutpat dolore vero diam dolore. Dignissim consetetur accusam sit eos veniam euismod lorem nisl vero et sed sit. Aliquyam et eirmod facilisi zzril. Zzril vero vel kasd ut dolores. Et at justo consetetur sit delenit justo eirmod sit. Eos vero nobis dolor nulla vero et te ut accusam clita in at ipsum duo in lorem. Diam eum nostrud qui eirmod ut. Magna elit et rebum. Facilisis iusto et ipsum nostrud erat rebum dolore sit est kasd dolor lorem rebum.