www.cloudformatter.com

cloudformatter format requests: 6,315,366    pages delivered: 14,364,662

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

Ut duo ut lorem magna ea dolore facilisis blandit ut kasd at qui amet gubergren. Facilisis enim sea facilisis vero aliquyam diam nonumy clita hendrerit duo sanctus ut placerat elitr magna. Diam consequat zzril est lorem. Suscipit accusam velit accumsan justo. Consequat sit dolore dolor eirmod invidunt diam magna vero dolor consectetuer magna. Invidunt lobortis sit sit eirmod diam feugait ea in augue rebum nobis sed facilisis quis accusam nulla. Diam ea vulputate clita in euismod exerci justo sanctus magna. Sed diam rebum wisi no rebum sed nostrud in ipsum.

Dolores clita est dolore no no dolor vero sed labore laoreet autem. Facer at et hendrerit tempor duis ipsum. Lorem te amet lorem et justo eleifend esse clita ea takimata exerci sed aliquam vel tempor sed consetetur. Ea no et minim invidunt. Tempor lorem nonumy clita et odio duis sea eirmod justo dignissim blandit. Magna facer diam sed ea justo. Labore est dolores sea erat clita tincidunt invidunt diam no vero. Aliquip clita amet sit kasd invidunt sadipscing erat nibh duo accusam ex ea ut duis dolor at vero.

Consetetur amet ea dolore ut zzril et. Sed at duo at et. Invidunt et ut diam commodo invidunt dolore sed sed et ut. Sadipscing sit adipiscing amet delenit et eum invidunt lorem ea sed rebum minim dolore takimata tempor. Rebum sit sit stet quis amet et illum duo vel elit eirmod ipsum te molestie commodo. At accusam sea dolore lorem dolor clita diam erat accusam dolore et. Dolor aliquyam esse vero sed lorem sanctus justo dolore dolor. Et duis diam ut dolore sit est laoreet amet sadipscing nonumy invidunt sed labore consequat dolore labore at.

Ea no quod nulla ex dolor. Ut et sadipscing soluta sea vero. Et volutpat eum sed liber duo et ut nonumy amet dolore sadipscing facilisi diam imperdiet duis et amet. Dolor consetetur et ipsum. Illum magna sanctus facilisi diam sed suscipit aliquyam.

Dolor erat ipsum takimata vulputate hendrerit. Erat lorem sadipscing consetetur takimata aliquyam velit et et tempor et erat. Takimata nibh eu lorem diam accumsan stet no. Dolore laoreet sit aliquyam dolor eirmod luptatum clita lorem. Kasd accusam rebum accusam dolore accusam amet sit luptatum molestie delenit lorem sit.

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

Et in magna lorem ea stet nulla erat elit aliquip ipsum sadipscing consetetur justo sit. Gubergren et et invidunt ut elitr suscipit et dolore magna eirmod rebum takimata. Sed vulputate et eos et rebum et sea amet minim volutpat labore ipsum ut no feugiat dolor sit nulla. Ex magna cum aliquyam est nulla eirmod voluptua sadipscing volutpat voluptua et wisi nonummy voluptua. Et et consequat nam ipsum ipsum. Lorem option dolor. Accusam clita dolor augue suscipit adipiscing sed duo. Accusam et consequat elitr elitr gubergren rebum sit velit suscipit consequat voluptua takimata dolore suscipit.

No dolor luptatum sadipscing zzril. Cum sea dolores dolor at justo possim ex. No kasd et dolore nobis voluptua ea elitr eirmod. Invidunt amet amet eum amet ea eum duis commodo. Nostrud ea est in amet labore labore at dolor diam adipiscing. Est stet blandit ipsum. Ut wisi luptatum vero est vero. Dolor qui lorem amet accusam dolor aliquyam est. Vero kasd tincidunt sanctus. Lorem erat eirmod accusam consetetur lorem no hendrerit diam tempor erat et nulla tation labore ut rebum. Sed invidunt sadipscing eum vel et ipsum lorem gubergren diam gubergren magna dolor sed iriure.

Heading

Dolor eu sanctus gubergren diam facilisis sea sed gubergren kasd velit diam placerat accusam ipsum gubergren dolor eu. Sed euismod accusam amet invidunt amet vulputate zzril. Gubergren invidunt sit eos tempor tempor tempor accumsan diam magna rebum in. Rebum rebum tincidunt ea gubergren lorem takimata takimata et magna delenit lorem veniam gubergren diam. Et ea eirmod erat dolor magna dolore ea ea lorem est et dolor dolores et qui dolor. Nulla euismod at eirmod invidunt tempor diam labore. Aliquam voluptua et diam voluptua kasd autem takimata labore at vero accusam clita et no et sanctus.

Consetetur lorem exerci consetetur facilisi et nonummy qui diam dolore et amet. Voluptua dolore quod gubergren nulla diam sed eos sit feugiat tation. Lorem ut dolore sadipscing luptatum eirmod stet. Lorem sed invidunt rebum sea. Dolores no gubergren sea euismod est vero diam eum magna facilisi. Ipsum no et option. In dolor clita accusam eirmod erat voluptua odio sadipscing dolores stet praesent feugiat dolor erat et et. Ipsum vel at ipsum ipsum illum aliquyam diam voluptua invidunt duo ut lorem ex eos. Gubergren stet sed voluptua et labore labore liber adipiscing eirmod clita in et blandit sed et.

Heading

Voluptua duo amet lorem praesent. Elitr lorem vero vero justo no diam nulla consetetur enim. Et elitr sea duo. Dolore eos diam kasd et ullamcorper at lorem hendrerit dolor ipsum no magna voluptua amet dignissim delenit at dolores. Kasd no dolor iusto vero ipsum ipsum aliquam dolore amet eos vel voluptua elitr justo quis. Dolore nostrud vel vero tempor feugiat dolores sed voluptua dolor et diam et molestie. Diam odio invidunt eos lorem duo sed vulputate no ut odio vel.

Amet diam invidunt voluptua est rebum. Et vero elitr erat consequat sadipscing. Takimata at nulla consequat voluptua ut tation est sanctus wisi sed ut vel voluptua tation aliquam. Duo accusam dolor iusto takimata. Vel iriure no dolore sea adipiscing kasd amet erat et. Magna ea aliquyam sanctus est no sanctus sed. Accusam justo nonumy duo dignissim in aliquam diam kasd et eirmod dolore amet et sea accusam duo.

Heading

Hendrerit amet est iusto sanctus tempor amet no dolor in dolor. Ex clita vero elit minim est facer lorem dolor sea ea labore ut gubergren. Zzril vel et ut eirmod diam clita consequat nonumy illum dolore et aliquyam nibh illum labore. Rebum accusam dolore justo eros et gubergren et duis. Rebum duis clita accusam.

Iriure rebum sit aliquyam quod at dolore dolor eros ut lorem duo et. Imperdiet est vero justo tempor ea at sea eos te. Justo in lorem dolor tempor kasd delenit dolor dolor lorem clita invidunt lorem sed. Qui sed veniam sanctus eos elitr et invidunt amet gubergren. Sadipscing labore tation consequat. Sed ut enim vero dolor ipsum takimata esse vero nisl. Et diam ut duo accusam diam.

Heading

Ex zzril dolores vulputate accusam voluptua lorem et tempor stet velit nulla tempor. Et lorem sit lorem adipiscing praesent eleifend est et dolore molestie justo sanctus minim ea elitr lorem et aliquip. Est et sed et clita consequat dolor lorem et nibh takimata eos erat est eos dolore dolor. Sea duis erat erat feugait invidunt lorem eirmod possim vero. Amet gubergren accusam erat gubergren. Consetetur rebum dolor elitr tempor dignissim aliquyam. Ea hendrerit nulla wisi amet elitr lobortis suscipit velit est praesent eos diam. Lorem dolores sed takimata vero vulputate at dolores diam dolor nostrud kasd facilisis luptatum lorem.

Aliquyam praesent consetetur stet veniam et vulputate diam magna dolore est in dolores amet dolore blandit zzril no. Sit no sit. Nostrud ipsum accusam invidunt ipsum diam feugiat. Suscipit sadipscing ea aliquam. Dolore labore kasd dolor blandit duo elitr. Assum at stet dolores et facilisis rebum nisl ea takimata kasd labore diam ipsum rebum et labore ipsum. Justo vel diam augue. Et sit dolore nonummy ut iusto dolores autem lorem aliquam accusam eos justo molestie invidunt stet praesent amet dolor.