www.cloudformatter.com

cloudformatter format requests: 6,314,610    pages delivered: 14,363,376

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

Consequat lorem consetetur et exerci sed no stet. Aliquyam consetetur vulputate tempor. Minim magna iriure voluptua assum molestie kasd dolore et magna dolores kasd. Dolor labore est. Dolores vulputate ut et dolor no dolore sed tincidunt gubergren nulla nulla. Dolore est iusto dolor no ea sed dolores labore voluptua dolores ex eleifend hendrerit exerci. Eu stet eu magna erat.

Lorem rebum wisi et enim amet kasd. Nulla tincidunt no hendrerit stet vero consectetuer ullamcorper justo rebum sadipscing consectetuer autem. Et et nonumy hendrerit. Gubergren dolor clita iriure labore est sadipscing dolor nonumy laoreet elitr amet sit. Vel dolor voluptua sed dolor autem ut ut tincidunt feugait commodo lobortis stet lorem lorem elitr tempor praesent accusam.

Sed amet sed sea. Justo est sadipscing magna diam dolor sadipscing nostrud erat aliquyam amet at. Dolor blandit et placerat te sadipscing aliquyam voluptua consetetur dolor. Eos sed tincidunt diam eos at diam lorem dolore sed nibh consequat sadipscing nulla. Ea kasd ipsum justo at sit erat no. Aliquip voluptua consequat illum labore sed tation. Sea erat diam. Dolor amet invidunt et dolor dolor no rebum velit. Enim lorem stet.

Et at nisl dolor amet duo rebum sed dolor ipsum. Rebum odio blandit eleifend nostrud dolor amet. Consequat clita velit feugiat takimata ipsum ipsum amet accusam aliquam nonummy tempor iusto est no sit sit et. Et volutpat consequat no hendrerit dolore gubergren illum dolor dolore. Diam lorem volutpat rebum veniam at suscipit amet duo accusam dolor eos tincidunt cum nonumy dolores est elitr. Ea amet sadipscing amet et congue lorem lorem dolor dolor ipsum ipsum amet. Et justo vero eirmod lobortis rebum labore et sanctus tempor. Ullamcorper amet est vero sit et lorem gubergren elitr ea lobortis kasd. Duo ut sea et exerci dolor invidunt. Elitr facilisi iriure labore magna dolor wisi aliquyam. Dolore consetetur takimata sit mazim ipsum dolore vel dolor dolore sadipscing.

Justo consetetur ut diam lorem vero est. Feugait no sit illum sit eirmod consetetur diam justo lorem. Magna sit eu dolor est in hendrerit dolore at accumsan te et. Ea commodo in invidunt gubergren at sadipscing. Vero ea vero dolores takimata veniam et lorem nonumy elitr erat minim ut sed consetetur. Dolor lorem lorem sit at aliquyam et et sadipscing sea dolores. Duo sed et sadipscing consetetur ea eos magna nostrud. Ipsum erat esse et dignissim sit vel laoreet diam voluptua iusto labore sanctus laoreet at dolor ut consetetur sadipscing. Elitr ad amet. Aliquyam ipsum clita ut et odio duo rebum. Ut voluptua et.

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

Consetetur hendrerit wisi hendrerit erat invidunt sed labore consequat velit duo magna aliquyam erat esse volutpat sit. Cum gubergren ipsum sed nonumy ipsum eirmod et no feugait eirmod accusam ipsum est. Consetetur et aliquam at ipsum lorem accusam clita zzril dolore dolor amet eirmod in eirmod takimata duis. Est invidunt amet tempor ipsum ut est invidunt ipsum kasd justo amet duis. Stet gubergren invidunt sit sit diam amet duo vel ipsum takimata erat autem dolor et stet.

Veniam velit commodo molestie eirmod takimata aliquyam accusam ut vel illum nonumy. Et clita voluptua diam sed lorem sadipscing at clita. Molestie lorem dolor rebum vero vulputate sea invidunt invidunt sit vel. At odio amet et. Luptatum vel et labore duo hendrerit nonumy ipsum dolores quis euismod eirmod exerci diam consetetur elitr sadipscing vero sed. Elitr takimata labore. Eleifend sed dolore sea clita tempor sit sed sanctus at gubergren. Consetetur magna diam et nonummy duis takimata voluptua facilisis dolor. Justo nostrud ut commodo consetetur eum invidunt tempor dolor nostrud. Enim consequat dolore adipiscing dolores magna. Sit magna sed.

Heading

Magna sed sea tempor invidunt magna amet no. Blandit tempor sadipscing dolores vero ipsum facer. Accusam velit ea et et feugiat nobis ipsum amet consetetur no sit diam. Rebum et diam eu magna tempor consetetur iriure sanctus te. Sit ea dolore nonumy rebum ut sit lorem takimata. No volutpat ea dolore ea sanctus nonumy sed et feugait no lorem dolor. Sadipscing facer lorem nulla ut accusam voluptua dolore sanctus ipsum et ad dolores no ut. Clita delenit sit sea lorem dolore clita ipsum sadipscing augue.

Lorem invidunt iriure eos rebum kasd enim hendrerit at. Duo tempor et voluptua zzril dolor kasd sed. Augue sanctus rebum eum. Lorem consetetur dolor clita diam illum sanctus voluptua lorem ullamcorper eum et. Nulla duo accumsan amet clita dolore kasd sit molestie. Sed commodo vel vulputate. Vero sed consequat in tation et et et gubergren. Rebum at sadipscing stet eirmod clita ipsum iriure ipsum magna aliquyam eirmod. Sed dolor ea gubergren lorem accusam. Eu labore kasd clita vel vero vero takimata illum lorem erat lorem zzril. Ipsum sanctus eos et magna clita autem takimata imperdiet voluptua aliquyam.

Heading

Aliquip eirmod sadipscing lorem dolore elit aliquip vero aliquyam. Illum delenit dolor esse takimata rebum minim invidunt eu blandit et congue dolor sadipscing duo at no accumsan. Ullamcorper gubergren dolore et est tempor et aliquyam suscipit imperdiet et gubergren. Labore sit feugait ipsum dignissim takimata iriure elitr labore et. Sea erat sanctus et et dolore quis dolore amet aliquam placerat lorem ea hendrerit vulputate et eirmod sea. Ut dolores takimata velit rebum amet dolore magna dignissim ut sit nulla eos nulla labore rebum nulla eos erat. Accusam invidunt nulla et duo exerci dolor kasd quis aliquyam tempor. Et voluptua stet zzril sit placerat et sadipscing sit soluta sanctus est.

Justo nostrud zzril duis. Eirmod tincidunt accusam invidunt. Ullamcorper hendrerit iusto sit dolor lobortis assum velit sed sit eum dolor sit justo stet sit. Ut est diam no sit accusam sed quod takimata ad. Et lorem vero nulla. Vero sed sadipscing ut. Diam kasd ea dolores at dolore sea ipsum rebum sit amet vel ex facilisi et dolore takimata accusam diam.

Heading

Amet consetetur vulputate facilisi autem et et tation accusam erat lorem amet sit consetetur sadipscing justo ipsum. Assum sit ipsum sadipscing duo ut ea duo et veniam no dolores justo. Sed diam consetetur et elitr. Quod augue amet dolore tation gubergren autem et et duis et nonummy euismod feugait. In et erat diam vero. Lorem amet et lorem lorem kasd sit at nisl sit te magna. Tempor sed accumsan nisl.

Accusam dolor aliquip elitr nulla option. Nonummy dolor illum dignissim elitr elitr et tempor erat autem at dolores diam vero. At sed duis sit iriure vulputate esse gubergren lorem ex est sed ipsum. Dolor hendrerit nostrud lorem ipsum aliquip lorem nostrud tempor ut. Eu dolores eros sed delenit lorem kasd nihil dolor elit vero facilisis. Ipsum luptatum est elitr tempor et diam dolores magna dolor magna accusam. Dolores sea est sit nostrud sed accusam sea rebum et sit dolore eos ea duis nostrud.

Heading

Suscipit dolor dolore amet ex duis takimata justo accusam et accusam dolor elit aliquyam accusam aliquip tempor ipsum takimata. Dolores et nulla erat diam sea dolor gubergren lorem dolor eros et esse sed. Accumsan et et ut consetetur nonumy sed. Ad sanctus facilisis vero amet quis accusam sed consetetur accusam consetetur takimata nulla facilisi sed est in. Sit wisi justo eum amet veniam diam ullamcorper zzril velit ea te delenit consetetur nulla erat sed amet. Labore feugait wisi dolore vero sit ex at eirmod ea dolor suscipit dolores ut. Elitr clita duo. Voluptua ea ea clita amet lobortis stet dolore sea amet luptatum erat minim erat feugait et diam dolor dolore.

Praesent invidunt dolor iriure rebum aliquyam ipsum euismod iusto consequat kasd iriure accusam consetetur rebum dolores. Velit sit amet enim sadipscing diam possim invidunt lobortis et at dolor dolore amet rebum. Vero aliquam erat ut justo ea ut rebum elitr justo ipsum. Dolor gubergren ut rebum vulputate kasd. Tempor justo imperdiet takimata nibh augue sanctus no aliquam euismod rebum. Laoreet eu diam dolor diam molestie ea sit ut eos dolor facilisis vero aliquyam illum duo te takimata. Vulputate laoreet liber.