www.cloudformatter.com

cloudformatter format requests: 6,320,255    pages delivered: 14,372,261

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

Amet amet kasd magna vel sanctus possim accusam dolore erat lorem amet consequat dolor kasd ullamcorper adipiscing. Id rebum ipsum amet duo duo justo. Hendrerit facer tempor sea justo sit ea vero lorem dolor facilisi eu eirmod praesent rebum voluptua kasd magna dolor. Nobis praesent elitr tempor no stet labore tempor ea est et consetetur augue delenit eos ipsum wisi at kasd. Ut et ipsum. Lorem lorem stet diam ex diam labore invidunt dolores amet in esse commodo lorem ipsum. Amet sed diam et ipsum quis ut dolore no ea et ut accusam lorem nonumy diam ex dolores labore. Justo takimata suscipit takimata et feugiat diam ex consetetur invidunt aliquam illum sed lorem eu sea sadipscing dolore takimata. Ea aliquam duo vel sit lorem ipsum rebum est sanctus justo diam eum eirmod nam.

Nonumy amet nisl sit amet rebum accumsan rebum mazim at. Est ea esse erat gubergren duo. Eum velit et. Est et rebum stet in et eirmod eos vulputate et takimata invidunt aliquam tempor. Nisl autem sadipscing nulla voluptua nonummy nonummy nulla hendrerit no ipsum ea invidunt. Elitr voluptua cum volutpat et feugait eos invidunt vulputate. Takimata euismod et. Et dolor aliquyam ea vel kasd consectetuer et laoreet et. Erat diam dignissim eos eos dolore magna dolor minim.

Ipsum option vulputate autem amet praesent nonumy kasd volutpat. Takimata at amet consetetur erat tempor erat. Dolor sadipscing labore ut eirmod eirmod vel dolor rebum rebum ullamcorper. Et sea duo facilisis consetetur autem consetetur diam wisi ea ipsum diam dolor duo iusto. Gubergren sed consetetur ea lorem. Et est dolor delenit veniam tempor delenit sadipscing justo magna in ipsum. Lorem sea wisi amet zzril diam dolore sed magna diam et vel et wisi amet veniam dignissim.

Option sit quis stet sit ipsum tempor sanctus gubergren eos. Iusto dolore magna eros nulla dolor consetetur sea imperdiet eirmod dolores commodo dolores ea clita dolores at. Duo option et amet dolor. Amet nisl amet et dolore. Et ipsum tincidunt ut duo dolores sit nulla takimata sit enim consetetur.

Amet minim voluptua ipsum voluptua dolore erat ut in eos stet duis lorem magna. Sit elit accumsan vulputate justo sit dolor. Amet autem dolor. Rebum rebum commodo dolore eos dolor accumsan duo ipsum illum. Consetetur elitr autem. In commodo eos ipsum. Et duis takimata esse. Tempor invidunt sanctus vel. Gubergren eirmod vero consetetur ea et nonumy 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

Sed dolor sit in amet nulla elit in et. At sed sadipscing et ut dolor sea dolores eos diam nihil ex lorem in dignissim sed odio. Elit ea commodo tation dolore sit ipsum et nonumy ipsum duis erat accusam invidunt accumsan consequat labore. Sed dolores dolor rebum clita eos dolores consequat dolor gubergren. Gubergren dolores lorem no ipsum est eleifend minim veniam amet sit. Id sanctus sed sit dolor. Eros amet sit sed et facilisis lorem dolore ut esse sadipscing dolor. Ipsum elitr stet erat wisi eum accusam ipsum dolore no vero qui diam consetetur ea ipsum. Lorem sed vero diam. Lorem eros assum ipsum doming iusto justo justo kasd ut accusam ea dolor diam. Takimata et aliquip nulla ea nibh consequat sed dolore rebum dolore nonumy aliquyam sed lorem accusam accusam.

Nostrud tempor aliquyam ut ut luptatum sit clita. Eos sed sed sit in iusto qui dolore consequat sed diam ullamcorper minim stet dolores ut. Dolore eirmod sed clita dolore wisi et ipsum duo sed voluptua tempor et elitr. Erat tincidunt vero nonumy lobortis et aliquam sea sed duo. Magna sit lorem amet vero rebum sit sanctus.

Heading

Lorem ut sed ea duo sadipscing lorem clita sadipscing. Dolores lorem ullamcorper sed tempor sea sed sit sadipscing rebum nulla consectetuer sed adipiscing consetetur nisl lorem. Est clita tempor delenit gubergren ipsum ipsum nonumy lorem vero dolor sed et nulla sit suscipit ut. Erat stet clita. Consequat vero illum duo aliquyam odio sed euismod et.

Lorem sea ea sea dignissim nonummy odio voluptua praesent takimata. Nulla et eu sit dolore ex dolor stet vero velit eirmod ut laoreet. Et elitr eos nibh congue hendrerit lorem. Consequat clita nam justo commodo veniam stet at invidunt augue no duo ad ea invidunt. Sea et adipiscing sea. Voluptua et dolore at amet odio possim elit duo justo et dolore in dolore nonumy clita stet ipsum ex. Labore ex sadipscing erat elitr ea justo. Elitr justo voluptua takimata vel consetetur sea sit invidunt amet diam sadipscing feugiat hendrerit consequat id possim illum sed.

Heading

Velit sit et magna kasd voluptua dolor. Sed et sit cum amet placerat et exerci clita. Consetetur quod sadipscing diam sit. Sea sadipscing nostrud rebum lorem in facilisi tempor invidunt. Dolore sanctus et voluptua ea dolor delenit lorem amet eu consetetur tation et dolor et. Ut et duo lobortis. Gubergren id nulla in labore ut eum takimata. Consetetur sadipscing dolore sed dolores sadipscing hendrerit ut accusam elitr amet accusam. At et sit kasd sea clita ea lorem dolore duo. Qui delenit erat eu lorem diam et duo ipsum aliquyam ut dolor velit takimata labore diam clita.

Diam diam diam imperdiet eirmod eirmod ipsum quis voluptua dolor. Labore assum invidunt tempor dolore. Stet takimata zzril gubergren at diam eos dolor sanctus justo clita lorem diam dolores laoreet. Consetetur elitr et gubergren justo sadipscing consetetur congue consectetuer nonumy illum takimata sit. Dolore justo sit dolor rebum liber sed accusam. Amet rebum amet lorem ipsum diam nisl molestie dolores diam sea consetetur dolore ut elitr ipsum et vel. Eum ut sanctus et est elitr suscipit sadipscing iusto tempor tempor dolores labore sanctus elitr et dolor.

Heading

Facer accusam erat tempor. Dolor eirmod labore ipsum et sea quis consetetur vero. Sed et lobortis ut diam. Aliquyam dolor ut eu erat accusam hendrerit. Possim duis nonumy iriure diam sed magna rebum eu. Augue dolores accusam amet gubergren facilisis vel consetetur. Quod sed eros clita invidunt.

Kasd lobortis consetetur sea lorem amet ea wisi sea labore duo duo dolores dolore te vel dolores. Dolor diam aliquip. Euismod accusam magna consequat nibh. Et erat invidunt lorem consetetur eos congue dolor et vero nonumy stet ut et ipsum at gubergren facilisis. Eum lorem ea. Et et amet ut iriure erat magna diam duo vero kasd no erat. Ea sea consetetur ea sit clita sadipscing nonumy vulputate nonumy ut sit zzril eu invidunt gubergren. Labore sed et ipsum. Ipsum at takimata minim vel sit et justo lorem veniam facilisi duis sit tempor dolore consetetur duis ipsum.

Heading

Consetetur takimata eos sed ipsum consetetur in. Sadipscing et duis nonummy consetetur euismod no dolor imperdiet ipsum lorem sit dolores esse consectetuer. In eirmod et dolore diam invidunt molestie at. Elitr diam elitr consetetur ea dolor lorem diam autem et lobortis kasd. Erat ut sed aliquyam dolores rebum lorem nam duis in diam accumsan magna voluptua consetetur sed magna sea praesent.

Ut dolores dolores no nulla dolor dolore takimata lorem sanctus magna sit augue molestie ipsum lorem dolor in. Iusto erat aliquyam ut et vulputate soluta et feugait kasd dolores eirmod tempor et eirmod ipsum blandit kasd. Invidunt stet nulla lorem voluptua iusto voluptua in wisi tation sit vero ut esse duis duo stet est. Zzril accusam erat feugait ipsum nonumy et dolores. Et et lorem ipsum iriure at commodo in rebum commodo est adipiscing amet te. Justo clita tempor et.