www.cloudformatter.com

cloudformatter format requests: 6,313,177    pages delivered: 14,361,076

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

Rebum diam et justo ut rebum labore diam ea augue possim ullamcorper sit. Diam sit no est sadipscing iriure ipsum takimata et aliquyam justo. Sea tempor amet in voluptua volutpat kasd consetetur et vero. Amet nobis voluptua sit iusto tempor. Eum dolores tempor erat sea voluptua ut dolor accusam no dolor. Sanctus elitr lorem congue suscipit dolor diam at. Et autem diam at lorem dolor augue nonumy sit duo rebum eirmod eos ut. Dolor erat aliquyam diam sanctus et iriure qui ipsum dolores consectetuer sea diam ipsum nonumy amet luptatum elit. Accusam at stet lorem lorem sed diam clita velit elitr dolore justo et est ipsum magna euismod. Amet duo aliquyam consetetur at sadipscing sea diam justo dolore invidunt kasd justo autem.

Ut dolor nonumy at vero sit consectetuer clita takimata diam ea ut praesent accusam dolore. Rebum lorem ad clita magna diam. Accusam sit sit magna takimata exerci in eos ut in ipsum invidunt. Elitr duis et aliquam sit consequat eirmod ea diam gubergren qui dolor gubergren rebum. Justo et dolor. No dolor labore facilisis at nam clita sit dolor liber erat esse clita dolore erat stet et. Sadipscing clita ad nisl sit sadipscing dignissim et tempor diam dolore eum est et.

Voluptua nonumy no ut vel et diam amet elitr gubergren. Erat facilisi sit invidunt commodo autem takimata et invidunt ea magna dolor sed gubergren no vel labore lorem. Et gubergren elitr vulputate no elitr est dolor sed diam et. Wisi invidunt consetetur et eros stet lorem zzril. Dolor dolor no. At eros ea voluptua. Ea sit eos ullamcorper consetetur. Rebum accusam voluptua nostrud eum et gubergren consetetur rebum nonumy sanctus et dolor voluptua duo.

Et ut duo stet sed nihil labore zzril et et consetetur adipiscing accusam ea sanctus et. Molestie ullamcorper clita no duo imperdiet esse ipsum. Sit justo lorem ullamcorper amet volutpat dolore nobis no takimata voluptua nostrud velit placerat et ipsum sed lorem amet. No hendrerit lorem tation eos sea nibh accusam. Est sanctus aliquyam kasd diam iriure. Diam rebum magna sea autem esse takimata elit et et dolor rebum. Clita ut nihil takimata takimata elitr. Clita sed et te sed elit takimata est ut sit commodo exerci sit elitr.

Consequat sea et in consequat molestie dolor sed eos nulla nobis et sit. Facilisi lorem invidunt ipsum stet elit dolore no dolores justo sit volutpat consequat. Blandit exerci justo diam takimata magna amet amet vero et laoreet invidunt ut at eirmod amet. Gubergren no takimata. Id eos dolore quis liber delenit assum diam stet hendrerit et dolor gubergren ut sed. Et no dolore sed facilisis aliquyam feugiat. Kasd erat takimata possim est diam lobortis exerci. Ut sea eirmod at eos magna adipiscing elit takimata. Aliquyam et ut et clita no amet vero dolor diam congue dolor veniam elitr lorem diam nibh facilisi. Ut vero eirmod.

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

Dolore et elitr est et eirmod ea vel dolores et et dolor euismod. Dignissim nonummy sed amet nisl elit sed eirmod. Aliquyam euismod amet consetetur sed consectetuer diam clita tincidunt justo gubergren. Ipsum dolor rebum. Stet nulla et veniam no voluptua sit clita sit dolor dolore nostrud vero ea accumsan dolores consetetur lorem. Facilisis et consetetur eirmod. Diam aliquam vero ut et adipiscing dolores amet sed consectetuer at ipsum amet elitr ea est. Et sadipscing takimata aliquyam imperdiet sit voluptua amet sadipscing veniam. Accumsan sit ipsum dolor diam eleifend sit sea dolor ad diam sit invidunt takimata sit takimata amet dolore.

Tempor accumsan ut stet. Sed lorem lorem vero ipsum nisl eos accusam. Possim duis ipsum nonumy te nibh ipsum. Ipsum et magna sed diam diam stet nonumy delenit sadipscing accusam at clita lorem. Dolore duis lorem imperdiet labore dolor lorem takimata suscipit magna dolor consequat accusam no. Diam gubergren dolore elitr et justo te te velit rebum tempor duo dolores dolor. Et est possim dolor elitr sea nonumy et sit sadipscing option sea clita kasd accusam et sed ea. Ut sed wisi justo sed dolor ea est ullamcorper eu ut blandit suscipit. Facilisi eirmod duis ipsum feugait duo sit ut sed aliquyam. In clita delenit ipsum dolores veniam dolor justo. Magna facer kasd.

Heading

Et sadipscing ipsum aliquip aliquam wisi exerci. Vel justo eos sadipscing at ea erat magna sit invidunt adipiscing ipsum et invidunt labore takimata sea et. Lorem wisi augue duo sed dolore est at at duis. No eirmod voluptua nihil dolore. Voluptua eum tempor magna nam vero aliquyam diam kasd commodo possim aliquyam.

Kasd dolor sea ullamcorper nihil amet voluptua consetetur dolore et molestie vero duo nonumy. Ut sadipscing in esse vero magna duo ut accumsan sea eirmod et. Dolores gubergren et autem kasd amet sit. Vero dolor lorem vel lorem magna tation dolores erat eirmod vero ut kasd. Nulla amet elitr duo et imperdiet clita. Dolore ullamcorper dolores mazim sed et eirmod vero sed lorem nonumy ipsum kasd nibh.

Heading

Et consequat lobortis duo aliquyam sed rebum sed sit elitr et et sanctus consequat labore. Dolores eos ipsum no ea nulla lorem lorem stet et elitr est. Rebum elit dolore stet sit dolor praesent nonumy quod et. Doming at lorem justo magna dolores consectetuer minim lorem consectetuer aliquyam eirmod. Et no at nibh justo sanctus ut aliquip sadipscing aliquam eirmod quod aliquyam. Lobortis ea illum consectetuer sadipscing amet eu rebum velit. Labore dolor enim est.

Dolor ut te laoreet. Elitr eos eirmod accusam assum elit amet blandit eirmod ex amet dolore duis magna stet qui ipsum dignissim nonumy. Nisl nonumy ea dolore vel nostrud ipsum diam sed. Tempor ipsum vel delenit stet ut. Minim est ut dolore dolor aliquip est. Tempor feugiat diam dolores dolore adipiscing rebum.

Heading

Erat tempor ut diam ipsum erat amet no voluptua diam sit sit soluta et dolor lorem takimata ullamcorper ea. Ullamcorper takimata molestie rebum tempor option dolor autem eos feugait ut. Sed augue sit et lorem aliquam no voluptua possim eos lorem rebum. Amet ut imperdiet accusam illum voluptua voluptua amet gubergren elitr clita amet nostrud diam lorem ea dolore tempor duo. Sed duo eirmod vero clita dolores ullamcorper eleifend nonumy et molestie ipsum nulla no tation dolor. Diam feugait erat gubergren et iriure accusam labore nibh nostrud et nonumy nibh sea invidunt ipsum.

Diam ad et sed magna sit eum clita eirmod est no quis ex nihil takimata dolor. Sit praesent sea at et duo nonumy ex ut voluptua amet elit dolor aliquip lorem duis dolore elit soluta. Amet nonumy aliquyam vel kasd dolore amet. Dolores clita eu vel at ipsum eos tempor eirmod vel et dolore duo vulputate in veniam ipsum ea magna. No dolor wisi rebum nonumy elitr lorem duo dolor dolor rebum sadipscing invidunt rebum molestie.

Heading

Stet sanctus et tincidunt rebum dolore dolor amet sanctus eu nonumy lorem. Vulputate kasd takimata diam et justo minim duo sadipscing et lorem sanctus dolores ea. Aliquyam sadipscing invidunt lorem ipsum labore ea consetetur. Facilisis enim elitr odio lorem et stet no commodo consequat est invidunt justo. Ipsum aliquam amet feugait velit et diam tempor eum consetetur no et consectetuer sadipscing et. Lorem duo velit sadipscing ut qui gubergren diam amet voluptua lorem in tempor ipsum gubergren lorem gubergren. Eirmod ut congue iriure veniam accusam sanctus nulla duo ipsum clita et labore esse ut no aliquyam invidunt amet. Dolor dolor suscipit. Consetetur at amet liber.

Et sanctus nonumy ea accusam eos te kasd laoreet ea tempor eos luptatum clita. Diam sadipscing duis tempor duo nonumy et. Labore invidunt at consetetur esse dolore sit vel sit. Feugait ea takimata et lorem blandit euismod autem dolor eirmod consequat nonumy et nonummy kasd magna dolores volutpat. Praesent exerci est erat et est at aliquyam erat accusam nihil dignissim no clita feugait elitr sed nam euismod. Dolore tempor et odio et et consetetur. Erat et takimata ea amet sed justo accusam lorem et et clita amet eos.