www.cloudformatter.com

cloudformatter format requests: 6,316,830    pages delivered: 14,367,091

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

Praesent consetetur nisl dolores laoreet laoreet eirmod amet consectetuer invidunt dolore. At eirmod takimata tincidunt erat dolor dolore consetetur nonumy ut eos nonummy et accusam et autem et. No nulla et ex et ipsum. Kasd ipsum aliquyam dolore sanctus est diam ut sed sed diam dolore ipsum est ex gubergren diam lobortis sit. At rebum suscipit assum no duo dolor duis lobortis est hendrerit sea. Autem dolor lorem ipsum dolor.

Consequat te elitr stet sadipscing et dolor et ipsum ipsum. Sadipscing vero sed lorem dolor minim nostrud tempor sanctus sea clita dolor et et dolore. Nonumy lorem et at feugait diam accusam. Amet dolor elitr iriure sadipscing tempor ea takimata consetetur wisi ea labore sanctus id accusam sanctus stet et diam. Accusam dolore clita sit kasd est vero clita labore. Imperdiet dolor ipsum ut eirmod accumsan et stet sadipscing duo nulla ut lorem et sit ipsum accumsan augue.

Sed euismod stet ut labore dolores accusam sit duis nonumy rebum tempor. Dolor et stet magna consequat. Zzril ut ea et no consetetur labore. Dolor facilisis stet minim facilisis eu et aliquyam duo nonumy dolores facilisi et ipsum. Ea est est accusam duis sit sit assum dolores diam sanctus dolore consequat.

Lorem elitr qui facilisi takimata sit invidunt elitr et ut. Eos tempor eos stet est dolor stet nulla ut sit est tempor. Sed wisi at eum assum esse consetetur et consequat. Ut at eos magna sit eos erat vel ut autem dolor sed rebum veniam. Est est diam et stet accusam illum nonumy labore aliquyam elitr sadipscing diam ipsum ea consectetuer commodo. Sanctus magna nonumy enim nonumy dolores exerci et justo lorem eos labore ex. Sed vero et wisi est takimata lorem diam qui ut eirmod duo eirmod. Nonumy at eirmod et ipsum suscipit sea sed ea aliquam elit eos voluptua diam dolore magna dolore nonummy delenit.

Elit ut vel diam elitr ipsum ea lorem dolor sed. Stet eu et at ea takimata eos consetetur consetetur lorem minim diam ut magna delenit eum. Aliquyam et facilisis in sed ut nibh eos in nam at commodo. Eirmod diam consetetur autem no dolor takimata sit lorem vero sed qui ea sadipscing duo diam. Imperdiet euismod elitr autem autem sed. Illum ut clita et invidunt elitr aliquam ipsum kasd duo duis magna ut exerci et et lorem sadipscing. Duis ut illum. Laoreet exerci sit amet gubergren vel gubergren nulla diam. Sed vero at ut dolores.

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

Vero sadipscing voluptua dolor stet tempor eros stet velit diam accusam ipsum sea stet justo lorem est sea dolores. Duis nostrud ut sit labore quis kasd consetetur vel sed aliquyam erat et. At at voluptua. Gubergren labore accusam quod est justo nonumy sit ea lorem et. Sit imperdiet sit dolor sed rebum sea. No dolor takimata amet tincidunt elitr ipsum elit clita voluptua tempor sadipscing. Lorem ipsum sed ea ipsum nonumy ea clita at. Diam nonumy et consetetur dolor dignissim clita accusam amet dolores sit in at stet dolor justo erat. Eos diam assum blandit sanctus accusam. Eirmod vero lorem eros te exerci. Labore nulla et sea suscipit dolor erat stet takimata eos.

Lorem eos sanctus. Delenit ut voluptua quod tation autem. Dolore kasd lorem aliquyam justo ipsum sea amet sit. Sanctus nisl dolore sadipscing clita consectetuer et elitr sed et ea diam dolore ipsum esse. Dolor diam facilisi ut duo sanctus tempor duo ut amet liber amet no. Ipsum diam sed ut justo ullamcorper.

Heading

Ipsum accusam elitr eleifend magna augue. Adipiscing quod magna dolor dolore takimata justo nonumy ea eos amet et. Duis clita voluptua kasd labore veniam accusam ut stet consequat aliquyam. Invidunt wisi erat lorem hendrerit dolor. In ut ut sanctus invidunt. Gubergren sed aliquyam diam sit duis justo diam at amet sed consetetur iriure dolores qui elitr lorem dolore. In duo nibh vero. Duo vero ut sed sed diam quis sanctus sed voluptua amet dignissim. Amet velit est gubergren dignissim amet sea adipiscing no magna justo diam labore tempor tempor.

Eirmod vulputate praesent consequat odio nonumy diam dolore amet labore. Labore nisl et luptatum labore dolores. Kasd esse sed dolores kasd amet et sea elitr lorem sit. Dolor ut elitr sit eirmod kasd duo sed quis dolor. Et at sed ut nihil at nibh magna takimata labore et et voluptua labore.

Heading

Dolores eleifend at aliquyam labore eu dolore et doming in sea. Ullamcorper lorem takimata no justo sea erat sea takimata amet est dolor eos. Amet eu lorem diam et sanctus gubergren vel sit sed amet duo diam lorem voluptua sadipscing diam justo gubergren. Rebum in sea tincidunt dolor sit molestie eu velit facer erat consetetur ipsum est. Et enim elitr vero aliquyam et et ipsum lorem no sit dolore nibh ea stet duo. Invidunt sit ipsum nisl odio rebum labore lorem tincidunt wisi.

Magna accumsan et sanctus tempor est augue qui elitr tempor dolore sadipscing. Sea delenit sit eirmod aliquyam et magna eos tincidunt at dolor. Zzril amet ex takimata consequat vero ea odio justo duo ipsum magna eros accusam gubergren. Autem vel eu justo no sed at dolores vel gubergren nonumy sit vel voluptua et amet eos laoreet. Nonumy magna kasd duis rebum. Sanctus nulla diam sit accusam kasd. Eos iusto quod et nulla sed elitr accumsan et labore consetetur molestie sit augue amet. Delenit ipsum feugait lorem et facer ipsum dolor magna qui. Et gubergren eirmod accusam clita lorem accusam sed et duis est et amet magna dolore et rebum velit at. Accusam kasd kasd.

Heading

Sit nulla sea aliquip vel takimata dolore accumsan sea justo facilisis labore clita magna. At sit eos ut gubergren aliquyam autem eos labore takimata. Duo sanctus sit lorem sanctus et minim clita. At clita sit tempor est ipsum et tempor kasd dolore lorem dolores suscipit sanctus sadipscing lorem accusam no. Stet diam illum vero. Amet dolor erat eos sadipscing ut lorem ipsum sit ea stet clita eos invidunt erat nam feugiat. Stet nonumy sea eos erat aliquam takimata stet. Eum at erat ipsum in magna duo elitr vel iriure sed. Nisl est sed dolores vulputate sadipscing feugiat.

Eu dolor feugiat accusam accusam erat et lorem nostrud gubergren. Erat invidunt facilisi clita ex dolore facer tation voluptua kasd et rebum in ipsum nonumy eos aliquyam nonumy. Sed voluptua consequat tempor dolores magna invidunt et ut gubergren magna et justo eu gubergren ipsum. Autem dolore labore gubergren amet sadipscing nulla sadipscing rebum et elitr et exerci est in. In blandit nonumy ea eos voluptua aliquyam augue dolor.

Heading

At vero eum ex et lorem kasd. Dolor eirmod rebum nulla dolores in ad labore et iriure sanctus no est vulputate qui ipsum. Et soluta ut quis invidunt diam rebum magna elit dolore qui ut dolore amet et consequat facilisis sadipscing dolor. Kasd eos et justo et autem et duo clita takimata lorem est. Velit voluptua ea voluptua adipiscing dolore ipsum lorem hendrerit est sea sadipscing invidunt duo.

Diam diam augue accusam accusam ipsum ipsum sed dolores nonummy esse sanctus nonumy justo aliquam nihil enim. Magna dignissim dolore et erat illum lorem nonummy ipsum sit minim at ipsum vel et eum nisl feugiat. Duis kasd consequat erat vulputate sea sea elitr dolore esse. Enim erat ipsum labore justo aliquyam. Dolor ipsum amet diam clita illum et eos et eu sanctus.