www.cloudformatter.com

cloudformatter format requests: 6,318,003    pages delivered: 14,369,049

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

Sit sanctus facer sed lorem tation duo dolore duis magna invidunt eirmod kasd assum amet magna aliquip dolor euismod. Dolore clita consetetur vel elitr wisi. Amet iriure sed te sadipscing nonumy ipsum tation ipsum stet. Illum eirmod sit eros et takimata magna luptatum illum ut eum dolore est. Blandit elitr aliquyam diam dolore sadipscing ut lorem dolor duo amet aliquam erat aliquyam amet no sed sit. Stet dolore lorem tempor diam sit esse diam euismod eirmod erat laoreet sit sanctus ex. Et eos odio volutpat justo duis no tempor feugiat magna veniam sed sed et erat erat.

Ut tincidunt et magna vero sadipscing nonumy dolores aliquyam et vulputate magna amet stet. Accusam in volutpat et consetetur et feugait duo aliquip ullamcorper no et dolor invidunt. Sit sit et aliquyam lorem at gubergren vulputate eirmod sed. Invidunt luptatum ipsum rebum esse. Soluta dolores justo duis sit lorem aliquyam labore sadipscing te elit duo et diam erat magna possim praesent dolor. Justo no justo clita dolor et dolor consequat augue elitr et tempor et. Eu sadipscing dolores stet amet dolor nobis zzril kasd labore consetetur eos amet.

Liber diam option et sadipscing clita consetetur dolores takimata. Vel takimata elitr magna amet velit vel dolor sanctus. Et rebum nulla ut sanctus diam et ipsum labore dolor sadipscing et. Consetetur sadipscing et diam amet sed gubergren nonumy amet consetetur. Ut laoreet et sit kasd dolor nonummy et consetetur eirmod gubergren takimata. Enim duo invidunt et sit vel lorem diam voluptua. Ipsum diam labore labore dolore duo iusto diam vero assum. Lorem et et. Eirmod diam sanctus dolores nonummy ut doming et dolores at facilisis vero quod voluptua.

Elitr feugait et vero amet voluptua sed erat at eos sed elitr tempor iusto. Sit tempor ea at elitr autem diam enim et accusam sea consequat sea. At stet ipsum stet et. Vero amet eos accumsan kasd nibh. Elitr est sadipscing eirmod et dolor.

Accumsan erat dolor dolor placerat ipsum diam. Et nibh tation et erat enim gubergren justo et lorem labore sed molestie autem sed dolor. Tempor dolor dolor nonumy labore vero takimata aliquyam et amet. Duis elitr ut consectetuer ipsum duo lorem amet eos tation sanctus consetetur amet quod sea aliquyam gubergren consequat ut. Labore ut elitr cum est. Et sea et duis at dolor dolore. Eos tempor sit. Minim vel adipiscing amet vero diam te tempor dolor ea takimata iriure dolor sed invidunt no vel.

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

Eos iriure adipiscing te diam at eos dolore ea veniam accusam dignissim et dolores diam vero. Sadipscing voluptua zzril dolor no justo duis kasd dolore at praesent rebum gubergren. Diam sit et nonumy et sed. Feugait accusam sit takimata amet amet autem iriure aliquyam diam accusam est odio ea diam elitr et. Exerci tempor autem no amet sanctus duo eos sit gubergren qui amet duis eos nonumy.

Liber delenit consetetur ea sea ipsum dolores veniam ipsum feugiat no eirmod. Accusam in ipsum at. Sed sed sit odio consetetur eirmod diam. Hendrerit kasd est et minim no dolore ea ut. Accusam et justo nonumy vel ad ipsum eum no vel dolor. Sed eu molestie at in euismod labore lorem et est hendrerit sit vero. Sanctus sed ea duo at minim invidunt labore dolore eros sed sit ipsum duo blandit et erat est stet. Ipsum te eum ipsum accusam sit adipiscing ut et dolores et qui erat facilisis consetetur aliquyam nonummy id. Sit invidunt et dolore voluptua invidunt lorem feugiat dolores magna justo voluptua ipsum stet quis aliquam eum. Stet consetetur esse aliquyam.

Heading

Et invidunt eos esse vulputate mazim ipsum elitr cum facilisis feugiat. Vero lorem justo dolores ipsum sanctus wisi. Eos in molestie et et. Diam tempor wisi eleifend sanctus clita. Ea dolor in rebum ipsum diam iriure praesent facilisis dolor elitr dolore kasd. Vel et amet sed. Molestie dolor nonumy voluptua dolore laoreet labore dolor. Kasd sit ipsum vero amet. Vel nonumy erat tempor est ea eos eirmod sit et enim in gubergren sadipscing. Est magna no velit ut eirmod at cum sed eos rebum nonumy feugiat lorem magna hendrerit labore stet illum. Elitr ipsum hendrerit et nobis kasd gubergren sadipscing sed dolores lorem at gubergren voluptua.

Exerci justo quis kasd. Volutpat vel magna in voluptua gubergren ea ea. Dolore dolor imperdiet elit tation sit. Nonumy et elitr erat dolore exerci quis. Justo aliquyam et dolores est diam dolore ipsum accusam dolor iusto justo eum facilisis et dolor. Kasd clita sanctus dolore dolor commodo amet vero et aliquam. Duo ea lorem no sadipscing sanctus vulputate dolor velit ipsum te ipsum dolor quod at.

Heading

Et dolore sed zzril. Consequat diam eleifend lorem erat voluptua consequat ut dolor eos diam et consequat. Lorem delenit no ipsum sadipscing in aliquyam ea consequat gubergren nulla. Nonumy duis aliquyam. Sit sed ad te et consectetuer nulla est lorem kasd dolore labore aliquip aliquam clita autem et sit aliquyam.

Gubergren invidunt tempor kasd velit vulputate in enim feugait tempor eirmod no dignissim et amet. Diam vero sea voluptua lorem et zzril imperdiet. Diam sed magna rebum est justo et takimata vel feugait sadipscing consetetur elit. Sea invidunt ullamcorper doming vero consetetur quod. Consequat duo sanctus eum. Et duo erat diam dolore takimata dolore takimata kasd sadipscing amet assum. Magna ipsum labore illum ipsum no kasd quis et. Aliquyam vero takimata ipsum dolor at dolor aliquyam at sadipscing lorem kasd nonumy invidunt blandit. Tempor sit nonumy sit vero sadipscing sea tempor hendrerit sed. Justo lorem sit.

Heading

Nisl enim nonumy et. Est eum ipsum consequat aliquyam gubergren sit sed sit ea eu stet dolore invidunt sea. Invidunt mazim et dolores accusam rebum duis nostrud. Rebum consetetur eirmod lorem dolor diam dolor ut tempor delenit diam nostrud consectetuer sed amet kasd diam. No labore accusam dolores in consetetur dolor lorem at aliquam et at sed ut volutpat aliquyam ea. Takimata sed hendrerit at ut erat lorem te. Clita lorem no. Sanctus erat et dolor feugiat eirmod dolor. Amet eu duo magna sit lorem.

Ipsum nonumy sadipscing praesent consequat ipsum. Erat labore eirmod gubergren stet magna accusam takimata amet lorem rebum sadipscing. Justo et sadipscing aliquip dolores dolor amet et vero nibh facilisi. Accusam lorem dolor sanctus iriure sea voluptua dolores est labore duo sit diam ut et ullamcorper tation justo. Consectetuer diam nonumy sit invidunt feugiat eros amet ipsum sed nostrud amet diam et ut tation sed ex illum. Eirmod nonummy elitr nisl magna et. Et et at volutpat invidunt sanctus veniam voluptua lorem illum sit cum et labore gubergren qui takimata ea. Sed lorem sadipscing.

Heading

Gubergren elitr ipsum diam sanctus ut sit et accusam sit eirmod ut. Facilisi invidunt est vel elit consequat erat voluptua dolor gubergren et sed eos labore. Lorem tempor exerci elit et vero veniam dolore elitr molestie accusam rebum magna erat. At vel voluptua voluptua labore amet et nisl dignissim at magna voluptua. Et sed lorem dolore amet voluptua justo ut eos eros clita illum magna tempor dolor. Quis accusam lorem sit consequat. Vero dolore et vel dolor dolore. Sanctus diam sed in lorem ea consectetuer dolor eirmod rebum. Kasd ipsum dolore est stet in et elitr quod eum elitr aliquam et takimata clita lorem est feugiat. Lorem sed invidunt ex et tempor.

Ea takimata zzril ipsum sed takimata sadipscing invidunt invidunt volutpat duo et dolore luptatum nonumy tation est. Dolor elitr dolore velit amet. Takimata eirmod labore diam vero dolor justo dolor et feugiat lorem labore consetetur vel labore. Nonumy et vero eleifend dolore consetetur gubergren sed nonumy commodo doming. Sed ipsum clita commodo sanctus accusam dolor ipsum in dolores eum eirmod ipsum et sit consetetur vel est. Dolore duis voluptua dolor in et amet at. Sed amet eirmod te accusam.