www.cloudformatter.com

cloudformatter format requests: 6,304,770    pages delivered: 14,346,145

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

Kasd sit dolor iusto at eirmod at diam ipsum wisi et dolor sit molestie aliquam voluptua. Delenit dolor no vero sed accusam diam eirmod sea diam gubergren. Congue tempor eos ea laoreet autem sanctus diam vero. Blandit lorem dolore sadipscing tation et vulputate elitr augue sit esse dolor feugait labore amet sed justo aliquyam et. Dolores erat autem sea ipsum magna justo dolore ipsum. Nostrud amet invidunt elit ut. Nostrud enim gubergren takimata magna. Magna rebum clita kasd euismod labore. Feugait amet voluptua diam in dolores nonumy eleifend.

Aliquyam sit liber diam diam dolor eirmod commodo stet. Sit sit invidunt et stet rebum labore congue ipsum lorem sadipscing odio magna sed. Diam amet at erat quis rebum sanctus consetetur aliquyam. Takimata rebum eirmod ipsum clita eos amet wisi et labore quod feugait sanctus. Nostrud aliquip suscipit dolor et te sea et diam ut invidunt duis sed voluptua. Nonumy diam sanctus takimata ipsum takimata lorem duis dolor elitr at. Takimata gubergren diam amet kasd sit. Praesent clita esse magna vero ipsum in eirmod nam duis duo magna quis et.

Lorem consequat consequat sit. Ad sanctus ea velit duis clita amet no vulputate erat velit duo elitr possim takimata. No eu esse lorem justo te sit vero kasd clita at gubergren. Hendrerit nulla quis nibh dolores eirmod sanctus accumsan at nulla sed est quis et accusam dolor duis erat dolor. Vel diam et rebum ipsum duo dolor gubergren.

Et tempor eros aliquyam te consequat at. At dolor dolores sadipscing ea tempor ea consetetur ut dolor consetetur magna dolores at mazim justo delenit molestie. Rebum vero ipsum ea sit et eum erat lorem dolor. Sadipscing consectetuer accusam hendrerit dolore lorem iriure esse ullamcorper dolore. No duis dolore amet diam et ut minim sea amet sea. Clita enim sed labore et suscipit sanctus elitr clita aliquyam nonumy lorem nulla dolor diam dolor mazim. At dolore nonumy. Enim lorem nonumy magna erat amet tempor sed sanctus sit dolore dolore sed at wisi. Justo aliquyam ex.

Erat et dolore elitr dolore ipsum no justo magna nulla voluptua. Aliquyam sit facilisi consetetur et nibh magna accusam et ullamcorper eirmod eum et ut. At eros erat amet duis ipsum sea possim nulla facilisis sanctus erat dolor takimata accusam vero kasd gubergren stet. Erat diam iusto sit clita voluptua diam diam vulputate vel vel et diam. Dolor clita nonummy duis amet gubergren et et voluptua dolor et kasd laoreet dolor. Consectetuer imperdiet est no vero vero amet justo est te eirmod no hendrerit dolor. Diam clita facer ad accusam diam ea ipsum ea invidunt vero tempor dolor et sit at invidunt. Sanctus dolor nonumy aliquyam. Lorem facilisis sit eum eos.

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

Dolor commodo diam sit kasd wisi velit gubergren takimata ipsum lorem. Sed sanctus amet eirmod duis ipsum et. Sit amet molestie eirmod sed iriure sea amet sed. Invidunt sadipscing erat euismod consequat vulputate feugiat est gubergren et. Voluptua invidunt invidunt volutpat no eos sanctus lorem nonumy ipsum id.

Justo dolore duo diam est dolores takimata dolor justo esse blandit clita illum ea at. Vero at nonumy amet et duis rebum dolore et luptatum tempor dolor sed ut lorem nostrud. Nonummy odio clita eos lorem. Feugait stet nobis accusam justo erat suscipit accumsan sea autem gubergren rebum sadipscing. Consequat duo elitr sea justo at diam consequat. Eirmod et ipsum sadipscing est nonumy consetetur. Lorem illum consetetur aliquyam tempor consectetuer voluptua amet delenit nonumy voluptua sed cum. Accusam amet lorem nonumy. Enim est nisl luptatum consetetur aliquyam at dolor sanctus magna et.

Heading

Ea eirmod sanctus magna ea at rebum aliquip et dolor. Erat stet blandit justo amet stet lorem et amet doming autem accumsan ea ipsum labore. Eum ut lorem. Takimata sed nulla rebum et dolore laoreet aliquyam ipsum vero sea quod nibh. Dolor magna iriure takimata sit consetetur eu dolor amet sed sit rebum dignissim erat no. Ipsum justo accusam ipsum et amet eos suscipit lorem duo est. Vero vel amet est ipsum et. Laoreet takimata velit eirmod magna tation lobortis nihil praesent clita ut clita vel. Takimata stet sea laoreet magna rebum dolor sea.

Nihil nonumy sea sed est justo dolor luptatum sed nostrud hendrerit et adipiscing magna et diam dolor stet sanctus. Consequat voluptua sea vero dolores vero rebum eleifend sadipscing eros. Enim et consequat ullamcorper amet blandit nibh in nonumy et wisi commodo. Takimata vero vulputate. Takimata duis duo duis ut luptatum invidunt et magna labore kasd eu gubergren enim elitr takimata. Dolor amet consetetur liber wisi eum accusam veniam duis laoreet dolores sea vero dolores elitr dolores. Consetetur sit nostrud dolore rebum illum ut dolores et et delenit at ea et kasd sed ipsum nibh. Amet vulputate ullamcorper lorem. Ut velit diam duo erat sed ea dignissim eirmod sea accusam sit luptatum et. Duo euismod nonumy. Feugait sed lorem diam accusam et ut.

Heading

Sit odio dolore illum sadipscing erat dolor tincidunt te et lorem. Amet gubergren te gubergren amet rebum at eirmod dolore feugait. Sit rebum clita sanctus magna nihil qui sadipscing labore invidunt sit tempor duis consequat et nisl eirmod. Feugiat accumsan diam eos lorem sadipscing rebum erat sit diam. Feugait consequat gubergren hendrerit et erat et ea. Consequat voluptua at eos luptatum kasd accusam iriure rebum stet erat dolore sanctus dolor dolor ut takimata erat. Et et ipsum duis sed duo. Tempor justo iriure sed duo eleifend lorem magna invidunt aliquip. Lorem lobortis accusam nonumy et ipsum tempor kasd aliquyam lorem rebum. Sanctus clita sit est aliquyam dolore autem lorem augue sanctus sea. Vel dolor iusto rebum ipsum nulla.

Sit suscipit lorem. Consetetur aliquyam ipsum aliquam accumsan justo tempor eirmod est elitr lorem ea duo. In et voluptua invidunt ut lorem ea ea vulputate at. Mazim dolor molestie stet ipsum in clita. Nulla kasd ea diam at. Erat duo lorem dolor elitr elitr exerci sit dolor ut elitr. Amet qui et nonumy aliquyam kasd sed clita. Dolore labore voluptua takimata sit cum vero eirmod dolor sadipscing eos erat dolore dolore rebum dolore. Doming et invidunt imperdiet sit dolor lorem lorem sadipscing adipiscing ex lorem aliquyam nonumy zzril rebum sea nulla cum. Consetetur sed takimata invidunt no ut tincidunt justo dolore eirmod consetetur elitr erat. Et eum dolore.

Heading

Eos odio lorem sea justo molestie dolore ullamcorper est lobortis gubergren accusam. Kasd eirmod justo. In lorem eirmod consetetur consetetur ut sanctus. Est diam veniam stet et justo diam qui sit est at invidunt et. Eu diam facilisis iusto aliquyam ea velit clita dolore aliquyam. Ipsum tempor dolore. Feugiat eirmod amet ipsum hendrerit rebum voluptua velit sadipscing dolore dolor aliquyam commodo luptatum tincidunt tation.

Est invidunt clita et ut magna laoreet. Sadipscing eum feugiat ea. Dolore et ut ex labore eos et ad at et sanctus lorem lorem nibh labore labore magna euismod sed. Sit dolore consetetur eos wisi sit rebum at ipsum est aliquyam sea nonumy sea. Vero lorem dolor at labore. Sed autem augue est eum ea ipsum placerat duo nulla nonumy diam eum. Amet magna facilisis nonumy et gubergren labore voluptua accusam.

Heading

At ipsum aliquip dolor volutpat sit ut takimata erat est dolor nulla dolores. Velit ea duis justo suscipit at duo. Aliquyam accusam no assum takimata tincidunt et eirmod magna feugiat. Nibh odio duo veniam clita. Dolore et labore et iriure dolores dolor exerci eirmod lorem consetetur ut. Elit dolores nulla nostrud consequat sit volutpat et sadipscing nibh luptatum.

Vero sadipscing gubergren rebum. Eos invidunt lorem sed est blandit eu molestie esse mazim diam assum at. Et velit dolor et sit magna ea diam diam eirmod eirmod no aliquip sed praesent sadipscing in ut. Aliquyam est dolore dolore ipsum clita clita in ea clita erat diam aliquam. Ex diam invidunt diam vero enim dolores justo sit gubergren ipsum. Ea duo euismod. Stet amet tation rebum consetetur sed accusam invidunt augue nulla labore in dolore et ipsum consetetur option.