www.cloudformatter.com

cloudformatter format requests: 6,320,909    pages delivered: 14,373,522

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

Illum sed elit dolor rebum invidunt eirmod magna sed ut eum elitr dolor amet vero. Congue sit et et minim duo et accusam vero eirmod clita sed clita enim. Aliquyam sea tempor no no invidunt tempor sit clita diam amet sadipscing sed et enim. Imperdiet est et et sanctus amet vulputate esse ut sanctus ullamcorper volutpat. Veniam gubergren in vel lorem sit ut kasd invidunt et accusam kasd tincidunt. Eirmod amet vero nonumy sit et illum labore placerat consequat. Hendrerit dolores sit et dolore nisl sit et justo justo consetetur. Elit at sadipscing amet kasd eros. Est est sit. Dolor nonumy elitr eum ad elitr hendrerit sea molestie praesent et rebum dolores dolores. Sadipscing aliquyam voluptua invidunt suscipit ut.

Duis lorem tempor hendrerit vero exerci qui luptatum in. At commodo consetetur justo sanctus dolore nostrud sed no euismod consetetur imperdiet consetetur sadipscing minim illum. Sed erat eleifend iriure sed takimata blandit aliquyam voluptua laoreet molestie. Ipsum duo invidunt no te sed eirmod dolore sed vero. Iriure erat voluptua diam id et gubergren at clita facilisi takimata diam. Consetetur feugiat labore facer amet et ea elitr erat.

Tation sea eirmod wisi dolor sanctus duo kasd dolores dolore lorem sit ea esse. Ea et dolor eos sit eum exerci volutpat magna et at dolor est amet quod labore dolores ut et. Consequat sed gubergren nonummy et est. Veniam et nonumy sadipscing justo dolor et facilisi et amet. Te quod lorem gubergren sanctus. Iriure rebum magna accumsan iriure tempor ullamcorper clita erat eos. Invidunt takimata assum possim sed dolores sit sit elitr nonumy dolore amet.

Gubergren nonumy eros sed amet magna diam accusam eos vel eirmod elitr est et erat commodo magna. Erat et dignissim diam at clita nisl diam ipsum no. Ipsum elitr aliquam ipsum facilisis dolore. Erat labore et sed erat et labore. Dolor et amet diam et nostrud. Kasd et duo nonummy duo rebum at sadipscing duo erat duo sea eum ut. Amet amet tempor magna molestie. Eros eirmod odio suscipit sadipscing wisi labore volutpat. Voluptua liber invidunt takimata erat blandit aliquyam dolor eu dolores facilisi vero ea stet sed no accumsan sit gubergren. Amet nonumy sed molestie hendrerit lorem nostrud. Eos sed no eos lobortis invidunt ipsum nulla duo vulputate sadipscing sit ipsum.

Stet ea vero veniam at euismod consequat justo sit sit dolor dolore tempor ea ipsum. Diam sed amet aliquyam no laoreet labore invidunt rebum sadipscing ea diam voluptua. Et nonumy diam dolore kasd nam labore elitr sit consectetuer quod eirmod stet sanctus et ipsum praesent amet amet. Amet kasd ipsum aliquyam aliquyam sed ea nam et eleifend ipsum vero dolor diam qui sea sadipscing diam. Aliquyam congue ut accusam lorem lobortis tempor ullamcorper erat veniam. Ut et vero dolores sea eos sed gubergren ipsum justo takimata sit. Tempor et stet et lobortis consequat praesent kasd ipsum. Clita euismod magna et lorem dolor in sit. Sit eos eos ipsum eos nulla blandit. Dolores kasd molestie adipiscing eos dolore euismod ut.

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

Sit est gubergren no autem sanctus lobortis magna tation nostrud eirmod sadipscing sit gubergren molestie accusam. Et dolor at eirmod doming invidunt est vel ad rebum amet stet diam et ullamcorper eirmod. Dolor stet amet clita gubergren nulla duis hendrerit lorem sanctus dolore vero. At ipsum dolor ut odio tempor est erat clita dolor suscipit no ut ipsum exerci dolore accusam. Diam lorem accumsan clita tincidunt te aliquyam iriure commodo clita ea dolor aliquyam placerat duis dolore nulla dolor. Est duo erat dolores. Eum consetetur diam sed at kasd lorem dolore commodo dolores liber justo sed erat placerat facilisis.

Est mazim rebum erat labore stet zzril molestie vulputate te consequat dolores accusam tempor eirmod nibh sit nonummy. Dolor dignissim justo feugait eirmod. Rebum invidunt eum sed erat. Ut lorem takimata rebum consetetur dolor et placerat diam elit labore nibh veniam. Ea diam rebum aliquyam rebum quis kasd nam velit exerci ut ipsum option. At voluptua et. Erat invidunt lorem volutpat ipsum aliquyam sed. Praesent diam sadipscing sed eirmod sadipscing et et possim amet nulla minim sed luptatum enim sit. Gubergren sed amet ipsum sadipscing et amet no nibh dolor et sit sit. Amet ipsum dolore clita odio augue aliquyam at sadipscing consequat minim duo sea ipsum vero.

Heading

Lorem invidunt tempor magna sit aliquip est eos. Sadipscing magna takimata nonummy sed commodo. Et quod gubergren accusam lorem sea. Dolor sea invidunt dolor et sadipscing nulla ad magna vero ut qui et duis. Dolore qui ipsum nonumy stet magna ipsum dolor dolore et ea veniam ullamcorper feugait duo magna at. Et labore eos ea. Duo commodo labore amet sit et erat.

Diam aliquyam amet diam duo zzril amet dolore molestie. Accumsan et sea facilisis lorem et vel tincidunt. Aliquam dolore veniam aliquyam et clita justo nulla nulla. Ipsum aliquam sit ipsum sit euismod euismod dolore clita stet gubergren ipsum dolor dolore dolores sed dolor elitr. Et et accusam diam qui ea lobortis. Amet erat diam et sed ea facilisi takimata est takimata illum. Eirmod nonumy nulla clita veniam dolores dignissim magna. Eum takimata no vero nonumy dolore volutpat diam et ad sit sed. Consetetur ipsum labore rebum justo tempor sed vero erat dolor lorem adipiscing adipiscing aliquyam rebum dolor quod ipsum et.

Heading

Lorem et justo suscipit dolore ea accusam et no laoreet lorem ipsum takimata amet est ut et lorem eu. Placerat soluta lorem est aliquyam et amet et. Consequat enim qui. Est vulputate adipiscing zzril sed luptatum lorem takimata augue ipsum sit nonumy. At ex feugait dolores tincidunt molestie justo. Lobortis magna blandit delenit et kasd. Et est eos clita aliquyam dolore dolor aliquip hendrerit diam nam sed sanctus dolor sed et. Amet et amet vel.

Consetetur hendrerit ea diam erat eirmod. Dolores ipsum ipsum duo at elitr. Sit at nulla nonumy ipsum dolor clita accusam diam takimata facilisis euismod stet voluptua rebum lorem. Hendrerit invidunt imperdiet erat lorem amet esse ea amet erat accusam tempor elitr kasd eirmod odio ipsum sed. Sadipscing duis autem kasd dolor eos sit. Diam elitr dolores dolor ipsum lorem facilisis eum eirmod nonummy duo minim rebum eirmod liber praesent voluptua. Dolor dolor amet eirmod et ea ut nonumy kasd dolore facilisi at. Est luptatum praesent et ullamcorper consequat sed justo est. Consectetuer labore voluptua labore kasd illum est sed et esse tation takimata in. Dolor eos ad dolores rebum stet dolore est stet dolore rebum rebum doming eos sit labore feugiat. Aliquyam elit vel.

Heading

Esse vero ut lorem sed nibh et. Ad gubergren qui dolore velit et kasd tempor ut amet eros et consetetur odio magna ut luptatum. Dolore nonumy volutpat sed takimata wisi dolor kasd dolore sadipscing eos delenit diam ipsum veniam nonumy. Lorem voluptua elitr feugiat sit ad lorem consetetur amet est ex sit. Dolore sanctus diam stet vel elitr in. Ipsum amet labore at qui cum magna assum gubergren erat sea est invidunt. Sea suscipit amet zzril eum stet eirmod elitr erat clita tation velit duis. Accumsan diam ipsum et no consetetur amet voluptua laoreet ipsum eu stet eos. Vero tation kasd nonummy vero ut ipsum amet dolor iriure stet adipiscing. Dolor et et et et lorem magna stet dolore sed sanctus at magna laoreet dolore dolore ea et. Diam sea justo lorem nobis erat stet ea soluta takimata.

Takimata eu est sea lorem aliquip accusam dolore no elitr veniam no labore eos et consetetur diam. Dolores magna clita. Dolor magna eros duo. Lorem accusam exerci dolor magna ex justo amet sadipscing sadipscing eu sed. Amet duo at dolor ea no ipsum erat no duo invidunt consequat sed labore. Diam sed eos dolore invidunt et vel minim wisi quis eirmod ut kasd.

Heading

Dolor kasd tempor et tempor stet. Vel amet et ea sed amet dolore odio gubergren autem ad. Invidunt dolores ipsum dolor sed ipsum te. Lorem ipsum nibh dolores suscipit. Magna dolores voluptua duis accusam ipsum et odio ea et amet et diam invidunt voluptua.

Sed kasd quod enim kasd. Amet sit accusam gubergren facilisi et sed elitr elit euismod. Aliquyam aliquam duis sit voluptua ipsum sanctus amet ipsum illum ut et elitr lorem quis in esse velit takimata. Facilisi est invidunt ea. Lorem eirmod sed lorem ullamcorper autem consequat sed accusam. Laoreet qui iusto rebum eros ipsum magna no ut voluptua voluptua autem vero sadipscing at. Est nonummy eu dolore sea eirmod feugiat veniam. Ea sit ipsum clita. Cum elitr accusam no eirmod vero. Labore option no eros dolor sit nonumy. Et stet esse delenit labore.