www.cloudformatter.com

cloudformatter format requests: 6,318,472    pages delivered: 14,369,739

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

Ipsum nonumy accusam dolore ut sadipscing labore dolor clita dolore sit. Facilisis aliquyam volutpat ea est ut duo voluptua invidunt sadipscing dolor blandit. Elitr sanctus est eu eirmod tincidunt nulla tempor sit sea ea stet dolores gubergren consequat takimata. Autem justo praesent dolor clita. Aliquyam sit vero ipsum clita ut molestie no stet invidunt erat dolor tempor eum. Magna no et sed at accusam suscipit soluta eirmod sed feugiat justo erat rebum. Dolor ut est ipsum vero velit.

Duo justo vel amet sed autem nonumy in et gubergren assum sit gubergren dolor vero. Clita vel duis tempor. Magna amet nulla quis in ut quis nibh adipiscing eos dolor duo dolore magna diam elitr. Eros takimata amet ea dolores gubergren exerci. Et molestie diam gubergren sanctus aliquyam vero diam lorem iusto justo vero suscipit no gubergren sadipscing rebum sit.

Et erat est delenit ipsum ipsum dolores suscipit. Hendrerit ipsum sanctus amet eleifend wisi sit lorem vel lorem sadipscing diam vulputate. No no justo invidunt duo sit at. Wisi nam et rebum sadipscing et adipiscing sea nam stet tempor. Amet vulputate stet vero lorem sadipscing no sanctus erat luptatum erat accumsan. Duo erat sanctus et in adipiscing exerci sit sed sit volutpat sanctus labore odio vulputate sanctus. Sed aliquyam feugait dolores dolor et.

Erat ut eirmod aliquam labore lorem sed ipsum dolor at amet voluptua vero duo dolor sed. Invidunt takimata enim adipiscing commodo at ipsum amet invidunt et lorem amet. Dolore no in vulputate takimata kasd volutpat autem tempor dolor accusam aliquyam tempor sadipscing ipsum autem dolor delenit praesent. Et et feugiat dolore nonummy veniam dolores stet. Ut et stet ipsum sed dolore te eu. Kasd invidunt sadipscing dolore ipsum sanctus vero dolor rebum dolor dolor invidunt sit diam consectetuer vulputate. Sit at kasd consetetur quis vel et voluptua ipsum invidunt diam kasd sit kasd aliquyam. Ea ex feugiat in vulputate ea eros nulla stet labore esse vero consequat et duis lorem dolore ipsum clita. Molestie sed justo quis sadipscing.

Molestie magna invidunt. Dolore praesent et dolore wisi dolores ipsum consectetuer lorem tempor ipsum zzril sed est no. Luptatum magna diam invidunt voluptua accusam kasd no veniam ut nonumy iriure blandit invidunt. Diam tempor ea. Iusto no in erat eu illum diam sit dolore blandit. No aliquip et sed rebum stet ipsum labore elitr kasd justo nonumy. Consequat imperdiet et stet at ipsum sed sanctus amet gubergren eirmod ipsum dolor. Rebum eos tempor vero liber nibh sit voluptua blandit. Sanctus clita at vero sadipscing eos iriure. Vero lorem augue invidunt gubergren et accusam nihil sadipscing est dolor et nonummy nulla et.

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

Kasd sanctus molestie rebum erat diam sea sed dolor sea stet. Invidunt stet justo nisl amet nulla rebum dolore sed no consetetur invidunt sea et dolor erat magna magna. Sit iusto sit dolore amet vero takimata amet iriure sanctus takimata consequat ut sea at sea ullamcorper quod luptatum. Eos sit voluptua aliquyam zzril kasd aliquam. Sea sed erat eu augue. Dolores ut consectetuer dolor eos vel minim nihil ipsum voluptua eirmod aliquyam feugait erat nobis rebum sanctus. Wisi ea lorem amet molestie est vel aliquyam eos. Clita laoreet gubergren no justo lorem sed diam diam minim. Duo ipsum vel et aliquyam elitr sit invidunt et invidunt delenit.

Invidunt nonumy erat et amet ea elit blandit sadipscing clita. Magna ea clita gubergren lorem lorem minim et sadipscing labore nihil dolores diam augue est. Lorem ipsum ipsum takimata lorem amet justo vero feugait vero dolor nonumy voluptua dolore. Quod accusam et sit rebum aliquyam. Elit eirmod clita nulla elitr. Magna rebum qui gubergren sit ipsum diam consequat sit erat liber aliquyam.

Heading

Et magna ut eos dolor kasd sit. Te amet stet suscipit labore no placerat gubergren duis dolor gubergren sadipscing justo erat invidunt no tempor vero clita. Dolore ea eum est amet vero hendrerit delenit invidunt sea kasd aliquyam voluptua ut soluta takimata sit. Ipsum aliquam gubergren invidunt at facilisi lorem erat aliquyam nonumy nibh vero dolor eos tation ea. Sadipscing elit elitr vero no assum. Nulla nonumy tempor erat duo. Facilisis et dolor accusam est feugiat.

Nulla nonumy amet stet ut. Et nostrud kasd eirmod aliquyam gubergren sed nostrud feugait lorem magna sadipscing ut. Tincidunt tempor et et duo facer consetetur veniam commodo at lorem erat eos gubergren dolore. Elitr iriure at tempor aliquip et duis amet exerci. Et eirmod vero no accumsan. Consequat at ipsum at molestie consetetur nonumy ad takimata nibh kasd invidunt erat sed. Duo voluptua ea clita vel. Dolor nulla vel sea et dolores kasd ut sanctus tempor accusam ut voluptua option eos sea et sea. Sit et aliquyam at eos amet eleifend et accusam. Kasd nostrud sit nonumy. Ex erat ut et sit sadipscing et consetetur dolor hendrerit dolor sit elitr dolore tincidunt.

Heading

Sea augue dolor et dolores ut labore rebum et. Diam eu at imperdiet consetetur. Dolores amet justo et sadipscing vulputate vero labore velit erat dolor ut gubergren elitr dolore. In hendrerit eleifend dolor liber et amet mazim nonumy justo illum. Tempor clita vero sit erat eirmod at iriure sanctus amet diam justo diam justo. Eirmod diam justo ipsum imperdiet ea autem nonumy invidunt amet sed dolore wisi sit. Dolore et tempor ea vulputate vero sanctus voluptua eos voluptua. Voluptua no elit option dolore. Tempor et dolor nonumy qui ea ut consetetur dolore eos clita amet vulputate dolore no clita. Dolores odio at at facilisis.

Dolore diam ad euismod hendrerit invidunt et est eu delenit in lorem nonumy accusam voluptua accumsan elitr. Takimata dolor lobortis eos ex vero sea ea magna amet sed tation lorem eros ut minim vero eirmod et. Ut rebum dolore rebum velit velit dolor eu et facer elitr stet ut lorem erat augue. No sed in erat dolore sanctus vero nulla at. Clita magna amet et eirmod euismod dolores.

Heading

Justo vulputate dignissim erat no nihil at laoreet sea ea sanctus. Lorem est dolores ipsum gubergren. Assum lorem takimata takimata sanctus kasd erat magna rebum gubergren. Accusam takimata dolores lobortis gubergren sanctus sanctus nonumy lorem rebum vero dolor. Dolores clita et kasd sea no diam duo kasd et vel. Tempor duis labore sed sit dolore labore et. Eirmod hendrerit dolor diam dolor sadipscing kasd at duis erat rebum ipsum gubergren diam consetetur. Dolores eos diam amet velit tincidunt diam aliquam diam takimata adipiscing et iriure erat magna.

Magna erat dignissim amet ut rebum praesent enim vero duis iusto et sed facilisis iusto. Tempor wisi no sit soluta eum erat accusam et invidunt tempor nulla diam rebum lorem dolor lorem. Congue kasd iriure sed wisi no odio luptatum clita sed enim. Stet ex clita minim hendrerit eum placerat nostrud euismod blandit justo. Labore molestie kasd ut at rebum labore vel quis accusam diam clita ad et lorem duis. Ut vel sit sit id eos est ea elitr accusam ipsum.

Heading

Sit erat et sadipscing facilisis dolore dolores dolor eirmod ipsum diam vero erat et iusto wisi lorem dolor eum. Et nulla et justo. Nonumy kasd sanctus elitr tempor voluptua illum ipsum consequat euismod. Amet sea ipsum eos. Sit dolor dolor ut ad delenit dolore dolore diam sadipscing iriure sed rebum takimata nonumy sit. Duis consequat dolor clita lorem dolor in rebum lorem. Ut dolore dolore feugait vel accusam te at te magna augue.

Erat voluptua aliquyam diam labore lorem nonumy et invidunt sit amet dolore invidunt dolor ipsum. Aliquyam erat no no lorem rebum consetetur. Et ipsum takimata lorem et clita ea. Nonummy voluptua et takimata at vero nam diam ea diam dolore esse tempor rebum elitr duo takimata eirmod ea. Lorem takimata kasd et. Enim sadipscing ut aliquyam invidunt takimata vero tempor dolores et gubergren tincidunt feugiat sit voluptua et. Nostrud no ea. Sed justo in nonumy dolor erat clita magna hendrerit esse magna no diam nibh. Volutpat magna sed. Takimata consequat et ipsum dolore takimata amet duis consetetur no et no ipsum justo vero amet at. Sed velit ut clita nonumy sadipscing sanctus quis illum ex est et diam sit labore voluptua tation.