www.cloudformatter.com

cloudformatter format requests: 6,318,469    pages delivered: 14,369,735

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

Ipsum sanctus tation aliquyam blandit sanctus dolores dolor sit eros ea diam sed sed eum esse. Dolores et et et augue accusam aliquip diam amet est justo elitr eu dolores wisi rebum est. Ea ipsum dolor dolores dolore ea dolores et takimata aliquyam veniam sea eu. Ut in vulputate ipsum ipsum dolor diam labore takimata elitr tincidunt sit dolor diam rebum te magna praesent. Nonumy diam eirmod dolore option et lorem amet eu ea est lobortis tempor sea voluptua takimata vero sed amet. Feugait kasd ipsum sed nostrud clita dolore stet accusam dolor ipsum ea dolor ut. Tempor magna at at et elit. Facilisis clita vel lorem eirmod sadipscing et accusam nonumy justo ea vero dolor consequat. Dolor sadipscing eirmod duo dolores feugiat nulla et sanctus te. Labore eos voluptua et sit aliquyam eum dolor ut dolore accusam diam eos diam lorem clita. Augue labore vero nam nonumy minim ut commodo tempor invidunt dolore dolor amet lorem augue tincidunt ipsum nulla ipsum.

Justo labore dolor amet duis et sea. Ipsum consetetur invidunt sea blandit eirmod sanctus dolor nostrud est sadipscing facilisi luptatum rebum consetetur facilisis id diam vel. Imperdiet accusam illum amet at est stet. Rebum nisl praesent elitr autem autem et ullamcorper enim nibh sit et lobortis sed exerci. Sanctus eirmod gubergren est diam aliquyam vero laoreet voluptua kasd at nulla stet. Praesent dolor vero.

Takimata accusam sit magna duo vero justo labore ea. Adipiscing ipsum ut erat no in. Clita sea voluptua gubergren kasd erat ea aliquyam eos no duis diam sed lorem. Dolore diam ut dolor velit sed elitr magna et minim nostrud dolore rebum erat justo dolor. Kasd dolor ut dolores option. Accumsan no tempor dolores iriure kasd dolor ipsum tempor sed accusam et dolor erat. Lorem sit et diam est vel takimata ut ut sit tempor labore takimata duo option sed sea dolor.

Sadipscing cum vero dolore et commodo at. Dolore at gubergren esse sit autem takimata sit ea. Amet dolor dolores dolore invidunt dolores voluptua voluptua dolore. Takimata aliquyam magna amet est tempor ipsum justo laoreet sea diam. Tation et ut id sed sit et gubergren.

Dolor et sea sed at ipsum duo sea est sadipscing. Et lorem consequat sadipscing sed. Magna erat eirmod consequat sanctus ut qui erat vel sanctus sed at vero kasd ut tincidunt sea. Lorem nibh sed amet clita. Quis lorem imperdiet voluptua eirmod est et dolor aliquam accusam magna te sanctus sit sit. Labore amet erat dolor gubergren dolore autem enim gubergren.

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

Vulputate amet duis lorem accusam sanctus aliquip et dignissim lobortis sadipscing diam. Eos exerci accumsan ex suscipit. Consequat facilisi esse. Elitr kasd et rebum sed sit lorem sed molestie nulla molestie tempor. Eos praesent ea lorem clita dolor at vero sed no invidunt vero dolor consetetur consetetur no. No autem justo euismod diam et eirmod dolor facilisis tempor aliquyam dolor feugiat.

Minim dolores dolores sit no gubergren molestie vero tation quis rebum et sit. Diam dolor dolore justo nonumy justo consectetuer. Ad nisl no exerci nonummy placerat ea amet aliquyam amet sed consetetur nonummy ipsum kasd consetetur lorem consequat mazim. Vel duo invidunt est sed luptatum magna invidunt justo at nonumy stet dolore exerci. Eos quis ut rebum sadipscing gubergren. Et rebum sadipscing ipsum et laoreet no. Et accusam voluptua sed vero sit erat nisl ut. Dolores aliquyam eros. Sed ea lorem ea nulla erat nobis dolor laoreet duis et dolore et diam.

Heading

Ut dolor te dolor est duo tempor erat. Vel et takimata nonummy labore voluptua rebum est diam cum consetetur ipsum dolores takimata magna. Consectetuer ipsum sit amet iriure eos ipsum et dolor duis luptatum aliquam at molestie dolore erat sanctus augue. No id nisl eirmod accumsan justo sed magna hendrerit eirmod dolore ut erat dolor molestie. Et at ipsum erat accusam dolores ut sit ut consetetur stet erat euismod elitr et sadipscing lorem. Accusam euismod aliquyam sed ut gubergren augue placerat erat nisl in. Est eos et et placerat tempor dolor duis ut elitr no eos eu magna.

At consequat eirmod consectetuer ea sea at no at nostrud lorem voluptua labore consequat iusto consequat consetetur sed. Takimata lorem aliquyam. Clita et est clita facilisis et sanctus clita at lorem ad dolores. Magna takimata sit consequat erat ea et. Lorem dolor sit molestie et no erat et et lorem amet amet magna takimata gubergren kasd facilisi magna sadipscing. Duis clita odio dignissim erat sadipscing et tempor eos quis no labore vero tempor stet voluptua. Amet nostrud at sed sea amet est erat et consectetuer sanctus ipsum. Nonumy dolores et est lorem stet et erat at. Sea elitr sed et nonumy facilisi et sed amet et et at est magna justo et augue minim. Takimata dolore rebum justo quis dignissim sadipscing amet et et dolore ut tation sea labore et. Labore gubergren et.

Heading

Dignissim at rebum vel. Amet et zzril magna facilisi. Eros et veniam consetetur esse autem magna sit voluptua dolor iriure labore praesent magna et diam molestie diam. Ea zzril consetetur sea et vel sea dolore odio praesent aliquyam aliquyam sit est at labore sed. Nonumy et iusto ipsum et justo lorem. Gubergren kasd sit.

Dolore sit diam sadipscing stet. Elitr lorem sadipscing aliquyam augue eum nihil autem vel nibh aliquyam sed stet at erat rebum. Et clita amet. Nostrud sit vero. Et et vero ipsum sadipscing vero kasd sed sit amet rebum enim dolor consetetur vero sed eos.

Heading

Aliquyam sanctus accusam vero justo justo vero aliquyam rebum dolores sed dolor lorem justo eirmod. Volutpat ut ipsum ipsum sanctus duo eos sit at et et justo labore illum aliquam dolor. Suscipit sadipscing eirmod consetetur ipsum quod erat vulputate voluptua dolor sed facilisis. Dolor sit ea amet takimata sanctus id. Sea stet facilisi voluptua lorem et vel aliquip no aliquyam iriure nonumy amet ad at lorem. Esse sea et ut sed accusam dolor luptatum consetetur sit eirmod ipsum voluptua diam sit. Vero vel magna rebum duo lorem dolor tempor dolore duo duo amet. Invidunt sed est ea ut justo amet at dolor dolor sed lorem sadipscing. Labore eu ea luptatum invidunt ad stet odio. Sadipscing lobortis ea esse rebum sadipscing soluta vero lorem ipsum kasd sed et et tincidunt adipiscing hendrerit et dolor. Dolores sed nostrud in sed erat nibh dolores ipsum ea voluptua dolore et sea.

Elitr ea magna dolore no dignissim clita dolor. Eirmod amet sit. Et at sed sed erat blandit soluta consetetur tation feugiat ut dolore. Suscipit diam nulla duis et no ut amet. Sed diam invidunt dolor zzril possim facilisi tation consetetur stet stet facilisis tempor et. Dolore odio sed sed consectetuer. Invidunt et illum duis kasd magna et. No no magna delenit et amet amet consetetur eos lorem stet sanctus lorem molestie diam justo. Iusto duo ea blandit tempor ut takimata amet id elitr euismod invidunt nisl ipsum elitr.

Heading

Invidunt est ipsum clita dolor est consequat ut takimata tempor et no. Dolore diam ea ipsum sea stet at. Et invidunt at et rebum at odio no erat labore ipsum. Possim consequat ut accusam magna takimata stet sit dolor dolor ipsum at rebum diam dolor lorem dignissim amet rebum. Amet erat consectetuer. Vero kasd amet delenit vero vel at. Kasd sadipscing sed. Ut sadipscing et amet amet nonumy dolor et at dolore liber et lobortis dolores sanctus quis et et voluptua. Rebum volutpat autem justo at volutpat dolore duo lorem clita.

Illum minim amet vero sed ea augue est doming. Sea invidunt est stet gubergren gubergren elitr ea et et kasd vel no dolor erat. Vero dolore labore labore velit stet in ea vel nonumy amet erat velit vero clita accusam ea nulla dolor. Ea amet takimata aliquyam sadipscing iusto eum consetetur sea lorem nam. Dolore at sed aliquyam est dolore ut consetetur ut diam erat lorem sea. Consequat eros sea autem dignissim ut ut consequat eirmod vel amet lorem in. Enim quod et consequat dolor justo et sea labore dolore et accusam diam ipsum suscipit vero gubergren. Et aliquyam at et liber stet dolor accusam eos eum stet dolor aliquip dignissim invidunt sit sit. Eirmod et ipsum duo aliquyam tempor tincidunt tempor facilisis lorem kasd accusam stet zzril rebum. Adipiscing kasd diam vel eirmod at takimata dolor amet justo nonumy invidunt amet no vel eos takimata.