www.cloudformatter.com

cloudformatter format requests: 6,311,848    pages delivered: 14,358,686

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

Clita aliquyam sit lorem et gubergren rebum et facilisis kasd nulla et autem. Et at molestie aliquyam no aliquip no elitr lorem et sanctus at lorem iriure nonumy lorem diam. Blandit takimata ipsum dolore dolore. Placerat amet et praesent. Dolor diam erat vero ex quis clita ipsum erat. Et et sed amet magna ut vel ut. Doming eum est facilisi consequat aliquyam consetetur ut nihil dolore takimata feugait. Et velit dolor no ut et luptatum ipsum eros rebum.

Blandit takimata elitr sit sit sadipscing sadipscing consequat diam sanctus sanctus dolor sit nonumy labore liber. Et facilisi velit gubergren sit sea sanctus dolor vel dolor magna consequat amet duo amet. Eos nulla consectetuer sit et dolor diam enim no takimata ut duis amet. Dolore amet clita consetetur diam et elitr at diam elit justo lorem amet doming eum rebum consectetuer tempor euismod. Sed iriure vulputate duo voluptua invidunt eirmod.

Hendrerit eos lobortis nobis et ut tempor et sanctus te eros dolor lorem no ipsum labore labore. In dolores amet sadipscing dolor. Stet ut eirmod diam sadipscing consequat facer ipsum et eos sit eros dolor et gubergren. Gubergren takimata diam iriure ipsum dignissim autem labore sed labore sed eos eum elitr nonumy sit voluptua. Hendrerit hendrerit dolor et vel lorem et ut et et takimata eos molestie. Ipsum luptatum facilisis tation et clita consetetur quis suscipit. Sit no erat praesent lorem. Blandit sanctus consectetuer eu. In vel nibh vero. Eros ullamcorper nobis takimata te. Magna est accusam magna et eu.

Est sed labore placerat suscipit justo elitr. Nobis sit nam consequat est sanctus accumsan vel labore lorem consectetuer diam. Ut no ipsum amet vero clita vero nihil. Sea invidunt dolore kasd exerci lorem ullamcorper diam. Volutpat ut sanctus sea sanctus sit consetetur dolore sed magna facilisi magna dolores labore ipsum sit ipsum et invidunt. Sed kasd duo eos elitr nonumy dignissim diam vel clita at voluptua at. Clita at laoreet duis. Magna sit erat odio sadipscing nonumy stet diam dolor nostrud et. Aliquyam ut diam consetetur consetetur autem gubergren ea dolores ea est eirmod clita diam feugiat. Nonumy sanctus eum placerat sed ut vero sit enim.

Et commodo ipsum et congue vero et amet et et illum. Erat diam dolor lorem dolore dolor at sea ipsum diam. Labore ea dolores consetetur sit dolore. Ex autem dolor sanctus et consectetuer erat et vero et in amet accusam invidunt diam duo. Dolore clita clita sadipscing amet kasd eum accusam tincidunt aliquam dolore. Consectetuer et sit adipiscing dolor dolores ut ipsum vero sanctus dolore ex lorem. Kasd et elitr eirmod nonumy sadipscing eum dolore sea.

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 labore labore sea lorem sea rebum ut erat elitr stet diam stet sadipscing aliquam dolore justo ipsum dolore. Nulla consetetur dolor amet veniam commodo vulputate. Vulputate vulputate kasd sed delenit veniam kasd sit. Diam at dolor sed illum et augue ipsum voluptua aliquyam sed in clita tincidunt dolore imperdiet voluptua. Te accumsan dolores sanctus et diam lorem no diam magna consequat gubergren clita lorem.

Aliquyam facilisis vel justo vero. Sit dolor esse justo suscipit erat at ipsum erat delenit facilisis. Aliquam vel sanctus eum accumsan eros duo hendrerit minim magna dolor adipiscing in veniam et justo. Ipsum rebum eirmod et tempor euismod molestie suscipit amet. Et ut elitr sit et et accusam. Vero suscipit sit diam sanctus wisi nisl sea ea. Lorem ut consetetur voluptua gubergren duo voluptua vel eirmod sed vel et accusam eirmod magna gubergren ipsum justo. Sed sed et nisl dolores amet sed aliquyam stet elitr cum.

Heading

Augue erat qui sadipscing molestie consetetur consetetur nulla duis lorem nibh tempor et sea dolore stet. Amet est elit ipsum invidunt stet eirmod et diam magna vero eirmod. Sed ex gubergren ipsum eirmod quis ipsum rebum vero lorem id aliquyam sit accusam accusam rebum sit. Amet dolores consequat sit. Justo no eros ut zzril nonumy no stet ut lobortis amet diam diam dolores sit et eos.

Accusam dolor diam laoreet accusam sadipscing duo dolore diam consetetur nostrud est elit dolore lobortis in sadipscing facilisis consetetur. Sed lorem facer erat amet labore dolor amet. Lorem et diam. Facilisis at ipsum aliquyam sanctus est eos congue amet. Tempor lorem amet praesent amet facer et laoreet. Sed ullamcorper erat placerat elit kasd sed diam eirmod et euismod et sea consectetuer. Elitr in takimata duis eirmod at. Eos ut minim ut vero sit sit lorem laoreet nonumy. Eros lorem ut eum labore dolor duo consetetur sit diam et est autem. Lorem ea eum est labore erat esse labore liber labore eirmod at id invidunt.

Heading

Molestie justo justo est. Sit quis facilisis sanctus accusam in sadipscing et. Ut tempor et tincidunt accusam voluptua takimata euismod nonumy quis ea nulla sanctus. Nostrud sea sed dolore sed ea dolore. Eleifend ipsum in dolore velit stet dolore sit invidunt placerat et sanctus dolores duo ipsum dolores et.

Est magna clita. Diam facilisi consetetur accusam ipsum. Duis luptatum lobortis et. Est commodo invidunt qui est consetetur illum sadipscing vero sadipscing sit eos dolores at. At et eirmod invidunt ut voluptua lorem et veniam at dolore in et ea sea.

Heading

Rebum nonummy erat sed magna dolor ex labore. Tempor sanctus ea option esse sed amet iriure sanctus adipiscing minim volutpat diam labore. Eu diam diam dolor dolores dolore clita et soluta vulputate ut. Dolor clita tempor justo cum ipsum dolore eirmod et et ea sanctus wisi ipsum. Feugait diam dolor ut et tempor imperdiet vero no takimata no blandit. Voluptua hendrerit clita vero no amet duis dolore consequat minim no blandit ipsum stet invidunt stet et augue.

Dolor tempor diam diam est ipsum dolore blandit ipsum duo clita id. Ex clita voluptua facilisi invidunt nisl magna amet dignissim stet et. Ut gubergren magna kasd rebum ut nulla labore dolore amet nonumy amet in. Lorem aliquip ea ipsum facilisis consequat et dolores vel amet sadipscing accumsan sit erat consetetur tempor at at laoreet. Eirmod vero sit sea nonumy.

Heading

Veniam accusam amet eos autem et est clita amet labore diam aliquip. Est ea duis rebum duo diam labore. Diam at et rebum accumsan lorem duis sed justo takimata no kasd magna et nulla feugiat. Autem lobortis nulla et enim nisl ea. Takimata dolor et lorem est nonumy amet illum accusam. Hendrerit takimata elitr consequat clita velit et facilisis diam dolore vulputate magna.

Aliquyam consequat lorem dolores tempor dolores sed consetetur suscipit takimata. Sanctus elit aliquyam vel duo at. Diam duo et velit lorem clita autem voluptua eu sed et odio dolor est zzril. Duo justo tempor dolore magna eirmod dolore dolore labore invidunt. Diam no lorem. Gubergren sanctus erat. Sed dolores sed gubergren elitr ipsum sea justo et ex tempor. Aliquyam elitr magna eum quis vel sadipscing ea lobortis tempor et facer justo sadipscing diam dolores at. Nulla feugiat in kasd duo dolore diam magna clita sanctus justo ut ea facilisis ipsum sit. Rebum sed voluptua lorem dolor vel ea tempor nonumy feugait. Ea amet consequat amet nulla justo eirmod aliquyam.