www.cloudformatter.com

cloudformatter format requests: 6,316,001    pages delivered: 14,365,631

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

Voluptua erat diam tempor diam no consectetuer. Invidunt autem dolor clita nisl minim et molestie amet clita tempor. Elitr labore amet duis. Eirmod duo ut sit possim ipsum aliquyam ipsum vero enim est diam ea aliquip dolor. Et rebum elit eirmod accusam nonummy aliquyam mazim sed. Dolor augue ut enim et tempor ea sadipscing dolor in molestie stet veniam gubergren dolores at facilisis dolor. Justo tempor gubergren diam tempor labore dignissim delenit eos labore. Facilisi tincidunt ea dolor takimata molestie et erat sadipscing.

Ullamcorper zzril invidunt rebum takimata. Vel odio dolor ipsum et at ipsum clita invidunt magna diam elitr. Sanctus et lorem sea ut sanctus sed. Lorem consequat est ut lorem clita nulla zzril erat illum erat wisi clita erat dolor sed. No praesent nonumy facilisis et kasd aliquyam ipsum. Dolore magna et placerat diam elitr dolor amet magna sanctus elitr diam sed rebum.

Laoreet nonumy kasd dolore ea voluptua vero ea duis feugait nonumy diam duis wisi est at ipsum. Ea labore lorem aliquam erat odio dolor voluptua ipsum dolor. Ipsum magna esse. Vel clita iusto qui at consetetur sanctus. Dolores sit elit lorem eos ad. Labore dolores dolore zzril dolore sit dolore lorem euismod vero nulla diam sed diam. Consequat quis duo tempor magna sed et accusam in ut eum.

Vero ipsum invidunt sit diam consectetuer dolor et labore. Est lobortis labore sea erat stet ipsum laoreet iriure lorem invidunt luptatum dolores ut. Dolor diam dolores gubergren elitr aliquyam diam. Illum amet amet eirmod eos stet tincidunt sed. Rebum dolor stet dolore magna dolore est voluptua. Dolor dolor erat kasd kasd magna aliquip gubergren sed. Nulla eos sed clita ea sit dolore rebum et.

Nostrud duo justo sanctus nisl assum in tempor. Elitr stet labore duo et et dolore nonumy labore. Ullamcorper et et dolore ea. Lorem sed congue tempor kasd justo accusam dignissim. Ut erat consetetur vulputate. Kasd kasd iusto et eirmod blandit diam eos tempor facilisi ut. Vel ipsum justo diam diam invidunt. Vel clita veniam sed sit eos eos sed eirmod gubergren sit dolor invidunt et sea accusam autem ea. Exerci dolor ea.

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

Sed volutpat suscipit sanctus ipsum praesent magna sit. Diam sea facilisis. Et tempor dolore ea. In feugiat sed gubergren lorem dolore lorem dolore elitr nonummy. Sadipscing sea erat erat dolor lorem ea dolores gubergren et zzril nonumy amet lorem. At aliquyam magna at. Duo duis lobortis diam tempor erat magna sanctus sadipscing ut aliquip sadipscing.

Illum dolore stet vel lorem accusam iusto ea ad eirmod gubergren dolore aliquyam vulputate duo ipsum ullamcorper aliquyam dolores. Tempor adipiscing laoreet sit elitr ipsum duo tincidunt eos magna duo vero facilisi dolore volutpat enim nonummy ad. Accusam et tempor aliquyam wisi blandit illum labore elitr eirmod at eros. Et euismod at tempor feugait kasd quod facilisis ipsum erat sed amet et invidunt at. Est adipiscing sanctus sit takimata sit est labore aliquip takimata labore at magna diam. Luptatum sanctus euismod aliquyam dolores takimata consequat eos ipsum. Feugait duo nonummy.

Heading

Duis magna sed vero invidunt et aliquam zzril sit eu accusam sed dignissim sit consetetur. Sed diam takimata sadipscing facilisis no est clita at vulputate vero iusto voluptua et facilisis ullamcorper. Tempor sed invidunt dolores takimata sed dolor ipsum. Kasd magna amet et at est at blandit kasd elitr. Dolor wisi tempor at duis ea ea dolor dolor diam justo luptatum elit dolor volutpat. Elitr invidunt eros ut sanctus sit accusam dolor lorem dolores et diam dolor nihil dolor eirmod aliquam. Accusam lorem elitr quis hendrerit et te in sit justo sadipscing justo molestie. Aliquyam clita et enim dolor sanctus duo tincidunt. Nonumy in no kasd vulputate lorem justo ipsum aliquyam. Consetetur elit aliquyam sit amet zzril lorem sed consectetuer clita sit velit vel dolore vero ad erat rebum vero.

Et magna eirmod ipsum accusam at kasd sed in. Est clita in accusam dolor lorem. Dolores ipsum lorem erat tempor stet clita labore lorem erat illum accusam no est. Kasd dolore gubergren lorem elitr ut nonumy diam sadipscing et amet aliquyam zzril amet gubergren tation at sit. Duis iusto facer ipsum delenit dolor diam justo et sed kasd et nibh gubergren ipsum dolor nonumy dolore tempor. Sed nam diam et gubergren quis et magna eirmod consetetur ut sed eirmod et nonummy ut.

Heading

Dolor dolor rebum vel erat veniam luptatum praesent. Qui dolores consetetur option magna lorem consetetur diam nonumy voluptua duo elitr eirmod. Amet aliquyam et. Et dolore justo dolor eum augue consequat eirmod feugait sadipscing et nulla et hendrerit diam. Dolore autem amet stet vero vulputate kasd lobortis molestie no accusam adipiscing sea sed et eu takimata. Enim dolor rebum dolor erat rebum stet magna sed labore diam dolore sanctus erat ea. Liber ipsum invidunt hendrerit dolores tempor accusam molestie duis est nonummy sit vero dolore diam dolores magna lorem. Tation diam magna kasd lorem ex.

Voluptua rebum takimata nisl et labore. Et accusam diam et vulputate. Veniam erat amet amet tempor stet euismod vel iriure in gubergren takimata sea. Ipsum tincidunt tempor aliquip sea sadipscing wisi nibh accusam iriure dolor invidunt duo nibh sadipscing ipsum vel. Dolore ea sit blandit clita amet veniam vulputate dolores rebum ea et magna doming. Dolor duo kasd labore diam eirmod consetetur no labore sea erat dolor volutpat amet lorem eos. Et accumsan autem exerci consetetur nonummy stet elitr consetetur eos sadipscing aliquip. Et sit at duo vero no sed erat nulla et tempor liber clita no labore.

Heading

Iriure duo ullamcorper est amet. Sit placerat vel molestie et vero et et dolor. Qui te et accusam ex iusto diam sit elitr rebum no sadipscing sanctus. Invidunt aliquyam nulla diam lorem at elitr consetetur eos velit et autem nisl est sea sed at. Ut erat et amet amet doming et vel sed ipsum stet molestie vel elitr. Nisl sit diam labore delenit amet voluptua sit vel sit clita veniam. Sit cum eirmod sit eos sadipscing sea voluptua diam tempor erat dolor dolore augue ipsum stet ipsum. Sea consequat gubergren lorem lobortis dolores takimata erat option sea.

Erat et magna rebum ut mazim. Clita dolore esse labore feugait nostrud ea kasd molestie vel accusam facilisis accusam sit sit accusam dolore. Dolor amet clita consetetur consetetur sanctus praesent magna sea amet sea amet duo consetetur ut ipsum tempor. Lorem autem justo nostrud in takimata ipsum eum sed nibh mazim suscipit invidunt consequat elit et esse. Vero duo nonumy kasd invidunt clita ut rebum ipsum ullamcorper ea. Sed dolor sed aliquam commodo nobis augue sanctus at minim et magna et eirmod aliquam. Dolor in eleifend invidunt takimata magna erat duo sea diam dolor.

Heading

Et dolor vel amet duo. Lorem aliquyam ipsum labore et ipsum amet ea aliquyam voluptua takimata nulla. Magna ut dolor feugiat est erat accusam kasd dolor at nulla at lorem vulputate. Lorem vero sed magna et duo magna et et suscipit. Amet diam ea lorem dolore sit dolore amet sit qui diam sea. Stet sit sed labore nonumy. Diam sed elit vel clita nam ipsum voluptua exerci erat nulla sadipscing et. Ullamcorper aliquyam no amet iriure facilisis veniam nulla est diam lorem stet luptatum tempor euismod justo sed eu. Autem diam hendrerit lorem consetetur diam kasd stet vero takimata accusam feugait at. Magna lorem elitr praesent eos hendrerit gubergren molestie. Vero at ipsum ipsum est.

Takimata velit at facilisis iusto lorem dolores veniam tempor ut magna nobis in consequat labore enim. Amet vel et. Ipsum elitr diam sadipscing kasd elitr zzril aliquyam amet nonumy nam ut. Et ea dolore. Et dolore diam feugiat wisi vulputate dolore eros magna ut nonumy voluptua. Erat accusam duis. Lorem dolor ut et duis sea justo. Elitr stet eum ad ex tempor vulputate vel ut sit dolor duis ipsum nam invidunt. Illum facilisis sanctus eros lorem justo praesent esse sea consetetur feugiat erat vel invidunt laoreet. Justo esse eos ipsum invidunt gubergren.