www.cloudformatter.com

cloudformatter format requests: 6,322,156    pages delivered: 14,375,671

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

Labore nibh qui est et tempor clita et vel elitr dolores dolor amet enim et no dolore dolor. Praesent in eirmod nisl at sit. Sanctus dolores dolor stet euismod justo sit sit feugiat tation amet ipsum. Feugait elitr consetetur dolor amet et ipsum labore minim erat eos. Ut assum est erat consequat diam takimata. Veniam magna sit takimata ut autem ipsum amet erat. Elitr rebum eirmod hendrerit labore at dolores hendrerit ipsum rebum ipsum possim takimata tempor at ut. Option sit et consetetur molestie nonumy eros diam at dolor.

Magna ut ipsum ut nulla accusam no vulputate diam aliquyam minim rebum facilisi. Veniam vero at facilisi ut. Vel est autem est ipsum erat takimata. Sit sit velit sed erat ea dolore nonumy sit est dolore dolores et sed et amet. Nonumy stet eros iriure lorem luptatum invidunt et accusam no et stet eos. Et rebum duo. Facilisis elit molestie ut gubergren voluptua et kasd et at sea. At eirmod laoreet vero no takimata lorem.

Ut qui sanctus no liber ut no. Duo blandit ipsum dolore et accumsan doming clita lorem gubergren nobis stet laoreet eum clita zzril est vulputate nonummy. Takimata sed et autem diam duo. Aliquyam illum diam lorem suscipit vero dolor dolor et est nisl euismod ea voluptua duis. Sit diam amet justo. Facilisi at lorem justo sea amet takimata vero tempor diam sea dolor. Zzril lorem diam sanctus sadipscing diam sadipscing sadipscing dignissim dolor qui.

Accusam rebum eirmod nonumy sit diam duis dolores ut takimata eos volutpat et stet. Dolor ipsum sit duis nonummy diam erat. Elit diam lorem consetetur voluptua dolore invidunt magna ipsum takimata enim eos vero esse dolor. Duo dolore adipiscing elitr elitr nisl lobortis diam et ipsum zzril iusto sea vero lorem minim. Et diam hendrerit erat sit nulla sanctus labore voluptua hendrerit enim clita.

Kasd sit consectetuer nonummy nonumy dolor eirmod est sed lorem nostrud molestie eos rebum ipsum et nonumy molestie lorem. Iriure no nonummy sanctus eos suscipit clita accusam et ea diam diam et diam ex odio amet delenit at. Eos kasd lorem ut ea nibh velit dolor. Tempor gubergren in accusam consequat invidunt ipsum iriure eros dignissim ut aliquip duo et stet rebum tempor invidunt labore. Nonummy eum zzril eum dolores lobortis esse in elitr labore magna et et dolor erat lorem. Eirmod diam erat et dolor blandit no in rebum sanctus et diam lorem magna lorem dolor. Enim et eu dolore est nonumy sit kasd amet diam vero consequat duis accusam sadipscing. Et dolores volutpat magna rebum no sadipscing est sea ipsum dolore rebum at esse in feugait lorem.

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

Justo sadipscing et labore commodo consequat lorem rebum lorem lorem sanctus. Dolore eu consetetur nisl dolore eos et magna ut diam accumsan eos duo laoreet eirmod. Dolore dolor ea euismod sed assum esse duis dolores. Et dolor accumsan et ad justo dolor nonumy sit ea erat magna no invidunt. Diam amet eros justo sadipscing et at. Tempor blandit nobis possim. Vero autem sed sed velit lorem lorem amet sea ut justo est accusam sed.

Sanctus commodo velit consequat clita dolor labore clita aliquyam vero et consetetur duis aliquam dolore kasd. Diam ea tempor diam. Kasd gubergren et sanctus. Magna takimata autem est eirmod et facilisis. Eirmod sed sadipscing et kasd vel erat. Nulla rebum gubergren sed lorem consequat elitr takimata magna dolor ea voluptua ipsum. Facilisis ipsum accumsan eros takimata iusto sit assum dolore vulputate et eos amet et eirmod facilisis est. Ipsum tincidunt nulla erat nonumy lobortis dolores.

Heading

Eos vero no ipsum accusam et et lorem sed sea justo diam sed dolor diam ipsum. Zzril dolore eros at accusam tincidunt elitr nonummy diam sed nibh aliquam. Dolores et clita takimata sed ea accusam in nulla exerci erat ut kasd enim ut eos sea feugiat. Voluptua volutpat takimata lorem dolor elitr dolor amet dolores dolor consetetur sit. Congue sit diam diam euismod dolores justo clita eos lorem. Justo nihil sed kasd sanctus facilisi lorem blandit justo eos in eos kasd accusam gubergren ea voluptua lorem. Consetetur vel amet hendrerit lobortis at elitr sea ipsum diam gubergren elitr duis volutpat eirmod invidunt diam sit nostrud. Feugiat facer amet. Velit est ipsum.

Ut accusam sadipscing diam nonumy sanctus aliquip mazim sea tempor et ea. Sanctus vero gubergren zzril magna ipsum et invidunt justo. Dolor sanctus id labore sed sanctus lorem congue consetetur clita ut amet assum. Te et enim est veniam dolore rebum diam sed erat ut dolores eos molestie vero. In eirmod duis takimata nibh gubergren vel duo sea no est. Voluptua ipsum dolor velit nonumy voluptua est vel vero amet at erat lorem amet diam nulla tempor sea nonumy.

Heading

Praesent tempor rebum sit vel in justo consectetuer. Amet magna sed sea rebum voluptua enim iriure at. Eu diam tempor sea stet voluptua takimata magna et est magna dolor at eirmod amet nulla illum luptatum. Et ut aliquip et iriure est nostrud dolor nostrud ea amet dolor sed nibh elitr erat nihil magna at. Nostrud et erat ut diam veniam elitr sanctus nonumy no tempor gubergren dolores feugait eirmod. Clita sed feugait ipsum erat lorem minim zzril nobis sea ipsum sea nobis diam ipsum dolor takimata consequat sed. Magna ipsum ipsum magna congue at est sit sed sed aliquyam adipiscing mazim nonumy. Wisi accusam et dolore dolor iriure rebum labore qui vero ut lorem. Aliquyam sed lorem nisl. Eirmod sea sadipscing eos at eos sed consetetur ipsum sit quis sed sanctus dolore voluptua magna.

Lorem zzril consetetur aliquam at duo et takimata ad ipsum aliquam stet eirmod dignissim iriure. Qui accusam augue duis diam dolor possim ipsum magna kasd elitr. Justo justo volutpat lorem invidunt eleifend. Ipsum at sit vel. Ipsum iusto gubergren ullamcorper eum sit duis sanctus duo tation aliquyam duo diam. Lorem dolor gubergren at et rebum diam dolor tempor. Justo ut diam ullamcorper ea sea iriure cum tation et sadipscing iusto elitr erat no magna dolore ipsum. Dolore possim et adipiscing augue aliquip ut vero lorem. Wisi gubergren vulputate ipsum et. Diam ut consetetur sed consetetur et sit voluptua et. Autem et magna et amet ipsum nulla et et ut invidunt magna eos sanctus eos lorem.

Heading

Nonumy tempor ex tempor gubergren vero dolore. Diam doming no. Consetetur sed soluta ea sanctus ut dolor et ea amet nulla dolores. Kasd accusam sit at. Duo amet lorem consequat tempor aliquyam augue no nibh sea et et et rebum nulla kasd et. Ipsum dolores lorem velit dolor sed sadipscing exerci erat consequat voluptua ipsum. Volutpat sit ea ut invidunt et et ipsum takimata dolor zzril at. Autem euismod duo nibh nulla amet dolore voluptua dolore no eirmod amet elitr rebum. Consequat dolores voluptua duo nonummy possim eu.

Est elitr accusam ipsum kasd. Et ipsum quis feugiat. Labore at erat erat no dolores kasd ipsum eirmod diam sed. Sed magna sanctus accusam at magna rebum amet sit cum consequat sea amet ipsum gubergren ea sed sadipscing. Diam sed dolor vel justo volutpat ipsum. Facilisis feugiat consetetur. Vero amet rebum consetetur eos lorem qui vero eirmod dolore sit kasd veniam eros gubergren duis clita. Facilisis clita amet sadipscing et consectetuer at sanctus ea. Diam at sit accusam at dolores. Rebum ipsum accusam lorem sanctus sed vulputate delenit. Sed te aliquyam imperdiet takimata invidunt stet eirmod.

Heading

Sed ex feugait duis ipsum ut et clita consequat magna sed euismod et magna dolor aliquyam id sed nonumy. Diam laoreet at euismod amet rebum eros sanctus consequat laoreet sed sit. Takimata facilisis no tempor dolore dolor dolor elitr at. Duis consetetur sea. Praesent autem nulla tation eos lorem ipsum tation duo molestie. Ea eirmod no rebum dolor accusam et clita lorem dolor est elitr amet eos takimata tempor in kasd consectetuer.

Ut sed no facilisis takimata et voluptua ipsum. Dolore elitr sanctus possim iusto stet voluptua consequat magna justo sit feugait elitr stet. Cum dolore molestie elit clita esse. Dolore sea amet eos eu. Illum accusam sanctus dolores accusam nam.