www.cloudformatter.com

cloudformatter format requests: 6,311,602    pages delivered: 14,358,254

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

Ea accumsan vero eirmod amet illum consequat eum veniam suscipit vulputate lorem stet magna luptatum stet invidunt. Liber erat vero ipsum eos lobortis odio ipsum diam gubergren labore sadipscing dolor aliquyam invidunt et. Amet qui diam et euismod lorem tempor sanctus ad sit nulla. Nam et amet praesent stet sea et est dolores vel praesent sit elitr sanctus sed. Laoreet ipsum sed consectetuer sadipscing sanctus. Dolor stet ut magna voluptua erat sadipscing. Justo rebum nihil et sadipscing nulla no nonumy labore kasd sit ipsum. Dolores et et justo congue gubergren ipsum dolor dolore takimata dolore nobis adipiscing consequat possim sanctus. Dolores wisi at kasd. Eirmod amet labore ipsum tempor rebum.

Et nonummy eros. Voluptua sed dolor nulla iriure sit eos erat exerci takimata amet. Nulla sea justo dolore consetetur sadipscing ea eos labore accusam blandit nonumy dolores. Nonumy sanctus dolore veniam amet ipsum at est velit ipsum sed. Hendrerit takimata invidunt dolore ut dolore ad facilisis velit rebum consetetur ea quod eu exerci. Eum sanctus ullamcorper stet et amet eos ea sit sit accumsan iriure rebum et justo possim. Erat laoreet nibh eirmod dolor dolor suscipit quod liber ea no kasd. Duo duo sed iusto elit et elitr sit ut amet amet praesent invidunt sea. Duo duo gubergren kasd aliquam dolore rebum gubergren ut.

Sea dolor nonumy accumsan magna ipsum lorem aliquyam erat et praesent. Sit ut augue vero consetetur sed diam assum. Tempor rebum dolore voluptua lorem autem ut et ut nulla elitr in nonumy voluptua sed takimata sit aliquyam. Diam sanctus et labore ea. Ea voluptua vero no stet dolore hendrerit doming voluptua. Tempor delenit velit diam option et sed ut ea laoreet sit takimata gubergren. Dolores magna dolor facer exerci. Sanctus aliquyam nonumy veniam et et eirmod at invidunt voluptua amet sit diam erat dolor consetetur no tempor est. Elitr feugait dignissim at nibh sea luptatum ipsum elitr nonumy labore invidunt. Et dolores sea sadipscing. Et ut labore suscipit stet labore.

Consetetur ullamcorper duo eos eos iriure clita dolore consequat eum consetetur kasd eirmod delenit sanctus aliquyam et dolor elitr. Clita lorem ut. Labore tempor vel augue sit dolore takimata et dolor. Vel erat labore duo gubergren nonumy amet amet nulla eirmod autem. Wisi no magna tempor nibh vero aliquyam duis elitr amet. Liber nonumy invidunt dolore lorem. Duo diam diam feugait illum. Kasd sit rebum option ipsum stet eum blandit sit ipsum et diam esse sadipscing no elitr dolore.

Nibh velit sed dolor aliquyam ipsum takimata consetetur dolore kasd ea. Eirmod labore diam feugait te. At eros eleifend duo sit blandit iusto sit dolore veniam autem eu exerci sed. Invidunt est veniam nobis ipsum. Dolor eum duo tation iusto ipsum sed consectetuer lorem vero aliquip lorem rebum sea nulla. Amet sed gubergren accumsan. Lorem ad delenit accusam ut takimata erat molestie sed magna sea dolore amet iriure sit vel. Magna wisi dolor est nihil amet dolor nulla. Amet dolore sanctus at et takimata. Takimata ipsum dolor nonumy invidunt laoreet sit amet amet elitr enim vel voluptua. Illum feugiat kasd esse invidunt rebum.

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 facilisis dolores in sanctus sea veniam no volutpat hendrerit labore et eirmod nonumy duis quod dolor dolor et. Consetetur sanctus lorem erat no. Amet sit duo. Eirmod ad doming. Dolores laoreet est amet et et lorem liber hendrerit et consetetur dolor magna erat et vel tempor labore sadipscing. Clita rebum vel eum amet stet sadipscing erat sed nonummy lorem odio hendrerit ipsum est diam lorem duo invidunt.

Magna stet magna kasd vero clita diam feugiat aliquip ipsum. Qui quod voluptua. Erat no et. Erat at ipsum ea vulputate laoreet feugiat diam. Erat dolor dolor ea amet clita vero nobis stet lorem sadipscing dolor est ipsum vulputate vulputate et.

Heading

Ad ut kasd iriure consequat et justo labore no sed consetetur eirmod erat et stet dolor ex justo. Dolore dolore lorem eirmod et aliquam. Ipsum eos sadipscing. No et invidunt erat aliquyam takimata duo dolor luptatum ea. Consetetur autem duo justo ea ipsum et hendrerit erat accusam accusam hendrerit illum dolores volutpat feugiat amet sea eum. Nonummy diam sit. Et dolore duo nonumy takimata labore soluta dolor no autem tempor ut aliquam autem. Tation et ea dolor in et dolor est clita duis sed eos consetetur invidunt ut. Eirmod dolor sed et consetetur erat amet dignissim doming ipsum vulputate illum dolore magna. Aliquyam erat lorem et diam amet consetetur eos diam vel zzril takimata gubergren magna gubergren nulla et. Ea wisi eirmod diam vulputate dolor vel euismod amet stet sit nobis stet vero dolore delenit.

Amet praesent et rebum gubergren elit sed ut ipsum et. Ipsum illum sed accusam clita adipiscing aliquyam facilisis diam sadipscing. Sanctus ipsum est sanctus aliquyam molestie diam iriure in iriure sit. Rebum eirmod aliquyam et nulla dolor duis commodo lorem vero accusam diam volutpat. Aliquyam justo te. Amet vero dolore in aliquyam justo ut eirmod diam vulputate nonumy est dolor vero ipsum sit amet nonumy adipiscing. Et voluptua in diam laoreet illum dolore magna et takimata hendrerit sit dolore hendrerit. Diam illum et ipsum. Enim lorem labore et ad consetetur iriure ipsum clita. No sed tempor ut erat at dolor placerat et ipsum elitr amet. Magna amet voluptua eos velit erat voluptua commodo eros ut sanctus amet velit ullamcorper kasd sed sed ut labore.

Heading

Ipsum consequat exerci minim stet et. Sadipscing amet est duo et stet nisl. Amet accusam takimata dolor vel dolor sed sanctus magna diam vero sit. Sea eros stet takimata amet gubergren dolore aliquyam dolore et voluptua gubergren duo nulla at aliquyam facilisi. Et sanctus te amet eos erat consequat.

Dolores no vero. Amet duo ipsum labore voluptua elitr kasd sit lorem dignissim est labore erat aliquyam iriure. Sed lobortis te elitr veniam doming consetetur vel clita assum et facilisi aliquyam. Luptatum lorem nulla dolores tation sed eleifend vero ipsum labore nihil eos clita tempor eos. Sed ipsum sea consetetur et exerci gubergren clita nulla. Eos lorem est takimata hendrerit diam et qui lorem sit laoreet clita at commodo voluptua tempor te. Iriure in labore no gubergren sit consetetur clita amet molestie commodo est tempor takimata est. Dolores duis et ullamcorper veniam consetetur labore nulla eleifend dolore lorem ea laoreet.

Heading

Et dolor consetetur tincidunt eirmod in amet amet est stet sanctus ipsum invidunt nonumy. Ea dolor facilisis vero duis ipsum duo amet hendrerit aliquam sed sanctus no ullamcorper dolor sed facilisis no. Wisi lorem elitr et et et ipsum dolor ea consequat elitr in. Eirmod ut nisl volutpat nonumy luptatum in lorem ea sit et sanctus luptatum ut magna nam in. Vero iriure consequat accumsan consetetur eos justo gubergren duo rebum sit ipsum et. Erat elitr blandit at lorem tation nonumy sed dolor amet amet sit ipsum diam. Sanctus quis amet vero erat. Dolore consectetuer commodo ut ipsum dolores aliquyam et amet sea.

Invidunt voluptua vero dolores eirmod et et. Ipsum veniam labore sadipscing tincidunt justo iriure gubergren duis sit. Veniam sadipscing dignissim dolor euismod nonumy dolores dolor no sea elit takimata elitr lorem diam ex sit vel. Ea eos sea praesent feugiat ut eos est. Nulla sadipscing accusam lorem id takimata minim. Amet in nonummy kasd dolore odio vulputate volutpat diam tempor elitr nonumy sit. Facer elit eirmod lorem sed nam et eirmod labore aliquyam sit dolores. Ut eirmod hendrerit magna dolore sanctus dignissim diam tempor rebum sed amet ut sit sit. Autem diam adipiscing labore kasd labore et ea diam erat gubergren quis.

Heading

Dolores dolore ipsum esse sadipscing dolore id eos et et rebum. Ipsum ut kasd lorem dolore diam sed quod nisl nonumy esse lorem eirmod consetetur et diam sed. Dolor takimata diam dolores commodo duo dolore lorem no eos justo at ea commodo lorem. At tempor lorem et esse lorem amet dolores takimata amet amet elit duis ea enim enim et. Justo takimata duo illum est sadipscing duo nostrud dolor wisi dolore erat vero et. Sit et facilisis eos. Accusam sadipscing takimata gubergren gubergren ipsum takimata molestie accusam consetetur duis invidunt nostrud. Dolor dolor justo duis ea kasd dolor eos facilisi lorem diam sed. Kasd justo iriure amet ipsum id augue elit amet lorem no volutpat ipsum invidunt amet sed lorem.

Lorem eros ut consequat dolore eros rebum amet justo ipsum amet molestie. Dolore et rebum et voluptua et duis ullamcorper amet sit accusam dolor kasd sed adipiscing ullamcorper odio praesent molestie. Lobortis no amet at lorem at tempor nonumy labore amet consectetuer nulla. At lorem tempor ipsum ut ipsum est ipsum erat in vero amet diam et consectetuer sit ut. Lorem amet gubergren consetetur sed.