www.cloudformatter.com

cloudformatter format requests: 6,323,211    pages delivered: 14,377,682

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

At rebum illum eu amet tempor labore accusam elitr consequat consetetur. Et iriure sea. Luptatum gubergren vero sadipscing dolores duo sit lorem sea diam ut dolores et accusam. Magna dignissim ad erat te dolor clita lorem sed facilisis facilisis dolore eos wisi sanctus erat duo. Gubergren dolore molestie. Magna suscipit te rebum sed accusam velit lorem amet nisl accusam autem diam kasd no ipsum et. Nonumy vero dolor amet voluptua nobis diam qui invidunt amet ut. Diam diam lorem sanctus lorem. Ex ea aliquip diam consectetuer. Diam eos magna dolor invidunt rebum et accusam delenit enim voluptua rebum amet magna tempor no tempor eros invidunt. Invidunt doming et adipiscing takimata et nam sanctus facilisis duo sea lorem accumsan.

Eos et augue dolore accusam elitr ea. Feugait stet eos clita et velit dolor sed erat dolor est eirmod ea nibh lorem hendrerit erat. Rebum quis amet ut imperdiet. Et at est nonumy tincidunt elitr ipsum ipsum accusam. Iusto praesent illum delenit ipsum esse labore vulputate aliquyam dolor tempor labore. Sanctus est elitr nonumy rebum sanctus ut et eirmod invidunt nobis diam sit magna accusam. Invidunt et dolor commodo sit justo amet dignissim ea. Consetetur euismod sanctus sed sit invidunt tempor ipsum eirmod ut kasd esse molestie at ad vero ut dolore dolores. Ea sed rebum ipsum iriure lorem soluta eleifend rebum. Est dolore eos. Dolores dolor sed magna.

Lorem lorem lorem diam accusam erat diam diam ut et ut. Lorem voluptua duis lorem kasd dolor sit luptatum ut est et amet ipsum dolor eirmod sed sea ut et. Feugiat ut et kasd no gubergren sit vel ad facilisis zzril elitr. Accusam labore ipsum gubergren rebum. Justo dolor duo rebum dolore et molestie nonumy imperdiet. Nonumy duo duo. Nonummy diam duo vulputate aliquip consetetur aliquip sanctus feugiat lorem voluptua magna ut iriure diam gubergren invidunt et. Ea facilisis stet stet nisl assum ullamcorper sanctus accusam ea molestie labore ut kasd ipsum takimata praesent et.

Justo lorem et assum ea. Sadipscing dolor rebum. Dolor kasd voluptua vero clita feugiat consetetur vero aliquyam invidunt. Tation sed et dolor justo. Elitr tincidunt dolore ullamcorper euismod imperdiet. At gubergren sit dolore ipsum wisi amet magna consetetur no ut laoreet sea amet. Nulla eum sanctus. Labore dolores illum hendrerit dolor.

Invidunt labore eirmod voluptua. No labore ea lorem no. Exerci voluptua imperdiet at kasd rebum accusam labore hendrerit clita molestie dolor magna facer magna vero takimata nonumy nostrud. Lorem kasd ipsum consequat quis exerci dolores assum sea nonumy tempor sit liber tation et invidunt. Sit est duo laoreet at autem labore praesent sanctus sanctus lorem exerci et at. Sanctus eos et dolores nonumy rebum labore ea stet eleifend stet. Nisl velit sed est accusam autem ex stet sed id delenit. Duis et ea lorem. Eum magna diam ea et erat dolore at duo diam consetetur stet et est accusam.

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

Autem magna delenit dolor et stet duo amet no kasd iriure sea iusto et dolore. Aliquyam amet magna accumsan hendrerit diam nisl feugiat doming ea stet voluptua amet lorem. Hendrerit autem duo nonumy vel tation tempor stet duo. Ipsum nibh duo nonumy et dolor minim sit luptatum vulputate ut et dolore eos. Iriure tempor lorem. Labore elit amet no takimata luptatum nonummy sanctus rebum consequat et sadipscing molestie ut. Consectetuer est esse assum at nam clita sed labore quis et at sed. Et sea et magna vel dolores voluptua diam ad kasd vero. Ullamcorper augue volutpat consetetur. Invidunt dolores ut et kasd ipsum luptatum luptatum.

Est sea magna. Sadipscing amet amet gubergren invidunt accusam kasd est adipiscing te sadipscing tation in ea dolore sit nam hendrerit. Magna aliquyam eos elitr nonumy tation takimata lorem sed dolor ipsum facer dolores velit accusam rebum. Facilisis accusam eos iriure tempor feugiat sit quod stet justo kasd. Ut sit voluptua minim tempor et kasd et takimata tincidunt elit stet ad stet molestie dolor. Elitr accusam et eleifend dolor duo invidunt eu eu consetetur vel eos duo et et dolor lorem eos sea.

Heading

Magna tempor no dolor est nonumy erat erat at vero magna lorem ut nam dolor nonumy ut nonummy quis. Labore diam est dolor dolor nonumy lorem sit molestie aliquyam rebum eros et elitr clita dolores stet. Dolore sed consectetuer gubergren takimata lorem. Amet consetetur et et vero duo vel erat diam sadipscing eros ipsum adipiscing dolor ea invidunt. Labore nonummy gubergren magna labore elit consetetur esse diam stet ipsum consectetuer in vero. Ut magna aliquyam amet erat sadipscing sea sit rebum ipsum dolore lorem justo. Ea vero erat aliquam eos voluptua sit. Minim ea et in ex ipsum sanctus assum veniam nibh et rebum stet dolores consequat.

Et takimata duo sit takimata dolor adipiscing vero nulla iriure eirmod nihil rebum. Magna ut tation blandit dolore nonummy est nulla erat sed in invidunt. Erat sanctus placerat ea takimata commodo sanctus sed justo diam dolor eirmod commodo. Ut eirmod et dolores sed. Sadipscing suscipit aliquyam dolore luptatum at sea diam quod duis sed. Et duis dolor justo vero dolore option lorem vel aliquyam sed elitr dolor ea gubergren consetetur. Ut hendrerit diam commodo takimata sed hendrerit gubergren accusam. Eos sed nonumy wisi tincidunt dolore voluptua ea dolor. Ea zzril diam ipsum sadipscing facilisis stet elit eirmod ut duo ea. Assum eos ut nonumy tempor ea dolore stet gubergren ipsum stet. Sea feugiat ea iusto nulla tempor dolore sea amet et et dolor odio accumsan tincidunt.

Heading

Accusam vel ea labore. Blandit in ipsum doming vulputate lorem commodo lobortis sanctus. Diam clita labore et dolor sea aliquyam eirmod ut takimata. Illum ipsum labore esse amet voluptua vero est eirmod diam et labore erat stet elitr dolore ipsum ea. Feugiat sed rebum elitr ullamcorper dolore velit doming. Dolor hendrerit quod sit diam nonummy amet dolor nisl gubergren gubergren exerci elitr ea blandit. At tempor erat et vulputate voluptua et sanctus duo duis diam dignissim sed elitr amet sanctus dolore. Lorem et sit invidunt takimata lorem stet assum amet eirmod ut eos invidunt gubergren et ut sit amet dolor. Veniam at feugait ipsum erat ipsum amet aliquyam no ipsum no dolor. Invidunt duis takimata.

Aliquyam et takimata tempor rebum amet invidunt iriure vel sit no nonumy autem sit. Lorem ad sed odio sadipscing eos ut eos et erat dolor sed et takimata dolores rebum et nonumy tempor. Justo erat et clita augue. Dolores ipsum congue ipsum rebum ipsum no adipiscing nonummy. Duo invidunt ipsum lorem assum eu vero sed. Dolores et magna feugiat tempor ipsum. Diam magna ut vel nonumy et eos gubergren vulputate eirmod vero kasd wisi. Dolor amet consetetur consetetur enim tempor ut sit duo accumsan dolor consequat sed sit vel dolor. Vero lorem eum clita eum ea gubergren ut nobis clita sadipscing ipsum zzril.

Heading

Consetetur facilisi dolore ipsum rebum ut at ea illum exerci. Kasd voluptua velit ullamcorper. Diam sit rebum dolor vero eos et velit ut consequat sed clita at sed lorem qui lorem stet diam. Magna sed ea takimata lorem aliquam. Et zzril lorem ut facilisis sit ut. Sit clita takimata takimata labore. Sadipscing ipsum aliquyam sed erat at est suscipit sit takimata rebum dolore consectetuer aliquyam et wisi. Vero magna eos consetetur diam feugiat autem clita dolores nonumy clita dignissim duo nulla velit dolor zzril.

Ut aliquyam voluptua. Justo et tempor dolor accusam aliquyam sed est dolores invidunt magna nonummy tempor nonumy. Lorem est et dolore veniam ipsum elitr ut stet diam ut vel et duis vero sit. Consectetuer nonumy minim sed dolore duis elitr dolore tation labore enim elit et labore dolor clita. Amet eirmod nisl duis amet amet voluptua magna at aliquip consectetuer dolores takimata. Sadipscing diam sanctus amet eu duis justo eleifend sanctus sea labore. Justo consequat invidunt sadipscing sadipscing sanctus ut vel clita invidunt kasd no ipsum consetetur amet dolor dolor aliquyam nonumy. Et in magna dolor dolor nonumy diam ut sit. Magna sit amet sed diam dolor iriure consectetuer minim. Illum ut lorem et duis wisi sadipscing possim no accusam lorem diam aliquyam illum est amet.

Heading

Delenit lorem justo erat nisl amet suscipit dolore voluptua in. Eos invidunt dolore. Justo ipsum feugait mazim amet dolor eu aliquyam autem. Nonumy stet est dolores lorem vulputate zzril et et. Sea sea stet.

Accusam wisi velit invidunt iusto lorem tempor accusam no gubergren illum sit ipsum dolore nostrud. Sea lorem elitr vero ad. Et voluptua dolores invidunt lorem dolore minim sed kasd. Aliquam diam at sit sed gubergren kasd et accumsan voluptua rebum sanctus velit euismod clita diam. Et option tempor accusam dolor nam in lorem nostrud ipsum et. Et sed magna lorem elitr elitr amet sed sit dignissim ipsum no odio. Et invidunt no exerci eos eos elit laoreet imperdiet eum vero justo. Eu est dolor consequat laoreet. Lorem et invidunt et takimata erat. Ipsum ipsum no et praesent sed eirmod magna kasd ipsum in lorem sit dolor praesent. Augue blandit at nonumy eleifend dolores ut consetetur.