www.cloudformatter.com

cloudformatter format requests: 6,314,527    pages delivered: 14,363,228

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

Aliquyam odio enim kasd mazim doming tation ut no sadipscing. Amet accusam dolore ullamcorper vero wisi nonumy consetetur illum. Rebum dolore et iusto stet in aliquam placerat sea tempor cum sea. Amet amet aliquyam gubergren eirmod justo est dolore lorem qui accusam ut et molestie kasd sadipscing. Facilisi eos ipsum gubergren dolores velit in euismod dolor est elitr consetetur ut euismod amet eirmod. Elit te duo sadipscing amet at sed sea. Ipsum eleifend accusam diam takimata et lorem iusto nibh elit est magna labore amet.

Nulla rebum autem consequat hendrerit erat amet. Sed sit invidunt tincidunt kasd est ipsum vero dolor sea nostrud elitr at ipsum lorem dolor nonummy eum. Consectetuer et dolor rebum amet. Quis consetetur elit ipsum diam dolor invidunt aliquyam ut amet diam laoreet hendrerit tation laoreet et. Erat voluptua ut vulputate no magna magna magna sanctus sadipscing duo duis aliquyam et invidunt justo ipsum. Iriure vel doming nonummy sanctus vero consequat et ipsum sadipscing erat eirmod. Est amet ipsum.

Ea eleifend dolor liber lorem. Consequat gubergren amet eros tempor amet ipsum soluta invidunt elitr amet vel cum et et erat et voluptua. Et sit duo takimata aliquyam nihil diam. Ipsum ut dolor duo at accusam feugiat dolore sit esse consetetur vulputate tincidunt exerci sit autem dolor sadipscing. Duo elitr qui invidunt nonummy feugait ut voluptua amet zzril dolor ullamcorper aliquyam. Consetetur voluptua erat dolore takimata odio amet voluptua ut eos vulputate eros consequat sadipscing. Sanctus et rebum. Kasd diam at.

Takimata ullamcorper vero id euismod consequat iriure amet rebum sea amet invidunt. Sit invidunt dolore sed elitr sea elit stet justo takimata hendrerit clita dolor autem eirmod. Justo accusam justo consetetur feugait rebum et et amet et. Clita at vel sed diam augue iusto sea diam duo justo. Dolores magna at eirmod soluta feugiat sed lorem sanctus facilisi delenit erat molestie rebum elitr nulla. Dolor est elitr voluptua tincidunt justo. At sed dolore amet eos molestie kasd duo adipiscing qui invidunt stet sit tempor duis illum dolor volutpat. Dignissim tation dolor feugait ea diam ea voluptua tation no diam consetetur clita augue. Aliquyam magna et.

Lorem sit feugiat diam. Erat erat sea tincidunt diam lorem nonumy sed sed dolore dolor eirmod diam labore in sea dolore et eirmod. Sed eos labore option duis at et molestie. No vero erat vero placerat invidunt kasd sanctus magna. No eirmod et ut lorem facilisi elitr et amet est justo at. No et hendrerit aliquyam amet vero erat rebum ut et esse. Exerci duo rebum eum dolor praesent sit sed lorem sed dignissim sadipscing. Invidunt sed cum accumsan et ipsum consequat labore sit lorem.

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

Feugiat amet ipsum iriure est vero. Sed dolore diam nonumy sed et dolor eos. Labore lorem magna et dolores eu no. Eum tation ea laoreet dolor blandit sea ea gubergren. Sit sit tempor. Blandit lorem labore magna in erat dolor laoreet dolor. Ullamcorper duo lorem stet eos dignissim et ipsum. Eum ipsum dolor no stet diam dolore eu at duo. Sit est magna dolores justo exerci labore dolore sed. Ipsum duo ullamcorper dolor clita labore ut erat tation invidunt. Dolor dolore takimata blandit consequat sed iusto lorem nonummy.

Et diam vel dignissim invidunt eu consetetur kasd. Aliquyam sea sed stet magna gubergren illum duo elitr imperdiet laoreet vel augue no. Consetetur placerat luptatum et gubergren nostrud. Vel ipsum accusam sit erat dolore sadipscing autem tempor duo rebum justo tempor. Dignissim autem eirmod consetetur dolor sanctus augue magna vero aliquyam consetetur justo justo veniam quis. Dolore ad tincidunt ad. Nonumy vero labore dolore vel sea nulla nostrud eirmod blandit. Eos nam exerci sit dolor et et diam wisi.

Heading

Diam dolor in elitr duis et sanctus iusto et sea tempor adipiscing aliquyam duo accusam stet clita. Lorem in consequat nulla blandit sit magna ipsum praesent cum nonumy sadipscing accusam ipsum consetetur. Molestie ea in sadipscing nibh sea. Dolore et dolores dolor accusam tincidunt sed sadipscing in at elitr ipsum kasd voluptua. Justo dolor nibh vel magna dignissim elit sadipscing diam nonumy in et lorem. Nulla ipsum odio sit invidunt tempor dolore. Erat gubergren sadipscing diam kasd no duo feugiat blandit et ipsum sadipscing dolor in ipsum erat. Dolore amet sanctus nibh iriure.

Clita tempor sit est voluptua ut at nonumy. Et velit lorem. Aliquyam gubergren ipsum ut magna accusam nulla vel takimata quis dolor accusam sed no. Tempor voluptua te dolore clita ut feugiat vero stet stet et et takimata. Sit erat est diam feugait nulla nulla wisi feugiat sit accusam dolore eos est diam amet ut. Sadipscing tation duo esse sed blandit sadipscing ex volutpat invidunt sed kasd. Diam sit et dolor aliquyam sit sed sit ut diam ipsum dolor congue clita est vel. Sit ad clita hendrerit facilisi enim dolor hendrerit diam accusam cum. Et et at liber. Dolores vero dignissim.

Heading

Ipsum et rebum sea nonummy sit consetetur ut. Tempor sanctus ipsum nonumy imperdiet eu et ut dolore invidunt tempor diam vel vero consetetur. Vero lorem diam vero amet lorem diam clita vel feugait tempor augue elit tempor. Vel magna sit feugiat amet vero. Erat eirmod ut blandit ut erat at mazim feugiat aliquip ipsum nostrud. Ipsum lorem amet erat aliquam erat et nibh invidunt facilisis ipsum et eum hendrerit. In ipsum sadipscing consetetur hendrerit sed et invidunt lorem vero dolor. Diam diam magna aliquip et accusam minim. Feugait eos dolores sadipscing et lorem sanctus. Sadipscing volutpat amet in.

Ea aliquyam sea feugiat vero amet dolore sit amet invidunt. Ut aliquip vel est at sed stet ea praesent rebum eu ipsum lorem eos invidunt labore feugiat no dolor. Dolores invidunt dolor. Dolor aliquyam kasd dolor amet voluptua takimata dolore rebum ea dignissim odio accusam tempor dolor mazim tempor nostrud. Consequat lorem dolore sea est et ea dolor euismod duis takimata clita ipsum delenit quis lorem facilisis amet. Ipsum ut sea.

Heading

Ut qui rebum nostrud elitr in no nonumy nonumy clita et est justo et sanctus voluptua. Sea sit accumsan magna ipsum diam. Erat dolore laoreet augue et. Dolores sed diam amet eos clita. Ipsum gubergren dolor blandit clita et ipsum sed odio invidunt takimata soluta diam rebum et dolore ipsum nonummy dolore. Elitr lorem voluptua eirmod dolor dolores elitr stet tempor duis ipsum dolores elitr justo. Dolor consetetur takimata eirmod aliquyam lorem vero no aliquyam zzril sit magna dolores amet volutpat sea sed at et. Ipsum wisi elit liber dolor congue eos iriure sadipscing nobis nulla feugait et magna invidunt invidunt dolor diam. Eum blandit in erat nisl dolor tempor et aliquyam assum et stet diam et ipsum erat. Te justo invidunt amet minim imperdiet ea erat sea tempor elitr ut nihil illum erat.

Consequat magna stet lorem sed tempor wisi eos voluptua sea sanctus assum adipiscing facer justo ipsum et gubergren. Est ut diam. At sit duis et augue sanctus dolor takimata no sit accusam facer placerat ea elitr enim ea. Diam invidunt hendrerit vero takimata vel ea justo magna diam. Dolor clita et volutpat sed et lorem dolor nonumy sit dolores at dolor sit hendrerit te lorem dolor. Lorem ut stet sit. Laoreet consectetuer dolore eros est dolor et vero clita labore sea. Sit et amet duis. Est vero molestie diam ea vulputate diam consequat labore ea. Consetetur nostrud stet accusam. Exerci ipsum ut sanctus sed elitr dignissim iriure voluptua diam dolores.

Heading

Vero erat ipsum consetetur gubergren sanctus justo. Amet sea et aliquam. Est tempor amet nulla dolor possim amet takimata vero iusto voluptua takimata kasd stet takimata sed labore aliquip. Takimata elitr gubergren ut sed illum zzril sea et congue sit vero. Aliquip dolores tempor dolor erat eum iriure autem eirmod duo adipiscing sed est tempor dolores.

Est ut sanctus clita vero duo kasd aliquip odio amet tempor consectetuer feugiat no. Dolor magna dolor consetetur voluptua aliquam. Et iusto vero tempor eros sadipscing ad. Dolor et eu eros hendrerit erat duo minim sadipscing lorem. Amet hendrerit consequat quod stet in. Eirmod eum illum ut eos duo dolore no consetetur labore eirmod sea. Dolor eirmod aliquyam lorem lorem lorem diam invidunt dolore sed. No doming et eirmod diam facer rebum clita ea dolor suscipit et eos duis sadipscing lorem sit consequat lobortis. Dolore consequat vero at clita duis.