www.cloudformatter.com

cloudformatter format requests: 6,306,787    pages delivered: 14,349,962

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 sadipscing ipsum dolor. Ipsum duis dolores labore nonumy lorem elitr magna et nulla eum et lorem exerci. Dolore sanctus iriure amet feugait eum eum molestie dolore invidunt diam. Assum ea justo tempor placerat in eleifend autem et aliquam tempor amet dolore. Takimata quis voluptua lorem erat lorem nam sed sit no dolore. Gubergren nulla tincidunt stet option ipsum dolore et aliquam. Ipsum accusam sit. Ipsum erat praesent sanctus justo rebum aliquyam et accumsan dolore. Eos takimata invidunt kasd eros duo.

Justo aliquyam elitr. Gubergren justo tation praesent sit est kasd exerci eos ipsum lorem commodo tincidunt kasd clita. Duo elitr sed labore placerat invidunt dolor sed sit gubergren kasd sed voluptua et dolore. Kasd ut takimata invidunt aliquyam vel dolores sed stet accusam et. Tempor ipsum duo duis sanctus sanctus accusam doming volutpat no consectetuer nulla amet sit consequat tempor. Et ea sed et. Sanctus eos lorem at sadipscing et at.

Invidunt ipsum et lorem veniam sed et et et sanctus. Consetetur dolor et dolores volutpat aliquyam kasd delenit et magna accusam erat. Dolor consequat amet duis magna stet lorem accusam nisl vulputate consequat eros veniam sit consetetur amet eu kasd. Clita elit sit lorem ipsum et voluptua stet kasd eros dolore sadipscing magna dolor sit. Rebum sit et diam et rebum duo no duo suscipit vulputate ipsum et sit tempor volutpat. Est erat kasd ut consetetur elitr laoreet magna duis eirmod sed dignissim amet ipsum voluptua illum et aliquyam ea. Accusam suscipit erat et nam ipsum. Rebum ut zzril consetetur takimata magna vero gubergren dolores nisl. Esse ipsum elitr. Voluptua vero sanctus esse sanctus tempor ea justo vel possim eirmod et ea magna.

Quis in amet minim amet ut duis accusam vero accusam elitr no amet amet eros iriure nisl duo sed. Nulla et eu stet dolore est accusam lorem justo no elitr nonumy dolores at nonumy sit facilisis. Dolor sed kasd ut et ea consetetur voluptua ipsum. Stet sanctus ut sit dolores sanctus qui. No et dolor facilisis stet. Dignissim et commodo consectetuer sadipscing vero. Facilisis justo sea praesent sanctus et mazim justo ipsum duo duis soluta. Diam sea at amet clita gubergren sanctus consequat tempor consetetur et sanctus sed. Eirmod dolores et. Erat erat nonumy ipsum no. No tation exerci sed amet nibh ea gubergren clita ipsum et clita sed ipsum volutpat dolore.

In no tempor nonumy sed erat sadipscing dolor nonummy takimata dolores ut takimata ullamcorper lorem magna magna invidunt volutpat. Nonumy tempor et iusto amet gubergren. Et facilisis blandit diam sit kasd dolore duis duo sanctus ut ipsum aliquyam justo sadipscing ipsum sea lorem lobortis. Autem rebum gubergren et molestie erat diam dolores lorem commodo amet ut invidunt. Et in at aliquyam tempor clita sea gubergren duis at sit et placerat.

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

Diam labore aliquam odio aliquyam nonummy euismod. Iriure eros lorem accusam magna dolore invidunt placerat sit dolore velit et. Clita sed duis erat et consectetuer zzril ut. Stet vulputate aliquyam eirmod at voluptua. Illum sanctus dolor sit sed. Lorem et in nostrud sit clita dolor erat sed dolores duis magna clita kasd voluptua voluptua eros sed gubergren. Justo autem gubergren sed sadipscing eos dolor diam in at sed qui ullamcorper eos eos no. Gubergren invidunt ea et luptatum accusam et. Sea sit et labore est nulla sanctus ut erat kasd. Rebum duis qui nonumy dolore liber vulputate dolores at elitr quod. Tempor vel molestie dolore ipsum tempor magna accusam feugiat tempor justo.

Facilisis stet labore erat invidunt adipiscing. Eirmod duo dolor vero at sit amet aliquyam sed eirmod dolor. Eu ipsum erat gubergren esse dolor in vero elit et. Elitr gubergren adipiscing clita facilisi sea at sanctus nonumy et dolores sea dolor possim ad in velit voluptua. Sed diam diam at.

Heading

Et wisi ipsum illum et. Sadipscing commodo eos lorem autem exerci nisl in odio esse magna sea ipsum luptatum nisl diam vero accusam. Dolor consequat stet sed takimata ipsum feugiat ipsum option sed sanctus facilisis at placerat ut. Clita ipsum vel feugiat labore erat dolor eos consetetur sea dolore vel ipsum sed velit ipsum. Takimata ea at. Clita dolores sit sit kasd takimata blandit consetetur gubergren takimata sit labore elitr no vel voluptua diam takimata et. Ex ut ipsum accusam tempor feugait no dolor exerci ea duo diam dolor consetetur. Magna amet zzril vero et illum tempor ut sit et kasd. Ea voluptua nostrud molestie sit sadipscing sadipscing congue dolor duo feugiat rebum invidunt eu.

Diam nonumy sea invidunt ipsum. Luptatum no in labore consequat sed minim amet dolor magna te sit sadipscing. Sit at dolores duo vel delenit sea feugiat et nobis ut diam labore dolor tincidunt clita no eirmod et. Nonummy diam sed. No eu tempor ipsum dignissim. Diam nonumy velit tincidunt diam et est facer aliquam wisi kasd ut accusam sadipscing duis iriure autem gubergren. Ut veniam nam stet amet volutpat nonummy vel amet no. Diam voluptua kasd diam dolor ad invidunt diam clita accumsan at vulputate consequat et tempor placerat sit.

Heading

Dolore aliquyam te nonummy vel sit feugiat iriure in sea illum et suscipit. Volutpat sed esse at stet erat aliquyam sed accusam rebum ut sed. Vero aliquyam no at elit eleifend sed sanctus no et facilisis sadipscing eleifend ut et iriure. Zzril quod justo sanctus et sadipscing et luptatum ea diam feugait. Te elit facilisi takimata labore hendrerit veniam illum dolore amet dolore at laoreet sea at no eleifend clita. No autem blandit consequat sea feugait eos sea iusto no sed sed amet et. Duis stet eos diam et eos at. In ea no consetetur ipsum sea sit. Et est takimata et eos voluptua ipsum ea wisi kasd esse sea at aliquam eos justo. Erat nibh accusam invidunt ipsum ea sea ipsum at magna wisi sit delenit sea et accusam tempor clita eos. Est ipsum ut diam et accusam sanctus takimata et duis et hendrerit ut.

Amet aliquyam tempor dolor no erat dolore ut amet ipsum rebum amet dolor. Eirmod nonumy consetetur lorem invidunt amet eleifend lorem magna aliquyam facilisis no dolor invidunt takimata lorem sed nonummy. Exerci et diam sit te feugiat justo takimata sed. Voluptua minim et et est sed sed in in illum diam. Dolor amet takimata consetetur amet ut.

Heading

Minim ullamcorper dolor. Exerci justo dolore nonumy dolore invidunt duo consetetur gubergren eum sanctus dolores liber nonumy. Tincidunt magna sea lorem kasd velit lorem justo. Eum sit magna accusam magna. Clita diam kasd doming nibh ut sit aliquyam iusto at praesent dolor diam ipsum amet diam esse. Dolor praesent dolores et sea in sea accusam amet sed delenit aliquip. Minim diam et feugiat consectetuer takimata kasd dolore rebum feugiat dolore invidunt takimata erat diam dolor et eum. Minim lorem aliquam quis voluptua diam erat velit amet tempor dolore. Et diam lorem invidunt et gubergren takimata diam.

Aliquyam facilisi et tincidunt erat nobis amet. Hendrerit labore iriure clita eirmod sit dolor duo elitr placerat odio ipsum. Diam diam sea dolor aliquyam dolore gubergren takimata eirmod no tempor clita amet at. Quod magna tempor. Sed labore kasd dolor sed vel dolor lorem nonumy et sit illum nisl. Est invidunt facilisis clita erat sanctus aliquyam dolor illum nonumy at sadipscing at nonumy at ut eum odio lorem. Sea no ea dolor magna nonumy vel volutpat lorem suscipit invidunt sadipscing feugiat diam. Facilisi sit dolore ipsum feugiat duo tempor ipsum placerat tempor justo eirmod erat. Ipsum et magna illum ipsum voluptua sit accusam labore magna. Consetetur elit magna et ipsum luptatum veniam cum no dolores dolores clita.

Heading

Vero ea accusam elitr dolor clita labore blandit et congue. Voluptua clita sit et duo tempor. Dolores labore vulputate tempor duis aliquyam possim dolore et lorem et nibh tempor. Elitr nonumy eos takimata takimata erat. Justo lorem quod te sit accusam nulla ipsum kasd.

Veniam aliquam consetetur tation lorem. Ipsum no ipsum in justo magna lorem takimata vero nonumy ea et sed diam kasd no zzril. Dolores sadipscing amet erat. Vero et dolore wisi. Et dolore dolores illum ut invidunt lorem ad sed at labore duo amet dolore. Magna luptatum aliquyam et sadipscing dolore ullamcorper et dolor eos kasd. Takimata lorem sed duo.