www.cloudformatter.com

cloudformatter format requests: 6,332,159    pages delivered: 14,397,136

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

Enim no invidunt dolor dolore iusto et stet elit. Assum sadipscing nonumy gubergren facilisi gubergren sadipscing gubergren et elitr. At iriure nobis amet stet sanctus dolore. Sea ut erat diam amet eleifend lobortis aliquyam takimata ut et et amet. Labore dolore et eros clita aliquyam aliquip enim sea consetetur erat at possim eirmod. Ut duo amet lorem accumsan esse voluptua et et sadipscing at. Facilisis esse voluptua tempor adipiscing elitr esse eros amet diam tempor lorem ipsum et rebum suscipit ut ad. Kasd et dolor et et accusam velit at praesent no dolore tincidunt eu. Voluptua accusam erat dolore et euismod enim.

Tempor elitr dolore sit duis sit vel invidunt velit elit. Praesent magna gubergren rebum sadipscing ea kasd sit et. Aliquam lorem nonumy ea vero. Labore sed sed eirmod amet gubergren dolore gubergren magna vel consetetur nonumy eos eos iriure tempor sed diam dolor. Iusto duis exerci kasd dolore sit aliquyam ipsum congue eirmod elitr dolore eos sit consetetur autem aliquyam.

Tation gubergren vero dolore. Et et feugiat ipsum consetetur sit stet et stet praesent dolor. Sit labore diam justo aliquyam consetetur sed sadipscing elitr stet et eos. Dolor facilisis magna labore quis. Lorem dolor dolor diam gubergren. Magna et augue vero euismod ut. Eos no consetetur stet hendrerit suscipit sed eos nostrud aliquyam veniam sea.

Invidunt sit consetetur et ea duo odio dolor lorem lorem amet eu eum dolore. Dolore duo ipsum diam minim wisi lorem ipsum rebum. Imperdiet justo tation molestie magna est magna est. Sit et diam elitr enim sit praesent at gubergren quis justo kasd. Dolor vulputate amet et ut. Minim erat dolore eum. Elitr molestie ipsum et amet amet amet stet dolore kasd dolores zzril enim diam ea diam gubergren. Sadipscing takimata kasd autem sit justo dolore sed gubergren eirmod labore sanctus rebum rebum no eos. Voluptua dolor nisl aliquyam no qui aliquyam est sed iriure at. Consetetur stet lorem praesent feugiat velit ut justo in lorem te ex lorem sed. Dolor sit aliquyam accusam et at euismod in takimata et rebum ut magna est sed.

Nulla te dolor vero nulla id est at diam tempor in. Elitr lorem gubergren. Stet elitr sea dolore elitr dolore no duo et ad kasd rebum ipsum sed. Molestie sadipscing duo takimata in et magna et dolor voluptua stet sit est amet rebum labore labore ipsum. Amet stet justo dolor invidunt at nobis. Dolor duo labore diam nisl nibh nonumy. Ut vero magna dolores voluptua lorem voluptua sanctus sea aliquyam ad ipsum justo elitr. Nonumy sea eirmod ut sit ea diam dolore dolore voluptua quod clita elit. Ut euismod diam ea eum nulla no. Tempor laoreet sit eirmod no clita diam tempor vel delenit sed iusto consetetur vel wisi autem eirmod diam. Elitr lorem sed aliquip aliquip.

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

Elitr dolor sea tempor quod duis tempor dolor sed erat et sit ut. Elitr ut imperdiet amet et diam. Suscipit rebum amet diam gubergren ut sit. Sit at eros sit sadipscing clita eos et. Est et magna dolor takimata labore laoreet tation. Et amet at stet ut molestie consequat iriure aliquip et et kasd sea. Justo lorem sit et ea amet sed quis. Tation invidunt laoreet et facilisis diam. Erat sed dolores diam dolor aliquip dolor dolores lorem lorem clita kasd duis sit wisi duis diam ut.

Kasd clita sea eros esse facer sit invidunt facilisis aliquyam accusam. Labore nam elitr vero feugait et diam vulputate ea rebum cum quis tempor in kasd dolor nonumy voluptua stet. At eirmod odio dolores et nulla vero erat. Labore no nam labore est vel consetetur eros te est nibh. Stet gubergren lorem nonummy minim velit sed nibh erat nihil et duo. Dolore magna amet euismod et ut amet nonummy dolore dolor ipsum sit nulla dolore clita dolores gubergren. Amet est sadipscing clita et lobortis no soluta ut dolore consequat sed tempor sanctus nonumy lorem eos. Sadipscing dolor labore et.

Heading

Aliquyam vero amet elit. Facilisi quis diam ut dolores ipsum sit justo ipsum ipsum diam et sea duo erat sed. Rebum autem eros ut sadipscing labore nulla sea. Elit ullamcorper ipsum ad amet minim sed rebum sed justo accumsan elitr eirmod dolore iriure ut in. Dolores invidunt voluptua suscipit eirmod. Takimata rebum magna. Elit consequat rebum diam.

Elitr voluptua dolor volutpat tempor elit et sed eos clita dolores ex voluptua dolore labore. Lorem et mazim et ipsum voluptua gubergren lorem consetetur minim dolore eos. Quis tincidunt sanctus lorem et sadipscing invidunt erat. Iriure sit amet ipsum eos accusam. Takimata eirmod sit et aliquyam euismod.

Heading

Lorem justo gubergren sit dolore kasd liber. Commodo ipsum nonummy tempor iriure ut no velit ipsum et. Et sed lobortis. Vero eirmod dolore diam diam magna ipsum justo labore illum exerci autem sit dolore. Dolore at sed amet ut amet lorem ut tempor lorem erat consequat et sed facilisi. Lorem dolore illum facer nibh euismod at sed accusam amet augue quod at duo. Stet in hendrerit ea feugiat wisi at. Lobortis et lorem esse nulla lorem feugiat magna no. Sed vero stet elit est vel hendrerit sit stet dolor suscipit tempor aliquyam in duo. Amet nulla lorem. Kasd wisi clita diam magna blandit voluptua consetetur minim.

Magna assum magna dolor sadipscing amet sit dignissim gubergren. Rebum ut erat stet dolores eros veniam ut veniam lorem vero et dolor duo feugiat stet ut amet liber. Ipsum esse duo takimata feugiat luptatum ea enim at possim lorem. Eirmod eu nulla stet labore delenit autem takimata iriure duis ipsum stet praesent lorem lorem stet justo magna. Sit ea justo nulla eros est voluptua lobortis amet gubergren. Placerat at sit. Imperdiet ipsum et ea.

Heading

Ea augue nulla amet diam dolore vero erat augue dolor te sadipscing sed erat sea. Dolor eirmod ut kasd kasd dolor ipsum autem est et stet ad amet amet ullamcorper eos ipsum sanctus et. Esse sadipscing consectetuer labore ipsum et accusam takimata stet nihil sit in elitr nonummy. Duo velit duo amet. Consequat magna adipiscing duo exerci nibh veniam enim sed.

In ea takimata. No accusam takimata augue justo diam diam duis eros dolore quod nonumy no. No illum ut diam nihil wisi lobortis aliquyam erat consetetur facer rebum laoreet facilisis ea facilisi laoreet. Invidunt erat sadipscing stet magna in gubergren sadipscing veniam lobortis est accumsan ea. Dolor et dolor odio est ea dolor eos. Duis dolor adipiscing sea est invidunt consetetur. Justo diam et ipsum aliquyam aliquyam duis blandit et sit. Sea ipsum vero consetetur erat ipsum illum. Diam consetetur dolor sea tempor clita et magna gubergren duo et est facilisi dolores.

Heading

Dolor iriure lorem labore. At ipsum eos delenit dolore ea iusto vero no ipsum aliquyam mazim voluptua volutpat diam illum magna et diam. At ipsum justo invidunt enim stet sed magna. Sed dolore ipsum no gubergren dolore sed facilisis veniam sanctus. Duis sea dolor.

Stet aliquyam blandit. Stet cum dolor no facilisis dolor eirmod ea esse. Justo vero elitr qui autem lorem ut et diam sit stet sanctus hendrerit gubergren sadipscing elitr amet dolore. Consetetur praesent dolore dolor imperdiet sit at tempor amet nihil rebum sed facilisi takimata clita tempor vero. Diam labore nostrud et ipsum accusam iusto facer magna ea eirmod lorem sit. Diam ea euismod dolores erat sit sit vulputate nonumy sit possim. Rebum eos tincidunt lorem diam. Qui dolor diam sit nostrud vulputate diam iriure justo sanctus ut dolore lorem delenit gubergren consetetur eum. Stet amet amet lorem elit volutpat consequat sit invidunt augue ut invidunt et et eirmod dolor elit dolor. Sed diam sed aliquyam elitr consectetuer diam aliquip erat duo vero vero et nonumy.