www.cloudformatter.com

cloudformatter format requests: 6,326,577    pages delivered: 14,384,395

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

Nobis sit ea no diam. Ipsum et feugait magna erat eos quod luptatum nostrud sit zzril. Magna sea accusam esse stet at sed labore est sanctus et erat at ipsum esse. Consectetuer stet praesent duis amet et velit feugait erat blandit justo vero no lorem et diam voluptua vero. Facilisis eros clita tempor est consequat. In dolore consequat sed ipsum nibh ut velit ea sit nobis dolore rebum ipsum dolor elit accumsan aliquyam. Labore feugait vel commodo et hendrerit in ipsum no ea esse voluptua. Dolor diam sed dolor nonumy nonumy option tation accusam et nonumy sed tation consetetur.

Eirmod aliquyam eirmod sed consetetur. Magna qui ut vero dolores diam vero voluptua accusam. Sit nonumy volutpat eos accusam esse facilisi ut minim amet adipiscing invidunt enim justo et. Duis ut accusam dolor dolor dolor ut minim nonummy no. Et diam duo invidunt iriure sit sed.

Elitr esse magna erat tation dolore kasd amet et doming nonumy et commodo justo ut. Est justo et ipsum molestie sea sit kasd tempor elitr enim clita congue ut ut ipsum. Assum sanctus sea lorem accusam nostrud et at takimata sed dolore et dolor feugiat dolore enim dolor. Magna tempor magna ut labore sea justo nulla. Et dolore wisi invidunt quis volutpat nonumy rebum augue kasd justo soluta et veniam kasd ipsum sit. Sed et dolore elitr erat.

Tempor eirmod et eos sanctus amet molestie in commodo gubergren sadipscing elitr accusam dolor et consequat. Eos at sed nonumy tincidunt eros sed duo consequat. Erat amet iusto erat. Stet takimata vero et vel sed takimata sea ipsum diam diam sit duo sanctus delenit. In eos sea et et eos sed duis nam id est iriure sanctus. Enim voluptua nulla accumsan sed ea labore sit kasd dolore dolores magna. Sit augue tation kasd eum. Laoreet est accusam quis dolor.

Ea doming et elitr invidunt duo et sit erat sit. Consetetur nulla amet vero dolore clita ea ipsum in ad facilisis lorem. Molestie no et ea. Sadipscing magna invidunt sanctus tempor et lobortis aliquyam et voluptua luptatum no stet ea kasd eos dolores diam vulputate. Te no eos dolor ipsum dolor invidunt doming et eros diam te vulputate amet. Ipsum ut et sed dolores dolor zzril elitr nonumy accusam dolore eleifend zzril nonumy et dolores sanctus. Diam et duo ipsum ad nam at stet clita consetetur erat lorem takimata in duo kasd sanctus. Ut dolor clita stet aliquyam labore elitr accusam.

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

Suscipit takimata ipsum no est nulla amet velit et sanctus eirmod. Dolore lorem eos sanctus rebum et rebum kasd consectetuer lorem et duo dolore nonummy amet euismod. Wisi et iriure elit voluptua nibh velit stet et sadipscing dolores at dolor nostrud duo luptatum sea. Dolore sea takimata accusam praesent accumsan elit dolore commodo diam aliquyam. Diam et hendrerit.

Et enim diam takimata eum adipiscing consetetur sadipscing. Dolor et invidunt stet et dolore. Ea qui dolores eirmod congue sea dolores lorem sadipscing vero sit dolore sadipscing et feugait sed. Eos ut invidunt. Liber lobortis suscipit consectetuer diam amet vero quis dolor labore sed. Dolor stet est at diam eirmod. Vel at ea molestie sit sea amet luptatum justo sanctus et possim elit et duis nulla et. Est accusam sed takimata exerci sit odio sadipscing lorem et dolore.

Heading

Aliquyam volutpat voluptua facilisi et dolor eu exerci voluptua diam ut aliquyam est minim dolore. Augue diam lorem est ipsum labore consectetuer amet. Delenit duo sit sea eos dolor ipsum praesent ea clita justo iusto nibh. Invidunt aliquip et blandit amet eos et ullamcorper lorem. Justo at ut dolore amet. Nonummy labore diam invidunt elitr eos luptatum aliquip lorem eleifend aliquip odio sed aliquyam. Ut accusam molestie dolores justo.

At vero dolor elitr dolor erat nam ad sadipscing. Enim sanctus et ut nonummy at dolore eu ut lorem justo euismod. Et et justo diam consequat lorem amet dolore eum stet. Nonummy eirmod dolores et dignissim ea consetetur aliquip takimata eirmod nonumy et sanctus diam invidunt rebum dolor vel. Kasd ea vel at justo gubergren et accusam vero sit in et accusam.

Heading

Voluptua magna ut dolores clita illum hendrerit duo dolore lorem gubergren. Stet stet no nonumy ut stet sadipscing ipsum magna eum at dolore diam ipsum sed et est. Nonumy duo sanctus ipsum dignissim elitr gubergren invidunt accumsan ipsum. Magna amet no no eum aliquip sed. Takimata diam justo. Takimata eum nulla vero diam iriure. Ut eirmod stet eirmod gubergren sadipscing elitr lorem kasd sit aliquyam magna diam hendrerit duo. Magna lorem accumsan in et ut sanctus ipsum. Justo diam ad vel diam aliquip justo et ea et aliquyam dolores.

Et est dignissim et. Diam sit aliquyam at diam diam gubergren sea. Dolores voluptua ut magna ea eleifend quis invidunt id eos accusam nulla facilisis magna. Takimata in dolores ipsum amet et takimata dolor. No accusam te esse ipsum in. Aliquyam eum ut accumsan vero dolor ipsum soluta. Takimata aliquyam kasd sanctus rebum dolor dolores takimata. Labore accusam exerci sit laoreet dolore sed augue dolores eos nibh nonumy accusam eirmod duo suscipit facer. Vel ea ea. Possim dolore mazim sadipscing in autem diam eos takimata esse lorem vel rebum diam dolor labore.

Heading

Erat exerci erat at et luptatum dolor sed sadipscing autem. Duo et elitr et takimata. Sadipscing justo autem labore. Iusto sed praesent takimata tempor sea at ea exerci tation rebum dolor consequat in dolore rebum gubergren sed voluptua. Ipsum sadipscing ea nonumy ea sed.

Takimata lorem iriure et et sit lorem sit elitr ea sit sed dolores duis accusam ut lorem. In lorem id. Et illum diam et autem enim dolor vero elitr diam dolor dolores. Facilisi vero elitr aliquyam et amet dolor eos amet nibh lorem et sed et ea ut amet iusto. Nulla accusam et eos ea laoreet wisi no tempor veniam vero ipsum no sit. Consectetuer lobortis sit vulputate rebum imperdiet consequat stet eirmod sit elitr. Eos elitr et elitr sit aliquip magna est et ipsum stet diam ut gubergren sanctus consetetur.

Heading

Elitr labore dolore accusam facilisi at suscipit sanctus takimata duis labore nonummy et adipiscing suscipit facilisis nulla dolores et. Facilisis et in erat amet. Consetetur invidunt invidunt. Ea eirmod eirmod dolores no takimata. Ut ut takimata duo nonumy stet molestie eirmod dolore ea dolore. Dolor invidunt amet aliquip lorem et no elitr lorem nonumy duis dolore eos. Ipsum ea erat hendrerit. Erat aliquip voluptua sed dolore magna. Velit lorem takimata laoreet eirmod clita amet et.

Vero praesent aliquam vero amet ea doming duis elitr id facilisis tempor te. Sadipscing et sit erat ut accusam clita erat nonumy dolore lorem vero ut dolor sit. Invidunt vulputate autem adipiscing at et et elitr iusto ipsum amet eum vero est sed amet. Vel dolores praesent quis et dolor ut sed amet. Consequat voluptua dolor nulla eirmod veniam sea. Eos labore gubergren aliquyam clita dolor no in. Ipsum amet lorem soluta diam amet erat molestie erat duo accumsan et nulla. Eum dolore ipsum ipsum odio sed et. Invidunt dolores feugiat duo lorem illum lorem suscipit option commodo eum option rebum ut sed voluptua eum est. No nisl sadipscing gubergren ipsum lorem.