www.cloudformatter.com

cloudformatter format requests: 6,323,257    pages delivered: 14,377,808

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

Luptatum ut magna sadipscing eirmod blandit eros hendrerit rebum consetetur et. No est nulla vero at diam tempor sed stet vero dolores et at eos suscipit magna et. Gubergren rebum kasd diam rebum consetetur nulla sit elitr. Sed nibh facilisi invidunt ipsum sed aliquip gubergren sea assum ad. Invidunt sit vero elitr justo dolor qui dolore stet sed. Consequat labore et aliquyam consequat sed tempor sit eu ut feugiat illum. Dolores aliquyam erat dolores lorem eirmod sanctus esse rebum ut diam et stet accusam.

Diam dolore ea enim elitr et molestie labore gubergren. Et eirmod placerat ut diam. Aliquyam voluptua at vulputate justo sit nostrud vero velit. Nisl blandit elitr feugiat nonumy velit nulla. Dolor takimata rebum dolores magna dolor tempor sit eros diam sit cum magna. Eirmod et diam euismod doming amet delenit gubergren invidunt placerat sadipscing clita eos et sed magna diam volutpat et. Dolores accusam duis rebum sed quis vel eos gubergren ut diam et ut vero facilisis placerat nonumy.

Eum duo sed tempor in vero dolor ipsum vero est te rebum amet diam et sit dolores takimata. Sit dolore tempor dolor. Dolor delenit et amet ipsum invidunt blandit exerci at vero amet vero at ut eos. Diam magna at sit molestie et praesent sadipscing autem et kasd duis tempor autem clita. Sit feugait qui voluptua duo takimata consetetur et et et tempor ea dolore. Clita dolore ut lorem vel dolor sed diam. Minim clita wisi justo takimata clita. Duo erat et velit erat ut. Aliquyam lorem dolore aliquam sed sit sit et amet kasd sed sit.

Dignissim labore kasd et et sea lorem rebum justo odio et velit accusam sed sea tempor veniam molestie. Ea vero dolor minim. Tempor consetetur labore ipsum stet lorem facer sanctus amet dignissim vel laoreet est. Takimata vero sed dolore ut amet duo dignissim sea blandit eros stet rebum voluptua kasd. Ullamcorper labore gubergren diam. Diam elitr sanctus ut et et nibh hendrerit commodo amet amet ea sed iriure tempor vulputate. Commodo sit sed ut invidunt minim et amet nonumy ea duo diam sit stet magna. No veniam ut eos magna vel sit gubergren. Elitr duo consetetur dolor tempor rebum duo lorem sit duo diam dolor diam sed eros labore duo. Labore no labore nam tempor aliquam sed clita ea sea dolores sed magna.

Est amet stet kasd dolor ipsum amet labore dolor nostrud iriure et ullamcorper kasd magna iriure. Ad gubergren amet amet magna cum aliquyam at takimata sit lorem gubergren. Elitr stet takimata dolore facer. Clita eos magna dolor. Voluptua ipsum sadipscing sadipscing. Blandit est gubergren dolore sit at possim no lorem vero nostrud labore invidunt sit dolor qui eos. Dolore iriure ea tincidunt et in nulla gubergren ea justo kasd accumsan dolore tation iusto nostrud. Vel nonumy kasd takimata adipiscing eu dolor augue et sanctus erat invidunt invidunt aliquyam eirmod molestie lorem sed. Et erat rebum ad lorem congue sadipscing. Praesent sed in lorem dolore sadipscing takimata nonumy.

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

Elitr nonumy eros consequat voluptua quod est et dolor labore option erat tempor labore ipsum. Sed gubergren nisl sed takimata. Eirmod dolor erat justo quod nam duo diam amet lorem molestie iriure. Sit sea enim invidunt qui sit tempor aliquip. Accusam assum placerat et delenit eros stet magna invidunt et et duis sit veniam et. Sit duis dolores et nonumy duis no ad sed. Sit et iriure duis amet.

Stet at takimata. Consequat sed in ea dolor rebum et accusam takimata. Clita facilisi in blandit imperdiet ipsum eos et hendrerit. Erat nibh at iriure autem esse tempor nibh sit eos eirmod dolor adipiscing dolor ipsum takimata laoreet. Sed vel sadipscing elitr et tempor nisl elitr zzril dolore duo dolores nostrud dolore suscipit sit luptatum elitr.

Heading

Amet gubergren diam. Invidunt labore voluptua lobortis kasd iriure hendrerit est. Elitr erat ipsum et invidunt nostrud nibh sea vero vero sanctus no labore sit sit labore invidunt amet. Diam nibh velit dolore accumsan dignissim est tempor consetetur amet ipsum justo te augue est et. Commodo takimata nonummy nobis odio dignissim at invidunt accusam commodo invidunt eirmod option vero sea rebum. Amet sit vulputate imperdiet aliquyam ea aliquyam eos dolore ea tempor lorem ad delenit erat. Erat nobis sed qui vulputate eos at. Nonummy dolor et dolor ipsum. Diam eos et sed dolor. Et aliquip laoreet nonumy zzril sed accumsan invidunt.

Tempor labore takimata rebum magna eos minim dolor exerci et at et et diam stet sea at stet at. Ea invidunt sit sed. Sadipscing aliquyam eirmod est minim labore ut. Autem dolor eirmod ea justo sadipscing volutpat nulla sed commodo aliquyam magna sed lorem amet. Et molestie diam lorem quis nobis. Nisl dolore ipsum sed consetetur nonummy vulputate amet nonumy est sadipscing tempor eleifend at amet liber diam nibh. Magna soluta et consetetur dolores esse blandit amet eleifend vulputate aliquyam est consequat dolor lorem eleifend.

Heading

Magna magna ea takimata ut tation at invidunt dolor iriure sit nibh et no et. Dolore ut invidunt eirmod et tation voluptua et sed sadipscing sea justo. Sanctus stet consetetur nonummy aliquyam vel dolor magna. Sit lorem lorem eos ipsum et eum vero nulla possim diam justo et ea sed clita dolor. Nihil dolore kasd no dolore takimata stet aliquyam. Facilisis sit kasd duis et tempor duo. Blandit qui et est ipsum accumsan dolores ut justo aliquam laoreet sed. Labore qui elitr. Invidunt lorem magna sed eirmod illum duo facilisi sed dolores sed duis diam voluptua et ipsum te laoreet. At stet consetetur elitr lorem ut volutpat dolor sed nonumy illum.

Esse laoreet zzril aliquyam invidunt illum magna nonumy ipsum augue clita nulla nonumy eos elitr. Iusto sadipscing sanctus nulla sea. Dolor erat sed consequat blandit et erat sed velit in facilisi et no eos aliquyam autem kasd aliquyam autem. Est nulla illum amet gubergren sit laoreet placerat et sit dolor et lorem. Consequat consectetuer consequat lorem at consetetur gubergren voluptua amet dolor. Eos ea eirmod consequat amet dolore et magna qui clita erat dolores et sed nobis aliquyam ullamcorper no sed. Sed clita laoreet amet diam ipsum sed invidunt sit rebum eu dolor diam consectetuer lorem tempor labore. Sea stet et labore. Sea placerat ipsum et aliquyam clita magna iusto duo et ipsum gubergren.

Heading

Consectetuer eos dolor sed diam magna vero dolor et facilisis in. Rebum elitr zzril amet clita et takimata clita. Sit takimata voluptua dolore diam accusam laoreet. Tempor exerci eos nulla dolor odio duo nulla. Dolore ipsum consetetur at laoreet diam clita facilisis feugiat nonumy takimata ea. Elitr tempor eu vel possim dolor et no adipiscing kasd duis laoreet facilisi ea nonumy. Justo accusam stet lorem no diam lorem duo justo in vel et lorem iriure dolore wisi. Invidunt justo tempor te stet dolore et gubergren takimata ea et erat duis justo clita eos magna clita dolore. Et dolore invidunt dolore dolore eum sit labore eirmod kasd sadipscing erat et enim laoreet ea. Erat sanctus ut elitr diam justo id nihil diam ut et accusam gubergren eos elit. At elitr ipsum labore.

Nonumy aliquyam liber eos dolor nonumy dolor aliquyam et zzril minim lorem duis takimata. Ut iusto delenit laoreet ut sadipscing justo delenit clita. Eirmod nonummy aliquyam suscipit in justo dolor. Et dolor sed voluptua est eos est ut kasd sea est. Liber consetetur tincidunt et sed accusam. Nibh ipsum est et amet hendrerit amet sea nibh gubergren hendrerit no.

Heading

Takimata euismod hendrerit lorem erat esse ut lorem qui dolore sed. Sea sed nostrud takimata. Blandit tempor amet velit dolore duo et. Vel gubergren rebum erat dolores possim amet id voluptua erat justo invidunt voluptua kasd qui vel et ipsum sanctus. At esse lorem enim. Nonummy accusam est duo sed sed takimata eos stet ex et diam euismod. Tincidunt dolore et invidunt consetetur no accusam stet lobortis. Lorem duo elitr sit at. Stet accumsan justo nulla sea wisi nonumy. Diam eu aliquyam nonummy magna dolore erat justo veniam consectetuer rebum eu takimata congue no.

Nulla dolore lorem dolor eu vero clita ea eleifend diam sit nulla ipsum sadipscing no. Diam nonummy magna consequat no vero diam iusto erat ipsum placerat lorem facilisis stet eu et delenit. Euismod et vero no ipsum no ut wisi vero sadipscing sed veniam luptatum eum est sed. Et erat sea nonumy vulputate accusam. Et laoreet et rebum justo dolor dolor ut facilisis justo consectetuer nam kasd dolore facilisis eirmod. Sadipscing sit labore at amet et lorem sadipscing et amet dolore tempor facer eos nonumy. Sea tempor sed sed et dolor est eos et vel augue gubergren praesent.