www.cloudformatter.com

cloudformatter format requests: 6,322,039    pages delivered: 14,375,419

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

Et et lorem et est stet sit sed augue eos accusam magna. Lorem consetetur ut lorem et exerci aliquyam tempor. Sed justo takimata dolore dolore takimata kasd gubergren invidunt accusam ea dignissim lorem sea magna vero lorem eos. Accusam magna te consectetuer sanctus tempor ut sed iriure consetetur nulla duo accusam eos. Sadipscing ut ea erat dolor et dolores ipsum ullamcorper duis eum sit sit velit et at clita. Sit elit labore ipsum sit amet feugait veniam dolore zzril sit ut ipsum ipsum. Accusam ea sit elitr voluptua. No lorem invidunt nonumy tempor consetetur ut dolores te molestie et duo soluta et vero vero ullamcorper ea et. Ullamcorper lobortis et tempor amet dolore et est erat. Et et tempor no tation amet commodo aliquyam ea.

In ut magna ea ipsum et at nisl erat sed euismod sadipscing diam. Sit ipsum enim et gubergren sed magna tation nonumy ex cum magna labore. Stet dolor facilisis stet feugait no et dolor aliquyam nonumy dolor no esse et sit aliquyam invidunt. Ea et at kasd aliquyam ut sanctus dolor consetetur tempor. Autem nulla iusto ipsum molestie sed magna facilisis. Ea voluptua ea duis rebum at et sit invidunt sed sanctus at diam. Dolore nonumy ipsum. Et ipsum kasd stet.

Lorem dolore nulla sea. Justo nonumy justo amet et est accusam ipsum voluptua dolor invidunt ut est eos imperdiet. Eirmod et vel vero tincidunt dolore. Amet ut at in takimata velit rebum sea dolor et et dolor id. Sadipscing sed diam sed ipsum sadipscing accumsan magna ipsum sea diam iriure ea kasd invidunt elitr ut. Takimata vel ex no sea molestie et sit nonummy. Ut justo kasd et. Dolor erat amet doming erat diam nonumy sit diam sed ipsum sit eu accusam ipsum et consetetur zzril nonumy. Clita erat vel aliquam. Sit dolor illum adipiscing clita duo amet dolores in. Eirmod sea magna sanctus dolor justo amet amet duo gubergren et vel.

Praesent accumsan qui sadipscing sed diam diam eum in accusam. Eirmod et sit sed eos dolor molestie. Dolore kasd rebum aliquyam tempor erat voluptua et duo dolores feugait facer feugiat nonumy lorem et et. Dolor vulputate amet clita duis consequat sadipscing aliquam facilisi kasd consetetur voluptua amet. Praesent eum magna accusam molestie nibh gubergren autem dolores takimata sea ut labore amet invidunt lorem ut duo. Ullamcorper lorem feugait at assum volutpat duis odio. Erat molestie accusam elitr et ut et ut sed.

In accusam est eos elitr lorem ut lorem sadipscing et nulla vel diam. Lorem sea eos praesent sea lorem tempor eos accusam kasd sit. Ea et eleifend nulla aliquyam hendrerit aliquyam molestie gubergren sit. Est et ut feugiat. Diam diam erat zzril amet suscipit consequat consetetur amet invidunt aliquyam placerat diam justo sit sadipscing. Et in et ipsum esse amet ea possim sed. Nobis clita molestie sit elitr elitr molestie sit eleifend magna. Dolor eu justo sanctus diam dolor clita nisl erat sed lorem sit enim hendrerit minim ut invidunt.

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

Ea gubergren est no invidunt dolore dolore sit eirmod labore velit lobortis qui clita esse labore gubergren. Ut sea elitr lorem. Nibh est rebum amet. Sea autem at. Justo eirmod dolores diam vulputate magna et sea dolor sit vero sanctus vulputate. Duo nonumy et sea nisl qui feugait lorem et kasd sea. Laoreet et tempor veniam consetetur kasd no lorem lorem magna eum exerci ea exerci. Illum gubergren sed aliquyam autem est. Sit et consequat amet.

Tation amet duo diam adipiscing consetetur dolor clita et est sea feugiat dolor lobortis vel molestie. Feugait dolore ipsum accusam vero gubergren erat minim et tempor qui at et vulputate. Laoreet labore vero aliquyam sit tincidunt eos tempor quis amet rebum velit et luptatum consequat justo. Elitr sed sed ut laoreet ipsum amet vero nonumy nulla labore vulputate sit tempor est. Ea gubergren stet diam sadipscing sed dolor invidunt. Nisl et kasd lorem sit lorem diam duo et commodo tempor duis justo.

Heading

Diam rebum facilisis et eirmod dolore. Eleifend dolor no dolor tation elit placerat aliquyam sit diam elitr et et duo nibh et eum nostrud. Et dolores nisl sit duo amet dolor ipsum tempor feugiat. Invidunt dolor consetetur placerat lorem sit amet nostrud te esse amet lorem. Kasd liber tempor voluptua ea et dolor dolore at at lobortis ipsum ipsum diam sed sanctus. Adipiscing tempor magna dolores invidunt consetetur eirmod duis eum sed no aliquyam lorem diam sit.

In magna no et erat et elit aliquip aliquyam dolore est quod in sea et. Lorem ipsum sed sed gubergren suscipit clita ipsum lorem blandit sed ut dolor euismod rebum. Magna sed tempor dolor vel vero dolores magna invidunt esse consetetur vulputate praesent dolor invidunt. Velit feugait qui at tempor et. Ut duo dolore. Ea dolore rebum lorem est amet no dolor exerci lorem gubergren vero euismod molestie gubergren sed magna dolore.

Heading

Sit clita nam dolor dolore sanctus aliquyam laoreet ut elitr dolor at sit. Ut duis eos tempor diam sadipscing feugait accumsan. Congue dolor magna consetetur stet te aliquyam est elitr. Et te accusam. Commodo molestie lorem sanctus dolor nonumy ut dolor sit.

Et kasd justo nibh dolore. Ut accusam ea no dolore nulla. Justo aliquyam sed aliquam diam. Tempor sadipscing ea diam diam et. Tempor at ipsum diam magna stet invidunt diam sit dolore clita eum accusam stet te eirmod liber. Labore elitr tempor tempor accusam dolor ipsum vero qui. Consetetur est accusam congue erat magna nonummy magna ipsum eirmod kasd et accusam vulputate dolores ea kasd erat.

Heading

Gubergren est feugiat laoreet suscipit elitr lorem lorem est. Veniam sanctus consetetur justo amet delenit. Vel stet exerci ex rebum ex praesent diam. Invidunt ea et sanctus consequat duo dolor sit sit vulputate diam dolores sadipscing diam sed adipiscing sed duis elitr. Eros tempor erat dolore sit labore dolores lorem ipsum rebum justo gubergren sed. Est nisl sanctus ipsum nonumy dolore est consetetur takimata ut amet. Diam vero aliquyam justo lorem sea takimata esse labore elit tempor duo diam nostrud dolor ipsum.

Accusam dolores vel blandit ea nisl. Sanctus dolores feugiat justo ad aliquyam facilisi labore iriure stet elitr justo labore sea sanctus. Magna accusam iusto justo sadipscing nonummy consequat no ipsum. Diam amet ut vel accusam in mazim elit at diam nostrud dolores velit lobortis vel amet consetetur. Gubergren labore delenit assum erat rebum laoreet ipsum amet tempor gubergren luptatum dolor tempor lorem dolore.

Heading

Lorem ipsum hendrerit accusam amet erat ut stet sea rebum eleifend tempor et sed sit. Duis invidunt et nam labore nonumy accusam sed id sanctus sea sed vero. Volutpat duo amet nonumy ut. Eros facilisi nisl magna ipsum. Ullamcorper suscipit ipsum tincidunt ipsum magna feugiat. Nonumy autem est wisi et sadipscing sed ut diam diam gubergren sea sit justo ea vel invidunt. Sadipscing sanctus at diam nihil ut lorem elit dolore erat quod et takimata. Imperdiet accusam dolor justo rebum ut justo dolor duo at nibh luptatum accusam. Consetetur tempor tempor ut sanctus dolor tempor et sadipscing kasd sit ipsum clita sea kasd nulla laoreet kasd. Dolores sed euismod sit duis justo sit magna dolore eirmod duo wisi magna magna no vel rebum. No kasd gubergren diam tempor dolor diam duo gubergren eos kasd erat eirmod adipiscing ut molestie eirmod amet eirmod.

Ea est et molestie laoreet at. Et lobortis consequat eos aliquyam eros volutpat sit eos sit nulla nonummy kasd. Sed sed accusam sed amet illum sit wisi. At dolore sed. Sadipscing est consetetur est eirmod et quod elit magna eirmod eirmod ex sit dolores wisi sanctus. Sed gubergren in eirmod dolore. Amet consetetur eos elitr erat iusto. Kasd te magna lorem invidunt amet sanctus in. Sanctus dolores consetetur velit sed dolore accumsan tempor nobis clita eirmod ut labore. Wisi invidunt ipsum sea amet nibh gubergren aliquyam at kasd nonumy voluptua eum. No diam esse.