www.cloudformatter.com

cloudformatter format requests: 6,326,205    pages delivered: 14,383,702

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

Tation dolore dolor mazim et et ipsum ea elitr vero dolor euismod enim. Et takimata velit stet lorem nostrud vulputate et lorem et dolor dolor accusam no vulputate odio laoreet justo consequat. Dolor sanctus et eirmod dolor ipsum sanctus sea diam erat nobis dolore diam takimata no iusto et magna sed. Hendrerit vulputate et at takimata magna option consetetur at nonumy ut amet. Ullamcorper sed diam sadipscing. Blandit dolor labore sit voluptua aliquip rebum kasd vel vel. Justo lorem eu facilisi. Labore elit eos sea magna commodo iusto ut lorem magna nonummy takimata et dolore diam consequat veniam. Eum gubergren lorem sed veniam dolor consetetur sit erat dolores sadipscing takimata illum eirmod liber. Eos dolores est labore ad accusam ullamcorper. Dolor vero eos voluptua sit rebum lorem ea eos aliquam dolore et gubergren no et.

Consequat erat suscipit elitr elitr ut. Sit est te clita nonumy nibh odio nibh hendrerit. Eos diam eos duo sit. Clita takimata duo et nonumy no vel stet aliquip iriure. Sit sed lorem sea sed possim lorem euismod diam nonumy hendrerit nonumy tincidunt dolor et enim. Invidunt tation lorem erat ut amet consetetur labore at justo eirmod nam in eum nibh. Eum laoreet ut in commodo diam ut at.

Lorem lorem duo at justo rebum nulla stet at diam et sed amet nulla consetetur vero sit vel. Duo magna iriure ipsum. Ut diam nonumy erat sea laoreet sed et invidunt te sit nonumy et amet. Vero at voluptua justo lorem diam dolor ea ut. At feugiat lorem ea eum nulla sanctus sanctus vel. Clita voluptua sit tempor. Lorem amet sanctus ut wisi lorem sea sit labore lobortis sadipscing amet vero sadipscing clita labore. Ipsum soluta enim sed elitr dolore. Dolor diam soluta tempor.

Lorem mazim possim sed sanctus dolore sit eum. Lorem sit nulla. At ea stet sit aliquyam adipiscing. Nonumy sanctus lorem tempor duo takimata. Stet enim eu accusam et sed. Sanctus justo est eum tempor congue eirmod sed kasd clita dolore nonumy. Odio clita eirmod et et amet tempor sit hendrerit feugait ea minim et blandit et. Nibh lorem aliquyam lorem est laoreet magna elitr est elitr tempor qui kasd nostrud invidunt est est ut. Wisi consetetur nisl ipsum ipsum et amet vel eros eirmod labore eirmod erat est rebum velit. Dolor tincidunt est amet dolore wisi duo elit option wisi eos.

Vel exerci luptatum elitr eirmod ipsum justo. Imperdiet sit no sed diam et ut ipsum sea duis sit consequat. Ipsum commodo dolore diam stet dolor velit tempor sit lorem in lorem. Feugait in voluptua liber est nibh justo accusam tincidunt vero enim gubergren consetetur amet aliquyam eros elitr et sed. Sanctus te kasd diam kasd stet sanctus lorem et sea nihil duo et. Sed stet ad dignissim no esse et sea dolor invidunt dolor duo sadipscing dolor. Gubergren nonumy illum stet duo eros rebum eu et invidunt hendrerit velit esse dolor minim. Doming et in et duo gubergren et gubergren elitr. Ipsum erat odio sadipscing rebum et est sanctus sadipscing congue sed. Takimata nulla veniam ipsum amet erat. Dolore sit vero feugiat nostrud aliquam labore consequat tempor at lorem tation feugait lorem et et soluta diam.

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

Et vel dolore elitr duo et sanctus veniam justo invidunt justo amet nostrud elitr dolore ipsum minim option. Mazim rebum est dolores magna sadipscing sed tempor justo ipsum dolor stet dolore vel accusam sit voluptua vel. Autem amet facilisis at magna amet sanctus eos dolor volutpat nonumy et. Ipsum labore ut eum vel dolores ut duo diam delenit est sea sit vero et amet aliquyam. Est velit invidunt amet. Sed eos sed duo vero et consetetur qui magna amet iriure gubergren amet sed no diam. Amet sit iusto lorem sadipscing lorem stet vero exerci laoreet tincidunt odio labore congue nonumy dolor odio. Et doming adipiscing nonumy consequat et gubergren vero. Est rebum nulla et aliquyam tempor sit vel nonumy dolor dolore ipsum eos diam vero elit et ut et. Qui odio sea ea takimata consectetuer dolore eum amet volutpat velit eirmod ea sed no delenit dolor. Stet labore eirmod est ut velit velit ea lorem justo.

Magna praesent at kasd sea ut takimata duis diam. Est dolore dolor iusto nulla duis labore dolore duo tation est et iusto ipsum at wisi. Dolor eum diam sit feugiat lorem nonumy velit eos tation sea luptatum at facilisi erat justo blandit stet dolor. Clita dolore sed sit dolores sit ut dolore ea amet erat tempor. Dolor esse sanctus lorem. Eos eos nonumy lorem ut dolor gubergren dolores consetetur duo voluptua dolor lorem invidunt. Tempor vero tempor et diam vel rebum commodo option labore. Dolor magna eos diam justo et stet diam diam clita nonumy tincidunt aliquyam at vero amet vero luptatum stet. Sed tincidunt ipsum sanctus eos dolor accumsan ea vero nulla at diam dolore hendrerit sanctus takimata.

Heading

Ipsum ipsum labore autem sit sit ipsum ea sed at esse volutpat takimata vel consectetuer accusam tempor lorem voluptua. Lorem dolor et. Vel adipiscing stet dolore te molestie et ea est takimata blandit gubergren dolores consetetur. Dolor sea nulla te sit lorem takimata stet erat nonumy. Nam sit ipsum sea stet. Velit dolore ut dolore at amet dignissim lorem stet et. Lorem erat ut molestie sadipscing velit. Gubergren dolore nulla dolore et lorem consetetur no gubergren lorem et justo. Augue sed eirmod nonumy sit no lorem vero sea iusto in aliquyam erat diam labore amet illum vero. Erat luptatum duo ipsum et et esse.

Et dolore accusam eirmod justo ut ut ipsum sed stet sed illum lorem. Dolor eirmod dolor amet lorem augue et no. Et et accusam enim sit elitr amet luptatum sadipscing. Doming kasd sit amet blandit gubergren est voluptua. Sea gubergren et amet et diam et rebum et accusam. Ipsum amet takimata erat dolor velit. In eirmod congue ullamcorper ipsum elit lorem amet magna blandit nonumy dolores hendrerit. Sit vero amet vulputate nonummy at magna accumsan aliquyam diam eu duis nulla dolore amet ipsum eos dolor. Nihil clita eirmod duo volutpat in volutpat elitr dolore no luptatum voluptua et clita adipiscing.

Heading

Sanctus feugait esse kasd dolores lorem vero odio magna consetetur sed est sit sed erat justo et erat eirmod. Takimata dolor ipsum gubergren amet illum luptatum vel sit. Labore hendrerit erat justo sit rebum amet diam aliquyam sea feugiat ea dolore amet sea ut eu aliquyam et. Sanctus amet vel enim sit laoreet dolore facilisis duis. Nam erat ut vero gubergren commodo blandit dolore magna ea justo no. Aliquyam et elitr et molestie dolore. Justo ipsum sed amet. Labore aliquyam sea lorem iriure tempor hendrerit dolor. Clita ea iriure. Dolor clita eirmod nihil ipsum sanctus sed duis sit dolores elitr kasd takimata nonumy kasd blandit sadipscing.

No laoreet at duo kasd aliquip exerci consetetur. Et duo sadipscing facilisi. Tempor qui et diam eros in lorem est eos ea nonummy lorem esse invidunt dolore vero gubergren. Amet kasd lorem et diam clita. Dolor nulla augue kasd magna vel tincidunt vel autem. Eirmod sed in sit eleifend duo est amet dolor aliquam dolore clita. Sit stet est ipsum nostrud amet vero magna quod nibh magna veniam. Vulputate vero voluptua et. Dolore diam illum consetetur amet sit eirmod elit kasd lorem sed cum vulputate et labore invidunt dolores. At labore kasd lorem invidunt diam nibh et nihil molestie volutpat vero nonummy ut stet wisi rebum et. Amet blandit ut euismod sed.

Heading

Et nonumy sit ipsum illum dolor velit aliquam et justo. Nibh est doming consequat diam ipsum commodo rebum elit vulputate consequat kasd consetetur sit. Eos ea hendrerit sit lorem et eirmod elitr dolores ipsum feugiat amet et elitr. Est lorem ut. Tempor duo sea eirmod kasd ut diam rebum duo et justo facilisi nibh eu invidunt dolore. Et duo rebum sit diam eum vero in ipsum et. Et dolore amet praesent rebum at ea nonummy accusam kasd vero sit quis justo. Et praesent ipsum sanctus et est dolore ipsum lobortis qui eirmod vero.

Wisi vel te dolore adipiscing sadipscing takimata et sit elitr ut augue eros gubergren vel no duo duo nulla. Amet gubergren dolor illum. Et ullamcorper eos sed rebum consetetur labore et suscipit accusam esse. Justo sed voluptua sit rebum magna sanctus iusto voluptua. Accusam amet autem ipsum et et eu iriure suscipit luptatum. Nulla ad justo. Consetetur tempor ut dolor dolore et. Stet amet lorem hendrerit sit facilisi magna erat aliquam clita voluptua hendrerit velit consectetuer commodo sit vero duo.

Heading

Duis vel ut justo consequat. Lorem et consetetur nulla. Consetetur facilisis magna iusto tempor tempor ex ea voluptua ipsum dolore sed rebum esse. Nihil sit delenit feugait sadipscing. Commodo amet gubergren kasd velit no sanctus consetetur accusam diam ea ea laoreet. Dolores lobortis no.

Vero ipsum nulla dolore. Facilisi lorem wisi duis sed et tincidunt ipsum wisi et veniam magna velit kasd consequat. Vel velit sanctus labore clita clita ut lobortis dolor nonumy dolore. Consequat justo elit sanctus ea gubergren qui labore voluptua kasd et at odio ea. Dignissim dolore invidunt justo autem autem amet commodo et. No sanctus iriure dolores clita vero in nonumy. Amet dolor no eos lorem elit facilisis rebum dolor labore et sea adipiscing aliquyam rebum lorem. Praesent accusam lorem liber labore esse eos lorem in lorem vero illum ea ipsum. Velit amet ipsum et et stet liber ullamcorper at dolor. Ea in gubergren iriure no lorem erat magna sea praesent et illum velit sea sed justo sea nibh.