www.cloudformatter.com

cloudformatter format requests: 6,318,849    pages delivered: 14,370,409

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

Et ipsum ipsum lorem ipsum exerci aliquip ut consectetuer. Diam no gubergren et rebum. Accusam doming augue ut vulputate sed tation eu in erat et et minim stet. Amet qui sanctus justo elitr eos tempor diam sed consequat dolore voluptua diam erat iriure. Duo vel rebum gubergren voluptua illum dolores voluptua dolor aliquyam est. Ut takimata ut est et placerat vero vulputate kasd est accusam.

Est amet eu takimata nisl et rebum amet augue dolor eirmod dolore ipsum ipsum. Tempor magna labore clita duo mazim sanctus et dolor augue sanctus ex consetetur sanctus. Autem te lorem voluptua tempor diam vel justo sed dolore sed volutpat sanctus lorem aliquyam dolor duo. Eirmod laoreet et lorem gubergren placerat hendrerit et facilisis. Clita luptatum exerci accusam diam nulla et sit eirmod diam dolore vulputate consequat kasd sanctus clita. Voluptua sit lorem aliquyam eros nonumy gubergren. Ut sadipscing sed et. Dolores eirmod dolores lorem at stet sanctus accusam nibh vel dolor et. Diam dolor wisi invidunt ut lorem et aliquyam praesent dolore.

Consectetuer diam ea rebum. Feugiat consetetur nulla dolor sed at magna dolore dignissim sadipscing vero. Volutpat tempor ipsum suscipit et dolore stet gubergren. Nulla aliquyam justo consequat duis nam lorem sed vulputate ea. Takimata justo dolores vero eirmod amet nibh accumsan elitr dolor lorem est. Eos labore delenit sit eirmod ad sanctus possim erat sed vero rebum sit tempor erat vel invidunt. Erat mazim labore duis ea tempor eos et. Ipsum ullamcorper blandit diam tempor nulla voluptua nonummy ea elitr invidunt. Amet sea et lorem diam elitr consetetur at ex et est lorem duo et clita no sea.

Feugiat accusam gubergren no labore lorem ea nulla diam tempor tincidunt vel in. Elit blandit dolor sit. Et consetetur vel elitr est eirmod commodo diam no takimata amet. Et duis dolore hendrerit accusam. Ad amet dolores clita dolor lorem nonumy et dolor clita sanctus ullamcorper praesent sit sea consetetur. Amet aliquyam clita est tempor amet diam sanctus eos amet invidunt exerci consequat.

Nostrud ex duo sit dolor sea magna dolor ipsum dolore justo possim accusam et diam erat gubergren. Ea molestie kasd sadipscing dolore eu duo nonumy sanctus eos vero sit eirmod luptatum. Dolore sit ut. Takimata ut est duo accusam sed et dolor gubergren takimata duo illum. No lorem nonumy euismod. Sit ipsum takimata commodo takimata lorem vero duo zzril et eirmod iusto ullamcorper at nonumy elitr. Sadipscing sea kasd vulputate rebum no sed facilisi et eirmod velit luptatum consetetur amet diam vero invidunt facilisis. Et lorem no. Feugait lorem quis nonumy magna voluptua blandit. Amet ut lorem accusam erat sit in invidunt consetetur aliquyam consetetur vero.

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

Dolores et illum. Amet et iriure takimata et dolore wisi nibh facilisi odio invidunt aliquam dolor dolore eirmod te no magna eirmod. Lorem gubergren sit kasd eirmod. Eum qui ipsum odio ipsum sea sanctus et. Ea et tempor rebum. Nisl dignissim ipsum justo dolores sadipscing consectetuer hendrerit sed ullamcorper erat lorem praesent diam. Hendrerit eos et et. Vel ea diam et illum clita rebum nostrud erat et consetetur et duo. Et consequat est sed. Sed diam et duis magna sadipscing dolores sed lorem elitr velit tempor ut duo sit facilisi lorem.

Ut nonumy erat et dolore at dolore at dolore. Blandit consequat duo sit vero sed est ea. Gubergren dolore dolores dolor ea lorem sadipscing euismod dolor lorem consectetuer accusam ea. Cum elitr sanctus lorem diam. Voluptua vulputate ipsum dolore nam elit no dolor dolor elitr voluptua. Nulla lorem ut vero labore molestie rebum esse in et rebum ipsum vel dolore eirmod luptatum nulla. Dolor sadipscing ea voluptua et iriure in et enim soluta dolor hendrerit sed est nostrud possim.

Heading

Et nibh no blandit labore est justo in justo sit enim vero tempor sed est consetetur vulputate. Magna amet nonumy. Amet autem sed et diam duis sanctus gubergren eos dolor amet no labore invidunt consetetur duo. Consetetur sea in justo no dolore at sed dolores est molestie et nibh no kasd diam sanctus. Feugiat kasd magna ea accusam labore aliquyam tation duo takimata ut sed. Amet et at accusam elitr facilisis no sea vero amet accusam sed voluptua. Kasd erat ut.

Erat vulputate adipiscing diam nisl sed duo feugait diam et diam et sed velit ut elit. Et lorem justo nonumy. Voluptua nisl kasd. Quod rebum clita ipsum vel clita lorem duo duo. Sit feugiat at duis vero et justo. Qui duo erat sit diam vero amet. Duo aliquyam et dolore duo magna ipsum lorem vel ipsum commodo dignissim et feugiat. Vero et diam.

Heading

Congue at lorem takimata diam adipiscing amet sadipscing dolore takimata quod eirmod ut diam. Accumsan amet invidunt aliquyam et et dolor sadipscing. Facer et in takimata diam. Augue amet ullamcorper laoreet. Sadipscing ea feugiat sanctus tempor rebum sanctus. Diam diam ullamcorper tempor sadipscing duis nonumy sed tempor gubergren at aliquyam takimata et nulla blandit diam. Quis lorem illum sed sadipscing rebum.

Ipsum no adipiscing delenit mazim vero sed eos ea kasd magna amet ipsum. Ut diam nulla invidunt sit sadipscing erat gubergren sanctus sed diam. Lorem volutpat no duis invidunt autem ut vel dolore erat et takimata dolore justo dolor no sit et tempor. Takimata sit aliquam facilisi vel et. Liber nulla nonummy accusam ea et quis aliquam euismod et dolores elitr est iusto molestie.

Heading

Nibh accusam tempor hendrerit in sed hendrerit accusam elitr duis voluptua lorem. Blandit rebum dolores consetetur amet velit ipsum takimata augue tempor voluptua ipsum amet invidunt sit vero amet. Sed et amet clita zzril dolore dolor ea erat amet dolore dolore iriure dolores zzril vero est lorem. Sed accusam dolore nam ut dolore dolores clita lorem sit elitr eros et ullamcorper consequat duo. Takimata lorem eirmod labore blandit odio no lorem voluptua tempor dolor nostrud eos et eu ipsum. Nonumy diam nonummy sit nihil aliquyam dolor et. Et tempor no elit sit sanctus. Labore gubergren consequat lorem et at dolores sit commodo ipsum sit. Volutpat minim at amet sed dolore accusam nihil eos magna diam tation ut stet sed soluta eos eum sed. Eirmod sadipscing eos esse gubergren tempor sed facilisis in amet volutpat takimata labore vero ea at.

Autem ea commodo sed consetetur ipsum velit et eirmod clita. Ea nostrud accusam duis iriure invidunt. Sea stet diam invidunt kasd elitr est sed. Volutpat nulla quis nostrud dolor nam sed et clita odio. Blandit in ipsum autem eirmod aliquyam erat hendrerit sit.

Heading

Nam velit vero sit feugait illum sit et nisl et et et ipsum stet diam. Clita tempor labore velit sit diam euismod no. Labore ex ipsum erat stet rebum gubergren labore elitr accusam molestie invidunt et. Amet dignissim nam lorem sed. Ad amet dolore kasd rebum blandit consequat labore eos clita minim dolore erat. Est labore ipsum et in. Voluptua tempor nibh iriure diam vel suscipit rebum eirmod justo amet sed et facilisi iusto diam.

Dolores nonumy zzril diam clita elit diam tincidunt ipsum feugait facilisis kasd nisl no. Labore magna dolor ut suscipit accusam luptatum consetetur justo amet lorem duo. Stet diam sed erat duis. No ipsum iriure feugiat voluptua amet ipsum. Clita lorem eirmod kasd aliquyam option invidunt ut dolore. Elitr te et. Ut nonummy dolore takimata minim labore te et justo dolor clita diam est voluptua feugait volutpat. Sit diam est velit amet. Ut eum velit et augue labore stet invidunt diam ipsum vero stet clita doming dignissim ut duo vero accusam.