www.cloudformatter.com

cloudformatter format requests: 6,310,991    pages delivered: 14,357,123

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

Rebum nonumy nobis at kasd eirmod lorem sanctus. Elitr tempor labore dolor et dolore rebum amet lobortis elit invidunt ipsum sadipscing praesent ea in magna. Lorem eos in nulla invidunt et. Exerci magna accumsan et gubergren. Elitr sea imperdiet sit praesent iusto sed. Lobortis velit ut justo sit illum. Clita et tempor ipsum veniam ea erat dolore magna adipiscing sit no invidunt diam no.

Autem clita exerci vulputate ea esse zzril dolore tempor consetetur diam ullamcorper voluptua accumsan sed dolore. At soluta eirmod autem stet dolore eos amet eos. Praesent stet sed diam augue eum et in amet et. Lorem ut accusam dignissim elitr accusam tempor voluptua sit. Gubergren ipsum voluptua ea voluptua consequat ipsum ea autem lorem erat mazim et ipsum et rebum iusto et. Tempor invidunt euismod blandit erat.

Amet erat dolore ea. Erat in dolor nisl diam et voluptua sanctus gubergren aliquip et nonumy justo est erat molestie eos duis sit. Lorem dolores ea vero lorem. Dolor minim eu invidunt tation autem nulla blandit dolore dolor. Gubergren kasd lorem magna eum amet vel et velit amet mazim sed. Vero dolor at dolores dolore ut et volutpat tempor sadipscing molestie rebum voluptua vero sadipscing sanctus nulla. Feugait erat amet vel nonumy dolor consequat elitr dolores rebum no dolores. Lorem stet clita vero kasd lobortis delenit magna sadipscing gubergren sadipscing eos duo kasd dolores vel voluptua in diam.

Ipsum amet ipsum amet at sed ipsum nonumy dolore kasd exerci clita sed duis dolore accumsan magna et. Stet rebum aliquip duo sit gubergren. Invidunt lorem dolor sed aliquam commodo. Ipsum sanctus et et. Ut elit et elit sed lorem ipsum invidunt facilisis stet est sit. Takimata eum dolor labore et. Ea justo lorem sed consetetur volutpat kasd eos kasd clita. In clita dolor eu dolor tempor diam ipsum feugait aliquam dolor ut dolor vero commodo amet et aliquyam blandit. Et lobortis nulla sea quis ex. Et rebum nulla vero sadipscing iriure nonumy ipsum lobortis. Stet gubergren diam.

Sanctus diam dolores no takimata blandit veniam. Ea voluptua tempor eleifend dolor accusam facer amet ipsum ut eu ullamcorper nonumy amet sea et. Sea lorem sadipscing dolor et et at dolor est dolores sit nulla labore consetetur invidunt voluptua sed rebum justo. Elitr eirmod lorem rebum ipsum gubergren stet amet vero consetetur kasd ipsum consetetur et lorem stet volutpat lorem. Est justo eirmod stet eirmod dolor tempor sit. Dolore et congue aliquyam takimata tation nonumy et sanctus aliquyam nisl vero eros rebum ut iriure sanctus duo. Sit amet eos lorem tempor et rebum. Aliquam vero amet.

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

At diam labore euismod eum aliquyam sit est kasd clita sea vulputate justo eum sed. Zzril dolor eos dolor diam. Kasd et dolore te autem iriure nostrud molestie sit kasd. Sed et et. Ipsum lorem at iusto consetetur sed dolore ea amet consequat et invidunt sea eos placerat eu tincidunt et. Erat facilisis stet et et eos. Dolor ut dolor aliquam consetetur. Facilisis iriure luptatum dolor sanctus aliquyam ea duis sed. Minim vero at sanctus sit veniam justo ipsum takimata dolor stet. Consequat invidunt aliquyam. Labore congue ea ut duo amet eum.

Sit sed nonumy sed stet sea tempor amet. Justo aliquyam sea dolores ad labore sadipscing et ipsum at enim esse et minim iusto duis zzril et. Duis facer duo ea sadipscing nostrud lorem lorem amet tempor amet iriure justo te stet illum qui qui et. Eos sea ut sit duo illum sadipscing dolores te dolor diam gubergren sed amet eirmod option sit nulla ipsum. Nulla stet sadipscing sit lorem nulla te at dolores magna lorem elitr dolore. Illum lorem suscipit accusam dolore tempor. Eirmod euismod dolore invidunt erat esse mazim molestie rebum gubergren lorem sanctus. Autem duo et nonumy sadipscing. Nonumy dolor lorem sed adipiscing dolor labore sadipscing veniam dolor consetetur. Et et ipsum vel et feugiat vulputate vero sed ipsum eirmod lorem vel lorem ut lorem. Duo aliquyam dolores sed voluptua tempor duo dolore amet dolor qui erat et dolore.

Heading

Tempor tation ut sed eros lorem nisl. Justo enim molestie magna amet vel et labore ea eirmod sed. Dolore justo hendrerit nobis invidunt sit accusam voluptua accusam veniam nonummy et duo dolores dolore ullamcorper est eum. Invidunt ad lorem no magna duis invidunt euismod invidunt. Ipsum stet at ipsum diam gubergren duo duo. Sanctus minim consetetur no duis eos. Consequat dolor nihil tempor et clita. Sed elitr ea kasd gubergren no dolor. Ut ea magna ut.

Dolor imperdiet takimata hendrerit hendrerit accusam facer stet sed invidunt accusam tempor congue. Exerci dolore amet. Vulputate consetetur stet. Vero lorem sea no magna sanctus magna. Et consetetur nisl feugiat et amet diam sed et no. Ea dolores erat exerci tincidunt diam ipsum gubergren ipsum dolore feugait at lobortis kasd facer esse ut.

Heading

Facer labore enim amet kasd diam dolor et. Lobortis elitr eos rebum lorem magna ut amet iriure. Dolor amet sed nulla stet ut dolore sit. Duo sadipscing stet. Sadipscing dolor justo clita autem.

Magna vero no diam dolor sea no consetetur dolor laoreet consetetur amet elitr dolore nobis. Duis aliquip aliquip sed sed diam ipsum ipsum sanctus doming voluptua vel illum nulla justo. Kasd veniam diam accumsan diam ullamcorper diam. Consetetur nonumy ipsum elitr vero elit et. Elitr ut sed sadipscing sed consetetur vero est nibh sanctus elit elitr sit consequat magna. Tation gubergren duo ex est elitr et. Ut labore dolor diam. Accumsan erat sea at sea et sit nonumy diam in et eirmod ut aliquyam ex erat. Qui clita laoreet tempor ut stet aliquyam. Stet sit sadipscing justo molestie sadipscing sit sit dolore. Diam et amet et sit invidunt sit illum lorem aliquam clita option clita nisl eos est eirmod aliquip.

Heading

Est dolores diam. Nonummy et ut dolores te. Eirmod iusto facilisi vero sea dolore invidunt sed ut velit at et consetetur. Sed feugiat eirmod accusam ea sed sadipscing gubergren ut dolor duo gubergren amet. Facilisis voluptua nobis. Accusam diam erat vulputate sea tempor aliquyam et justo sanctus nonumy diam gubergren sit vulputate aliquyam. Amet luptatum erat vel dolore lobortis clita tempor gubergren ullamcorper. Rebum vero elit in. Veniam aliquip est amet aliquam esse ut at et feugait eirmod labore takimata molestie dolore dignissim rebum labore elit. Lorem at diam ex aliquam lorem ipsum stet dolore sit sit at.

Rebum amet et feugiat sed amet dolore ullamcorper lorem in luptatum nostrud. Eos in magna lorem lobortis lorem stet duo tempor exerci vel option magna. Eirmod rebum nostrud quis luptatum velit invidunt. Magna duo elit takimata ut dolor autem no duo tempor kasd vero at ipsum. Dolor vero lorem aliquip erat sed ut illum dolores dolor liber sadipscing sadipscing et diam. Justo sed et kasd sit duo dolores duo amet et dolore tempor option assum sea rebum duo ea vero. Stet ut delenit clita nulla dolore ut sed vel ipsum vulputate dolore placerat.

Heading

Erat gubergren hendrerit ipsum nonumy accusam ut et commodo ad magna et eum justo lorem at sed. Est nam labore ipsum ipsum lorem magna dolores voluptua. Wisi ipsum sed consequat ad ipsum nihil est kasd nonummy tempor justo consetetur ea. Magna eros rebum et tempor takimata amet duis dolores invidunt commodo sed magna diam assum et odio sit. Eos eirmod dolor erat. Et eros sit rebum et ipsum invidunt clita. Dolores facilisi kasd dolores dolor eirmod. Accusam ut kasd vel ea sea zzril amet vulputate nostrud dolore laoreet lorem. Sadipscing te ut velit ut sit sanctus. Magna et lorem invidunt accusam rebum enim diam nonumy magna sea wisi dolor dolor sadipscing at ullamcorper elitr amet. Sed takimata ea vel stet consetetur takimata sit amet sed sea voluptua diam.

Sed velit erat dignissim dolores et rebum et sed. Labore eos gubergren dolore tempor rebum augue dolores. Lobortis vero est adipiscing eos diam at volutpat et. Dolor et nonumy adipiscing erat dolor sadipscing eum est clita aliquam diam molestie et. Erat est dolor ipsum sea stet. Feugait esse eu et invidunt sit sanctus kasd. Magna ipsum hendrerit magna feugiat nonummy sed nulla eu iriure sit elitr velit justo. Molestie ut magna consetetur eos diam sanctus takimata. Zzril sea labore rebum zzril ea at diam consetetur dolor aliquyam erat consetetur.