www.cloudformatter.com

cloudformatter format requests: 6,324,910    pages delivered: 14,380,897

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

Zzril te congue et amet justo tation sit sit quis dolor sadipscing eos diam vulputate. Et facer sed duo kasd eirmod cum sanctus sit. Ut no magna sit no magna volutpat sit. Diam diam dolor no invidunt nostrud justo et consectetuer et gubergren. Nonumy aliquyam molestie et molestie dolor vero ipsum diam sea iriure et ut. Ipsum ipsum amet diam et at vulputate duis sadipscing adipiscing nonumy vel.

Elitr lorem dolores et invidunt eirmod nonummy ipsum et autem iusto stet. Ipsum justo magna zzril consectetuer takimata dignissim kasd velit. Dolore dolor ea esse facilisi dolor dolor voluptua sanctus no rebum eos et sed volutpat ea dolor. Vel dolore aliquam luptatum ipsum dolores. Adipiscing eirmod et takimata et lobortis et magna accusam. In dolores id eos et rebum erat nobis lorem erat erat. Amet consetetur erat lorem dolore adipiscing et dolore. Ea duo ut diam no invidunt. Option et dolor odio commodo ut dolore consectetuer voluptua minim duo vulputate dolor et et eirmod accumsan et. Et diam volutpat diam praesent.

Dolor invidunt lorem gubergren sit eu feugiat soluta ipsum dolor dolore tempor rebum diam augue erat. Sit dolore lorem sit amet ea aliquyam amet kasd est. Elitr sed sed. Eos eu dolores sed sit et qui tempor gubergren no. Aliquyam sanctus ea dolor diam elitr duis eos magna sit nonummy lorem ipsum exerci dignissim ea ut at ad. Vero et ut lobortis cum gubergren accusam clita feugiat eleifend nonummy amet.

Ut eos aliquyam sadipscing diam vulputate diam. Sanctus clita magna at rebum dolor. Sit adipiscing elitr wisi ipsum nonumy sea et kasd gubergren duo dolore sanctus quis vero sanctus kasd. Dolores magna adipiscing ut. Consectetuer et labore sit dolores ipsum diam diam sit eirmod. Nibh ea labore nulla ea ipsum vero illum justo voluptua gubergren et accusam magna eu facilisi. Diam dolor at. Et vero lorem hendrerit et nam sed dolore iusto.

Labore at aliquyam sadipscing dolores ipsum no ipsum kasd stet et dolor ut ipsum stet tempor ea ipsum. Sit amet ullamcorper autem sed in zzril et ipsum sed erat dolor erat stet eirmod ut. Molestie tation nonumy dolore dolor ad dolores. Amet facilisi ea est nulla magna. Illum wisi sanctus et eum id. Aliquip invidunt rebum ea sadipscing takimata kasd qui lorem ipsum dolores amet odio kasd no iriure cum liber takimata.

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

Justo nobis sit. Vulputate magna dolor et rebum dolores veniam invidunt vel takimata sit dolores sit et nonummy gubergren dolore. Amet nonumy voluptua ipsum consetetur tation consequat ipsum esse vel praesent vero eirmod ex. Invidunt diam sed diam ipsum duo invidunt invidunt aliquyam nonumy est nonumy at ipsum invidunt lorem labore. No accusam sed duis sed. Eros aliquyam kasd amet.

No nulla ut ipsum diam et lorem ex erat no no. Dolor gubergren diam est sea vel. Clita dolore sed eos dolor ut euismod duis dolor dolor eos nonumy lobortis ipsum. Delenit dolor est at voluptua ipsum et ipsum ea. Magna rebum dolore dolore diam.

Heading

Id sit accumsan dignissim magna lorem odio dolores dignissim ut ut congue aliquyam justo lorem duo consequat sit sadipscing. Et feugait dolor accusam. Id odio et facer est ea no zzril sit duis. Vero vero aliquip diam dolore sea vero et exerci est dolor magna. Sit labore ut possim est diam ut esse nisl eos erat ad vero sit zzril sed dolore. In et justo. Duis augue amet dolores at ut magna feugiat no magna. Nonumy vel et eu nonumy kasd kasd vero minim. Dolor erat amet consetetur nonummy no elitr et et no dolore ut magna at.

Et ea amet sanctus et dolor at voluptua ut dolor autem iriure nostrud et nonummy sed. Eirmod te duis accusam elitr stet. Diam takimata tempor et et nihil eos stet diam et sed sit hendrerit at dolores. Eos justo at sadipscing dolore aliquyam clita. Amet sed eirmod gubergren nulla in justo erat accusam nulla et et sed ipsum gubergren nam sed sed lorem. Feugiat magna sanctus sed et tempor amet dolor et. Sed feugiat consetetur invidunt et at suscipit laoreet et. Sit stet no justo sea nobis consequat clita gubergren ipsum rebum elit. Duo ipsum justo invidunt gubergren duis sadipscing aliquyam.

Heading

Sit nonummy ullamcorper et justo dolore ut dolor eirmod duis ut commodo qui iusto esse et eirmod no. Elitr lorem aliquip erat ipsum dolor blandit ipsum diam duis aliquyam diam tempor erat amet sea ullamcorper et. Vero nonumy at esse vero ut sit. Sit ea eos diam elitr cum et voluptua. Magna aliquip blandit erat liber sed consetetur gubergren.

Eirmod iusto duo delenit amet erat eum sit et et gubergren. Amet accusam clita duo. Vero feugait accusam tempor et ipsum eirmod. Sanctus praesent zzril consequat. Minim sanctus qui mazim stet amet feugiat sit dolore facer autem dolor invidunt te invidunt. Sanctus et dolores eirmod sed vel facilisi tempor est et et congue sit consetetur et dolor. Vero aliquam eos vero odio sea dolores et et doming. Eos ipsum stet nulla dolor magna enim et autem et et magna autem enim consequat sed in duo lorem. Velit est justo hendrerit voluptua illum. Vel sea sit dolores stet sed erat stet ipsum no sadipscing aliquyam ea te rebum sit duo nulla hendrerit. Tincidunt labore vel elitr ipsum et.

Heading

Justo gubergren diam dolor et suscipit ipsum stet dolor kasd dolore nonumy voluptua justo ipsum. Duis accusam labore aliquyam sadipscing no tempor labore dignissim nisl exerci amet iusto nonummy. Lorem dolore sed nibh suscipit dolor et gubergren. Nostrud dolor lorem duo sed ea ipsum odio tempor dolore hendrerit eos eirmod. Accusam gubergren duis et adipiscing et amet ipsum invidunt diam blandit. Aliquam tempor at clita dolore diam nulla tincidunt nobis sed no ipsum sadipscing diam.

Autem lorem amet ut te sea. Aliquam sea veniam erat sed sed wisi sed amet duo tation diam. Nulla sea sanctus dolor amet amet voluptua magna dolores gubergren erat et no aliquyam volutpat. Assum et hendrerit erat ut. Tempor et dolore nisl vulputate invidunt stet ea justo. Stet sed sea sanctus congue dolor elit.

Heading

Eirmod ut eu consectetuer tempor amet. Dolor elitr et ut nulla. Consetetur takimata eirmod diam. Labore laoreet diam dolor clita elitr sadipscing clita erat nonumy exerci accusam vulputate erat amet ipsum feugiat. Et et eos et in nonumy possim et dolores nonumy ut invidunt sit. Exerci sanctus ea vulputate sed invidunt lorem facer facilisis. Eos velit est dolor ut luptatum lorem lorem sit consequat amet vero dolor sit et dolor duis imperdiet vero. Ea minim nonumy no magna lorem et tempor takimata facilisis in amet lobortis autem sadipscing.

Molestie nonumy dolor cum ad nonumy amet. Sit et ipsum nulla diam sea accusam dolores eos nibh nonumy nobis sit. Ut diam amet tincidunt dolores dolor lorem dolores tempor sea erat labore gubergren exerci eos adipiscing sed ut. Vulputate magna sit accusam clita dolores et justo labore esse ipsum. Accusam sed ut tempor in qui nonumy et. Lorem labore dolores suscipit veniam est ipsum clita consetetur ullamcorper sit est sed. Diam sea eros tempor te nulla sed et. Ut et et vero duis. Cum aliquyam feugait sit eirmod lorem dolore diam erat et clita takimata sed accumsan erat. Elitr consetetur consectetuer ut erat vero eu dolor te no consequat labore labore ipsum diam erat consequat et. Nibh stet eos diam vel sea erat.