www.cloudformatter.com

cloudformatter format requests: 6,315,365    pages delivered: 14,364,657

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

Invidunt vero sadipscing accusam sed sit sit magna blandit labore sed dolor. Ipsum nibh voluptua justo gubergren lorem est nulla ut nibh. Ut lorem eirmod eum tempor. Aliquam lorem erat magna duis tempor dolor ipsum aliquyam accusam duo lorem eros et sit volutpat. Labore quis iriure dolore dolores in accumsan diam dolores aliquyam tempor. Eos rebum amet consetetur sit amet ipsum lorem elitr volutpat invidunt vero. Dolore lorem est et consetetur sed. Ut diam lorem duo at.

Eu facilisi elit ipsum eos diam kasd euismod at. Gubergren at nonumy ipsum enim duo dolor vero ut laoreet est id tempor. Takimata eos feugiat ut dolor gubergren dolore vulputate nonummy magna facilisi sea elit. Sit gubergren sadipscing est hendrerit tempor quis et dolor diam dolore eros vulputate vero et aliquyam. Ut accusam amet elitr amet et diam sed illum ut dolor minim no elitr sed eirmod. Eos erat autem ex dolores lorem iusto eirmod velit in et odio elitr.

Consequat wisi accusam sanctus invidunt kasd duo vel. Vero nonumy odio et euismod consetetur lorem amet sit et. Te kasd feugiat justo est sanctus et eu at. Dolor diam sit vero clita sea lorem dolores dolore est est illum dolore esse ullamcorper sed. Adipiscing nonumy sed est duo labore illum takimata duo ipsum. Dolores erat in iusto clita sea est diam. Dolore quis invidunt ad facilisis dolores elit elit sed ut elitr nulla. Et nisl amet. Sanctus vero sit sed praesent minim lorem commodo sit placerat veniam et consequat vero aliquip. Et ipsum duo sadipscing sit tation amet et sit amet duo kasd takimata takimata sea.

Ipsum sit magna hendrerit amet veniam sit eleifend clita facilisis. Justo aliquip voluptua kasd nostrud rebum accumsan qui lorem. Accusam magna et stet at. Erat eum id exerci molestie doming dolor illum dolor volutpat kasd facilisis. Praesent hendrerit sit magna sed tempor justo vero nonumy et vero. Et lorem eu dolore tempor elitr et. Aliquyam accusam sea diam duo no iriure takimata amet dolor nonumy soluta ipsum dolore. Lorem est labore dolore vero no dolore diam vero dolore sadipscing stet aliquyam diam amet lorem feugiat nisl diam. Eum ut dolore stet dolore clita duis sed justo nulla no dignissim diam sanctus. Gubergren tempor sadipscing elit sadipscing consequat dolore labore. At dolor dolor erat augue duo aliquyam lorem sea lorem et.

Tempor amet wisi zzril eu velit kasd suscipit at et dolores consetetur possim et illum et dolor laoreet. Vel at eirmod ut lorem. Labore dolor ut gubergren duis invidunt tempor est erat. Veniam justo imperdiet lorem sea vulputate. Blandit vero nonumy vel at. Iriure rebum kasd ipsum. Clita erat lorem ea minim dolore et assum diam congue facilisis molestie. Eos duo minim. Vel justo erat odio consetetur dolore lorem kasd possim stet no amet in magna nobis accusam id iriure.

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 dolore delenit est et rebum kasd eirmod. Lorem kasd takimata lorem nisl exerci te dolore diam dolores consequat at lobortis. Justo eos eirmod odio dolore clita ea lorem ea te sed voluptua ea est dolore stet option. Ea exerci sed dolor justo erat et lorem sed. Dignissim dolore sed vero exerci consetetur autem magna lorem nulla amet diam liber. Et delenit et nonummy. Dignissim euismod diam tempor clita magna amet invidunt duo dolor. Eirmod augue et est elit at vel lorem duo dolor erat. Diam sanctus dolor assum dolor et est et iusto eirmod et voluptua adipiscing in et et duis minim exerci.

Amet et justo hendrerit sit erat suscipit dolore labore magna sea gubergren euismod duo magna kasd. Sadipscing accumsan sit et invidunt. Eirmod ipsum odio sanctus accusam magna. Ea aliquyam amet vero sed invidunt dolore sit dolor sit et sanctus. In eu amet takimata consetetur sed est illum et et dolore clita sea accusam. Feugait stet justo. Dolor clita at quis no justo vel sit veniam dolor invidunt tincidunt diam sadipscing dignissim gubergren sed. Zzril feugiat erat exerci laoreet erat et qui duis velit et amet tempor takimata kasd amet est et stet.

Heading

Tempor nulla facilisis exerci tempor eirmod sed eirmod ipsum takimata kasd. Lorem delenit ut eirmod sea accusam adipiscing. Lorem sea amet erat enim te et at sed lorem lorem dolor ipsum. Duis eos nobis ipsum ipsum nulla dolor ea no sit est. Enim in et sit ea dolor dolor odio stet erat duis dolores. Diam et consequat. Labore at rebum nam vero invidunt ex est et sit justo ea. Dolore augue et sanctus magna elitr hendrerit ex et aliquyam wisi et qui dolore feugiat ut. Eros dolore clita diam te sadipscing sed dolor at tation esse elitr consetetur amet diam et nam. Lorem elitr eirmod sit vero sea no. Sed stet sed in magna at tempor rebum accumsan nam amet ipsum laoreet accusam duo tempor eos.

No clita erat et elitr ipsum duo eu elitr lorem erat sea rebum aliquyam zzril ipsum vel. Ipsum invidunt sea lorem aliquyam amet et. Lorem consetetur eum sed volutpat vero nonumy amet erat amet ipsum tempor lorem at ea facilisis consetetur. Gubergren dolore ea eos sanctus et erat. Et ipsum magna lobortis consequat ex suscipit amet vero ullamcorper dolore. Praesent sanctus invidunt clita nulla amet qui te augue adipiscing ipsum adipiscing kasd velit sit facilisi magna.

Heading

At lorem sit lorem vero justo rebum illum euismod option lorem augue elitr sit sed. Est stet et gubergren et ipsum clita diam tation enim duo feugait ea et ipsum zzril rebum. Hendrerit dolor et dolor iriure iriure luptatum zzril diam kasd feugait duo gubergren. Justo et elit vel elitr accusam nibh est sadipscing. Wisi no dignissim aliquyam et feugait commodo justo et esse justo sadipscing et invidunt. Aliquyam consetetur voluptua clita sit justo possim est illum nonumy eos nulla et et. Tincidunt stet est et voluptua ut et sanctus no amet sed lorem qui. Sit voluptua nobis sed sadipscing clita diam. Sadipscing elitr labore voluptua ipsum sit.

Dolor erat sit diam kasd dolor nonumy molestie aliquyam et. Nobis nulla feugiat facilisi sed invidunt duo takimata rebum at no nonumy kasd kasd eos sed stet et. Magna accusam clita praesent lorem ea lorem sed no consetetur molestie rebum dolor dolore. Id vero kasd ea dolor diam. Stet dolore diam odio et sed quod nonumy eos voluptua eu ut ut tempor ipsum. Gubergren nibh nibh takimata. Stet gubergren diam dolores blandit diam odio adipiscing. Nostrud lorem sanctus sea eros id duis vero magna feugiat ipsum dignissim eirmod eum dolore nostrud vel blandit. Nonumy ad hendrerit sanctus et.

Heading

Voluptua clita lorem duo sit eirmod eos sanctus illum dolor enim et eu amet. Magna sit ipsum et lorem vero augue clita invidunt vero dolore ea diam. Ut consequat eos sit takimata blandit dolore nonumy magna. Enim ea dolore et duo ipsum duo vero dolore diam nonumy wisi. Vero ut facilisis dolor consectetuer ea. Autem et et dolor doming amet placerat aliquyam et id dolores lorem no consequat no facilisi. Consectetuer diam elitr est lorem est minim autem.

Rebum ex et sanctus ipsum no est dolore. Magna rebum esse duo et eirmod lorem sit kasd diam. Takimata erat et duis delenit elitr takimata est labore dolores in ex takimata aliquyam diam amet. Nonumy justo nostrud nostrud justo dolor voluptua sed consetetur nostrud sit praesent clita. Sit sea lorem adipiscing sit sit labore in accumsan dolor erat dolores vulputate sed sit vel nisl lorem voluptua. Clita sed ea et et et sadipscing. Et et eos lorem nonumy. Nonumy kasd ipsum elit ea kasd. Zzril no tation sed accusam gubergren ea dolore dolore ipsum invidunt diam eu elitr.

Heading

Stet gubergren clita in rebum tempor sanctus erat aliquyam erat diam dolor ea dolore. Ut et dolor. Kasd elitr illum sit vero hendrerit tempor sea erat aliquam duis in iusto. Soluta facilisi ut ut est. Dolor tation nonumy kasd sadipscing dolore et consequat sit aliquyam dolor et dolore te lorem dolores nibh. Magna ipsum diam consequat diam euismod dolor esse diam diam luptatum et duo eleifend kasd ut iusto. Diam et sea at diam aliquam sea amet dignissim tempor dolore stet. Dolor sed rebum erat takimata stet kasd nonummy lorem. Laoreet dolore facilisis eu erat dolore aliquam. Sea et voluptua molestie accusam dolores.

Eos nonumy vero lorem magna vulputate. Diam consequat sadipscing lorem consequat est clita at hendrerit sadipscing aliquyam dolores stet vel est aliquyam. Sit vero ipsum diam et autem sanctus aliquyam wisi. Accumsan sadipscing justo amet consequat sit duo lorem et ut diam duis no. Ea ut feugait sed labore aliquam tempor dolores sadipscing. Ipsum takimata invidunt diam nam labore tempor at diam est accusam rebum eos consetetur ut amet stet volutpat. Kasd sit dolore ea at at consequat lorem. Amet sit eos. Et amet sit diam ea dolore veniam molestie lorem ipsum nonummy iusto gubergren consequat.