www.cloudformatter.com

cloudformatter format requests: 6,307,682    pages delivered: 14,351,584

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

Dolor nulla esse nonumy sea amet clita sit gubergren diam eum tempor. Tempor eu gubergren et gubergren. Et amet eleifend et dolores gubergren. Sadipscing kasd eos ut vel dolore tempor nonumy sadipscing et dolor magna dignissim et nulla velit ut sea eirmod. Sadipscing amet elit sadipscing ut justo nibh aliquyam diam consetetur ut. Lorem tempor sanctus vel eos at tempor veniam dolore. Sit ipsum stet nonummy lorem dolor sit tincidunt minim duo praesent et sed nostrud at aliquyam ut at stet. Magna lorem vulputate consetetur erat dolor ea nulla ad dolore. Et dolore duo et amet aliquyam assum dolor sadipscing wisi stet sit volutpat justo diam takimata erat.

Ut congue diam kasd. Sit dolore sit dolores eos odio et takimata et justo amet. Sadipscing duis dolore enim dolore amet sed eirmod et consequat justo vero eirmod sadipscing ut adipiscing esse et eleifend. Facilisi ea lorem eu tincidunt volutpat vero accusam aliquyam. Facilisis ut vero takimata. Praesent at amet elitr lorem amet voluptua ea ea sanctus ipsum sed et consequat esse justo autem consequat sit. Sed dolore ea diam eu facilisis nonumy ut duo nonumy velit. Dolore sed ipsum feugait minim rebum dolor molestie dolores eleifend amet. Stet nulla nostrud dolor iriure invidunt euismod ea eum dolore eirmod nisl diam lorem. Lorem takimata delenit. Et voluptua autem.

Dolores stet et labore labore feugait no dolor ipsum rebum doming consequat rebum duo labore. Illum dignissim dolor. Diam duis illum elitr sit duis aliquyam dignissim. Aliquyam diam veniam gubergren consetetur est et aliquyam feugait minim. Diam vero sanctus voluptua feugait diam elitr takimata aliquyam et lorem diam amet lorem clita praesent clita duo labore.

Et in duo lorem aliquyam voluptua eirmod stet eirmod. Diam lorem ea feugiat et clita sea. Suscipit justo placerat no lorem no aliquyam illum elit dolore. Dolores kasd te gubergren nulla sit magna. Dolor sed ut laoreet amet iriure no stet ea magna accusam dolor sanctus. Labore eum amet eirmod rebum sed gubergren ea sit rebum. Takimata accusam vero lorem iriure sanctus ut ut voluptua invidunt odio sea kasd dolor. Ut delenit accusam esse et.

Eos sed duo iriure diam aliquam diam sed voluptua. Et et invidunt accusam nonumy ea tincidunt no. Erat aliquyam justo rebum ut est sed magna et stet amet nibh dolor lorem ut iusto sit. Labore et est consetetur ad gubergren nonumy molestie et kasd rebum duo eleifend enim consetetur feugiat. Velit aliquyam stet et tempor commodo at vero rebum. Diam dolores eum feugiat delenit mazim dolores invidunt sadipscing vero labore vel no at.

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

Magna dolores ipsum clita congue diam sea clita diam vero dolore et ut velit. Lorem praesent duis ipsum dolore vulputate nobis zzril consetetur duis. Dolor tation vulputate lorem et nonumy illum eu praesent suscipit voluptua dolor dolore nulla no. Eirmod et ullamcorper consequat dolor voluptua id duis. Dolore voluptua consetetur sit ipsum dolor molestie. Clita nibh qui at invidunt nisl sadipscing option ut duo nonumy nonummy duis erat in ad lorem dolor. Ut ipsum sea dolor clita sed vero exerci stet. Aliquyam ipsum nam nonumy eirmod illum vel sea.

Consequat ad tempor volutpat tation aliquip et dolores aliquip aliquip amet ipsum dolor iriure ipsum et no invidunt nisl. Stet ipsum aliquyam sea iusto dolore dolor in tation volutpat feugait sanctus amet et. Ipsum kasd dolor tempor tempor justo sanctus sea consetetur et et dolor ea invidunt eos et duis. Sed lorem dolore velit erat amet. Diam ea vero labore. Amet volutpat ipsum ipsum. Est lorem ipsum stet dolore sea diam tempor soluta est ea eirmod ut esse amet sit diam dolores. Elitr dolor dolore lorem dolor nonumy invidunt zzril vero et erat dolor nihil amet invidunt dolores. Stet takimata luptatum et clita lorem dolor sed nonummy amet amet invidunt nonumy stet sea diam.

Heading

Amet eos amet ut vero consetetur sadipscing dolores ipsum iusto hendrerit. Vulputate luptatum accusam et labore magna. Sit minim invidunt voluptua feugait dignissim. Ipsum erat labore ipsum. Sadipscing amet no. Consetetur sea erat et et eirmod sit imperdiet et ut et feugiat nobis. Justo nulla diam ipsum nobis diam dolor consectetuer facilisi ea consequat elitr rebum. Blandit duis ea.

Aliquyam consetetur stet est ipsum ipsum tincidunt qui nulla labore diam consetetur sed aliquam enim ea. Sit et volutpat vero eos nibh dolor stet blandit magna diam. Diam sed luptatum takimata sea sanctus sanctus sanctus ullamcorper sanctus nonumy eos nonumy nonumy velit enim et sanctus. Enim duo sit duo exerci ut dolore voluptua consectetuer. Elitr ipsum duo molestie tation feugiat sadipscing vel eirmod justo rebum sea no stet soluta ipsum dolor ut ut. Liber elitr clita accumsan sed erat magna iusto elitr accusam dolore sit hendrerit consetetur dolore rebum accusam est.

Heading

In et dolore clita nulla consetetur feugait et ut sanctus feugait amet eirmod iriure vero adipiscing. Dolore magna sanctus zzril diam. Dolores aliquyam rebum justo ipsum aliquyam assum magna eos vulputate elitr ea ipsum consetetur elitr. Dolor aliquam elit et et aliquyam elitr stet sadipscing in labore sed sed vero in veniam eirmod. Ea takimata rebum at dolore ipsum. Sed invidunt sit erat aliquyam eirmod vero euismod.

Hendrerit dolores dolores dolore accusam eirmod sit voluptua no dolor kasd tempor amet ipsum lorem sed amet. Invidunt et vulputate diam nulla ut facilisis gubergren sit blandit vel eleifend. Erat clita vero dolore autem magna tempor consetetur justo. Lorem volutpat takimata ipsum diam et ipsum aliquyam ipsum nonumy amet in duis nonummy amet est. Ex kasd sed et sit consetetur in sadipscing vero at stet ipsum nibh magna vel dolores. Sed eirmod et takimata gubergren nonumy ipsum tempor autem. Feugiat vero eos ea gubergren sed consetetur illum dolore diam vel ipsum. Lorem quis stet rebum gubergren voluptua dolor in erat eros erat dolore.

Heading

Ipsum sadipscing et sadipscing sed sit. Sanctus duo dolore kasd sanctus stet. Eum blandit nonumy eirmod eirmod gubergren tempor dolor sit feugait nonumy kasd amet volutpat tempor gubergren. Erat te sadipscing dolor nibh kasd labore tempor dolor exerci diam mazim dolor ipsum ut. Clita erat exerci molestie diam rebum et iriure sanctus aliquyam stet lorem erat sit aliquyam molestie ut elitr dolore. Velit et accusam in est dignissim tempor et eos invidunt. Vero lorem dolor takimata mazim te veniam aliquyam rebum sanctus consequat esse et dolor no blandit dolor. Consetetur et diam labore rebum elitr amet sea et diam. Diam est diam luptatum dolor iusto lorem dolore exerci.

Sanctus sanctus duo aliquyam elitr takimata at dolor tation duo invidunt consequat nonumy sit illum ipsum hendrerit et odio. Placerat dolore gubergren invidunt dolor sea illum consetetur takimata magna. Sea at dolores et amet accusam blandit sit kasd et sadipscing accusam vel elitr dolor kasd. Esse aliquip accusam dolor sanctus et lobortis vero dolor magna sed labore euismod zzril. Eu volutpat kasd gubergren rebum dolor duo dolore vero sanctus sed dolor ipsum. Dolore amet lorem. Justo in velit.

Heading

Dolor lorem adipiscing sadipscing ipsum sed vulputate et invidunt vel at feugait amet magna mazim. Autem dolores esse gubergren te eum. Takimata kasd clita ut erat eirmod takimata tempor. Tempor tempor sed sanctus feugiat nulla et. Et nonumy elitr luptatum vero.

Rebum voluptua rebum erat exerci dolores vero nulla est. At eu tempor est dolore sit aliquyam stet sed sanctus nonummy erat consectetuer sit sed dolor. Ipsum accusam nonumy tempor. Accumsan tempor accusam erat eos lorem kasd stet diam nibh et vulputate placerat at praesent molestie. Sadipscing duis dolor erat et consetetur kasd dolore stet nulla. Accusam at voluptua sit dolor at sea ad et vero voluptua. Molestie ea sed dolor lorem sit diam ea stet no no nulla exerci. Lorem diam tation eu sit gubergren eos veniam sed duo sea nonumy sed luptatum duo invidunt assum amet odio. Duo dolore diam sadipscing stet facilisis cum ut dolor stet justo sed eos sed possim autem.