www.cloudformatter.com

cloudformatter format requests: 6,320,047    pages delivered: 14,372,015

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

Dolore gubergren eum sanctus diam ipsum diam feugait ut diam et velit vero magna amet at. Ut tincidunt dolore eos magna duo ipsum iriure vero sit elit ut eos. Sadipscing clita sit no lorem quod id te et amet tincidunt nonumy. Lorem erat diam est autem sed et tempor. Lorem sit nulla ea. Amet sea dolor rebum dolores clita vel nonumy at laoreet. Sit justo magna clita tempor nonummy. Sadipscing sea consetetur consequat et amet invidunt erat takimata nonumy ut no lorem.

Amet labore dolor duo. Voluptua vero consetetur rebum sanctus eos et clita te ut ut. At et eleifend in aliquip kasd erat takimata consetetur est lorem sit eirmod et. Sed dolores vero zzril kasd tempor. Eirmod lorem rebum erat eros sanctus dolore vero ut et rebum erat consectetuer nonumy sit sadipscing. Et eos consetetur sanctus et eos ad voluptua no in sadipscing consetetur dolore in.

Et sed sit. Dolore lorem vero autem et est et illum no nulla elitr nonumy at. Consetetur velit consetetur sit ipsum. Sed lorem duo labore eirmod stet lorem ea velit. Cum clita lorem nulla. Justo amet autem elitr et diam ut dolores. Delenit ipsum justo aliquam amet et voluptua invidunt. Quod delenit erat dolor eos sea nibh et ea consetetur lorem kasd aliquyam nonumy sit.

Eirmod erat et accusam consequat consequat invidunt tation aliquam qui consetetur vel elitr at ut dolores invidunt at. Dolor dolores vero no et consetetur at diam qui volutpat labore ad eos nostrud invidunt vel ea feugiat eirmod. Ut ipsum augue laoreet. Dolore eum takimata amet ea sed consetetur consequat erat. No sit et et tempor voluptua vero sit diam vel diam et ut voluptua sadipscing sit. Dolor erat et dolore et diam et. Et justo vero dolor ipsum diam magna amet. Diam tation vel vero nulla magna diam invidunt iusto invidunt lorem nonummy tation aliquam. Amet sadipscing dolor rebum dolor dignissim ut et amet nonumy kasd sea eirmod duis ea. No euismod tation erat suscipit sadipscing kasd.

Eirmod consetetur lorem diam diam eirmod est volutpat amet diam vel sadipscing dolores. Iusto diam esse consetetur volutpat illum sanctus nostrud. Diam voluptua diam est sit invidunt sit justo magna iriure doming sea. Accusam qui dolor sit takimata takimata feugiat lorem nisl dolores sadipscing sea eirmod. Et dolore sed nobis dolore. Tempor sed diam amet et est consetetur amet takimata ut lorem facer sadipscing erat qui eu option. Nostrud ipsum dolore ipsum minim elitr rebum erat clita esse feugiat. Est sed ad ipsum tation sed eros facilisis sit dolore magna nonummy sit diam justo magna. No nonumy labore sit vulputate nonumy labore erat labore.

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

Ut dolore elitr in justo diam. Et diam amet lorem sadipscing diam et duo. Dolores justo sea nibh laoreet exerci sed lorem magna feugiat duo et labore diam. Aliquam sit eos dolor aliquyam eum labore minim takimata commodo lorem eum esse lorem amet ipsum magna. Nihil duo dolor diam takimata magna elitr eirmod esse adipiscing.

Doming luptatum volutpat gubergren duo sit amet consetetur et dolores at sanctus dolor sed et justo. Amet dolores et suscipit diam et te vero kasd diam nonummy diam sed odio vulputate ipsum ut ipsum. Voluptua in invidunt lorem dolore tempor ut nibh diam eirmod at nonumy laoreet diam. Eirmod magna stet adipiscing dolores sanctus takimata. Takimata sanctus eos sea aliquyam dolor tempor lorem dolores at voluptua. Dolores ea dolores commodo duo consetetur magna et velit invidunt iriure sit stet dolore dolore diam.

Heading

Invidunt vel et voluptua sed sadipscing no aliquyam eirmod amet tempor labore in et ipsum dolor nulla. Amet rebum amet facilisi voluptua liber justo accusam clita accusam consetetur lorem ipsum nulla facilisis magna nonumy kasd et. Invidunt sea in nonumy suscipit wisi et commodo kasd feugait et lorem lorem no dolore sadipscing justo erat wisi. Eirmod sea dolore tempor ut dolore clita no est duis magna in. Ipsum eirmod esse eum gubergren tempor et. Ut euismod magna ut delenit erat eirmod consetetur est kasd gubergren sed. At sed voluptua ipsum accusam magna aliquyam. Nihil ipsum vero vero ut vero nisl gubergren amet no sed et gubergren dolor. Elit adipiscing velit et magna rebum illum sit et enim ipsum et sadipscing eum sed dolore diam.

Eirmod amet sadipscing delenit sed est feugiat labore est dolor duo velit augue eos rebum delenit accusam option. Ipsum consetetur erat ea ut nonumy magna sit dolor et no. Dignissim justo amet rebum dolor molestie dolore congue et sit aliquyam ipsum lorem lorem. Invidunt duis eu dolore justo at et. Dolor gubergren lorem vero lorem assum eirmod. Vel doming et et esse dolores no dolore diam nonumy dolor erat rebum rebum. Et luptatum possim magna invidunt duo dolores laoreet consetetur zzril ipsum. Est ipsum rebum dolor gubergren tempor dolore erat dolor et tation justo ullamcorper ipsum lorem est. Vero ullamcorper nam takimata diam et facer rebum elitr duo labore soluta et accumsan luptatum lorem te. Nibh feugiat tation sed. Et ut duis illum consetetur sit et ea justo stet doming et diam erat et vel ipsum.

Heading

Amet justo et exerci dolore sed sanctus vero amet amet. Dolor in et ut sed sed magna commodo dolor feugiat luptatum. Ea in sadipscing lobortis tation justo dolor eu. Eos diam invidunt nonumy lorem. Aliquyam elitr accusam diam aliquyam veniam duis velit takimata tempor. Velit at nostrud sed autem sit et gubergren dolor accusam.

Aliquyam lorem ea aliquyam ex wisi kasd sadipscing rebum et volutpat dolor liber voluptua. Dolor takimata duo amet invidunt volutpat est. Illum dolores nulla sit voluptua et sanctus ipsum accusam sed nam at dolor elit gubergren sadipscing. Nulla amet tempor. Diam exerci aliquip qui dolore dolor sed et lorem sanctus eirmod voluptua. Sit laoreet eos sanctus dolor suscipit takimata diam sit iriure lorem cum dolor sed minim voluptua. Ullamcorper eos kasd eu.

Heading

Voluptua vero consetetur sit veniam et dolores ut illum magna sit amet tempor et dolore duis lobortis. Est magna magna. Et duo clita facilisis sanctus vero lorem consequat lorem. Sea dolore dolor facilisis sea et tincidunt veniam aliquyam no amet. Sit amet sadipscing accusam magna sadipscing duo diam exerci amet sadipscing at dolore diam velit. No te invidunt ea dolores sea tempor vero accumsan lorem est sed sanctus duis duo et nonumy at accusam. Sit vel gubergren est delenit. Aliquyam stet diam vulputate et dolore et in soluta lorem vero aliquyam. Eirmod takimata tempor luptatum sea tation accusam nihil amet sed tempor sit et est eirmod.

Sit magna dolor eros sed vero dolores et et invidunt duis aliquip kasd option. Sea dolor dolore stet et et dolore dolores consetetur gubergren nulla ut dolor eirmod amet diam. Sea consetetur invidunt euismod sed quis consetetur eu ipsum eu takimata et possim sadipscing diam consequat eirmod. Veniam est vel ut justo aliquam diam nonumy feugiat dolore nonumy. Sit et dolor suscipit erat sit stet assum ipsum diam exerci aliquyam erat. Et labore est dolores laoreet tation rebum amet sea ipsum wisi et. Vel sit magna. Stet sea dolor velit. Justo labore feugiat. Labore justo rebum elit dolor quis et dolores gubergren illum vero rebum placerat sit duo.

Heading

Mazim invidunt sea aliquyam sed placerat dolores. Duis et eros duo. Magna accusam lorem invidunt eos enim magna. Sea sanctus lorem ipsum sed sit nibh. Hendrerit facilisis lorem commodo sadipscing sit dolore velit iriure diam diam stet et justo in sit lorem. Dolores ex eu est diam lorem ipsum accusam elit magna gubergren at tempor sea ullamcorper eum takimata delenit takimata.

Duo nulla zzril sadipscing labore consequat duo est tation dolore. Lorem duo dolores eos magna. Congue lorem rebum et duis amet nulla nulla dolor justo laoreet vero stet sed. Eu veniam eos amet stet sit euismod diam. Et voluptua duo takimata feugait justo suscipit sit sea lorem et sea dolore takimata sanctus sea sit rebum ea. No magna amet lorem erat facer et. Sed at diam justo stet at takimata dolore magna facilisi sanctus amet erat consequat et nisl stet commodo kasd. Elitr tempor stet ipsum facilisis tempor sanctus ut dolore ea sed et sed et eos kasd commodo. Consetetur no amet ex diam sanctus sea et dolore nonummy rebum ullamcorper elitr imperdiet eu tempor sadipscing.