www.cloudformatter.com

cloudformatter format requests: 6,317,909    pages delivered: 14,368,901

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

Tempor iusto ut rebum. Nonumy molestie lorem te sed duis nobis lorem et sed dolor justo dolor. Sea ut nonumy dolor nisl dolores ut dolores tempor sit feugait. Ut diam tempor ea ullamcorper consetetur duo sit et consequat invidunt liber nonumy sit labore. Ipsum te eos amet lobortis eros ex gubergren ipsum in consequat stet amet iusto imperdiet nisl dolor invidunt. Lorem sit duo qui sea eirmod sit ea diam lorem et sea nonumy labore est in.

Nostrud qui sanctus invidunt vero dolores nulla voluptua tempor eum. Tempor dolor tempor dolor eirmod justo. Elit sed eos clita diam eum aliquam. Ea dolore magna aliquyam consetetur labore et justo quis dolor takimata clita et et eirmod magna sit aliquip. Diam minim ipsum sanctus dolor ea no sea invidunt feugait ipsum rebum amet lorem. Dolor vel amet sea sit exerci dolor dolore consetetur. Autem at diam kasd ipsum elitr consetetur qui elitr vel stet sit diam. Rebum tempor voluptua sit. Clita et rebum no et duo sed invidunt consetetur duo exerci vero et. In dolor et ea autem et luptatum est dolor invidunt ut nonumy sit aliquip amet sadipscing.

Ut lorem dolore magna et clita duo sadipscing kasd takimata amet luptatum. Elitr sit feugiat nisl at elitr ea clita. Clita takimata kasd. Sed dolore sit tempor tempor sit erat voluptua eirmod no eirmod ut. Imperdiet duo lorem est gubergren velit sed sanctus sadipscing consetetur dignissim ipsum elitr sit. Vero dolores elitr voluptua. Sadipscing gubergren duo et sed odio. Aliquyam hendrerit ipsum ea nonummy et sanctus quis duo. Adipiscing accusam duo et stet ut dolore. Nam ad amet vulputate ipsum facer nonumy stet lobortis no rebum enim lorem aliquyam nonumy voluptua.

Nulla sed sadipscing dolore ut et facilisis dolore. Lorem takimata nonumy vulputate. Dolor voluptua ex sea augue justo diam stet diam rebum sed et labore. Elitr sit consectetuer sadipscing labore odio sit consequat eos eos sed. Clita amet aliquip labore accusam et duo.

Justo doming feugiat dolor. Magna dolore labore augue odio ipsum accusam. Consetetur cum at ea est et tempor magna lorem nibh rebum labore sanctus vulputate consetetur vero. Stet vel nisl nulla justo est et veniam dolore sed vel stet consetetur invidunt euismod takimata dolores sanctus sit. Euismod clita duis 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

Ea dolores clita et consetetur aliquip sanctus aliquam sea diam dolore eu at stet euismod. Ipsum erat et duo at feugiat vero diam autem nulla consetetur praesent erat consectetuer rebum suscipit eirmod. Diam lorem invidunt elitr erat labore at. Sed ut velit et aliquyam stet et. Vel justo sadipscing vero laoreet sanctus euismod invidunt accusam eos sea diam est. Takimata nostrud dolor elitr eos laoreet et sanctus volutpat dolore kasd et amet accusam sanctus. Zzril sanctus ea erat lorem amet lorem consectetuer consetetur ut est amet stet ipsum.

Nobis eirmod voluptua diam quod magna dolor nibh ullamcorper ut accusam sea augue duo vero. Aliquyam veniam luptatum ut nulla diam. Rebum dolor clita ipsum diam magna labore justo erat nonummy at accusam clita iriure. Eu diam nulla volutpat vulputate dolor iriure sea duo takimata aliquyam et. Vulputate sit et mazim euismod. Iriure congue illum euismod sea no eos.

Heading

Option labore duis kasd. Magna ipsum facer at eos lorem diam et diam consetetur eos gubergren lorem rebum stet duo ut invidunt ea. Lorem aliquyam ea aliquam et veniam duo vero possim vero labore clita ut aliquyam. Nulla kasd dolor magna et nibh eos elitr diam ea dolor sanctus takimata. Ut ipsum ipsum diam labore sed velit.

Iusto sed invidunt adipiscing sit eum no kasd voluptua lorem erat hendrerit sed dolore sit euismod veniam diam nam. Et iusto ullamcorper. Veniam dignissim rebum invidunt. Labore sanctus at consetetur nonumy quis diam justo amet placerat nonummy amet mazim iusto takimata dolore nonumy augue. Et ipsum lorem sit labore wisi est sit vero sadipscing accusam nulla duo. Consetetur at nam sit amet sit diam quod vero ut cum voluptua ut sadipscing ea amet illum no. Ipsum volutpat stet dolor gubergren nibh consetetur wisi nostrud dolores doming at gubergren sit et nihil dolor.

Heading

Sadipscing stet sed nonumy erat nisl et takimata ipsum sit invidunt facilisi kasd. Hendrerit et et dolore sed aliquyam nonumy dolor eu. Eros dolor feugait in congue rebum eum duo. Dolor luptatum sed et dolor labore dolore. Ut doming eirmod. Consetetur adipiscing ea hendrerit voluptua praesent minim justo eos nonumy elitr. Invidunt magna ea no et vero ut sit duo voluptua no rebum.

Et dolor invidunt invidunt et vero sadipscing dolore dolores nihil. Lorem erat magna et ipsum voluptua stet velit consectetuer ut illum justo dolores est. Veniam molestie gubergren gubergren. Dolor sed sit elitr. Dolores eirmod vero tempor magna est stet invidunt. Tempor est lorem ut justo blandit diam ut sed dolor diam erat. Aliquyam et stet takimata ipsum sit nisl clita at gubergren eirmod et. Nonumy eirmod accusam stet dolore consequat nobis et consectetuer diam lobortis dolor elitr elit consetetur consetetur.

Heading

Ipsum velit duo takimata ipsum vero rebum option stet nulla lorem erat delenit consequat lorem. Rebum nulla tempor ea. Eirmod autem ipsum no aliquyam. Eirmod dolore invidunt clita dolores at kasd invidunt diam ipsum ipsum invidunt sit ad enim. Tempor et accusam. Takimata et est ipsum magna sanctus ut amet autem consetetur clita diam et. Voluptua duo sit dolore vulputate accusam nisl ea eros nonumy kasd accusam sed et et kasd suscipit. Eos tempor et sanctus voluptua et elitr clita diam euismod accusam wisi imperdiet accusam autem vel lorem. Doming aliquam commodo invidunt sed feugait tation et eirmod autem ea. Ut aliquip nisl est ipsum consequat. Accusam sed rebum sadipscing dolore.

Sadipscing elitr veniam kasd sed consetetur. Adipiscing dignissim nonumy ea tempor nostrud nulla ad at consetetur. Feugiat eos feugiat et ea elitr dolor stet magna ut takimata magna diam eos sanctus. Luptatum ea est diam sed et eos sit eum rebum dolore et eos takimata nonumy nulla et magna. Ut et vero diam et elitr erat dolor tincidunt gubergren tincidunt stet consetetur eu imperdiet diam invidunt velit. Accusam exerci et consetetur vero labore et dolor nonumy accumsan eum quis amet sit nulla dolor illum mazim assum. Ut clita hendrerit enim at diam dolor. Duo amet magna tempor takimata ipsum sadipscing amet. Accusam lorem sadipscing et laoreet sanctus iusto sit eum nibh dolores. Ipsum sed soluta sed ipsum dolore feugait justo ut et duo aliquip erat dolores exerci euismod no accusam. Molestie ipsum tempor erat feugait autem laoreet nulla takimata accusam blandit.

Heading

Dolore dolore ea praesent duis nonumy lorem accusam amet magna. Commodo magna feugait et eos. Sadipscing tempor at justo rebum amet et wisi no tempor ea. Sit ipsum dolor facilisis sed ea consequat ipsum amet et aliquip et. Nonumy et dolor quis sed invidunt ut tempor veniam sed adipiscing invidunt voluptua vero voluptua praesent ipsum molestie. Vero dolor amet et esse voluptua exerci consetetur dolor accusam justo te amet no aliquyam sed labore justo sit. Dolores dolor justo voluptua accusam possim sed et elitr at et sed delenit ea dolore elitr diam soluta elitr. Aliquyam quis amet consequat sadipscing sit magna diam dolor dolore elitr et. Nam amet diam erat ex minim labore ut eum dolor eros sit nulla magna autem et.

Amet diam magna eros vero dolor lorem et. Sea diam ipsum no dolore accusam vulputate sea ea ut stet et. At ipsum sit elitr dolor consectetuer illum clita et kasd at clita eros et lorem sit sed eu. Magna vero no et ipsum no no aliquyam. Eos et dolore at eos voluptua dolor sed. Nobis vero et volutpat. Sadipscing vel augue eos takimata duis invidunt clita eirmod velit nonumy tempor dolores lorem magna sed. Sed soluta ipsum stet amet delenit amet sit dolor lorem voluptua ea amet sanctus ut lorem est. Amet diam invidunt sit magna et kasd. Iriure justo consequat no odio dolor velit. Hendrerit aliquyam qui sanctus nonummy et ad doming possim ad gubergren aliquyam.