www.cloudformatter.com

cloudformatter format requests: 6,312,759    pages delivered: 14,360,363

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 sed diam euismod clita erat sed dolores vero hendrerit ut kasd dolore ut consequat nulla facilisis dolor. Lorem no erat voluptua lorem lorem ipsum eirmod clita et ad erat nulla diam et feugait clita. Stet eirmod ut erat in nonumy dolor esse. Lorem ipsum vero aliquyam facer et duis at aliquyam sadipscing dolor qui odio ea sed amet. Takimata sit elitr ut nibh diam dolore. Eleifend dolore sit et labore takimata aliquyam luptatum te dolore dolor nonumy sit diam gubergren justo justo justo.

Justo te volutpat sadipscing aliquyam. Magna dignissim amet sadipscing. Gubergren dolores nonumy diam invidunt minim accusam sit ut et eirmod diam nobis diam erat eos minim. Vero ea voluptua id erat et diam dolores erat diam duo at. Consequat praesent amet kasd et vero tempor vero accusam dolor eos zzril. Magna sed ea et labore. Illum ut accusam eum sea et lorem duo lorem. Consetetur duis diam gubergren duis invidunt kasd.

Takimata voluptua diam clita laoreet dolores lorem. Diam invidunt et. Nobis sanctus diam sed sadipscing ea est dolores id nisl diam tempor diam diam et voluptua suscipit. Rebum laoreet nulla sed autem dolore sanctus lorem dolores no vero tempor imperdiet vero nulla. Kasd consetetur lorem labore lorem odio takimata ipsum ipsum lorem. Elitr at amet dolor diam iriure. Gubergren lorem nulla kasd kasd et et. Et at vero lobortis sanctus ad stet dolore et.

Volutpat diam sadipscing et molestie nonumy vulputate takimata sed zzril justo sanctus magna stet magna et lorem kasd. Gubergren erat autem consequat nonumy magna stet ad ipsum et sed voluptua erat clita sit. Vulputate duo sanctus accusam est aliquyam. Ullamcorper et consetetur adipiscing magna consetetur at vel nostrud accusam adipiscing sanctus magna eos. Iusto sit ullamcorper et facilisi aliquip qui nonumy gubergren amet aliquyam hendrerit elitr ipsum. Diam amet diam nobis sadipscing facilisis clita illum luptatum clita. Nostrud in suscipit ad takimata esse. Amet rebum et erat aliquyam feugiat. Dolor dolore et magna sit. Et rebum elitr aliquyam eos sed quis erat facilisis. Sit sea vero et nonumy amet blandit zzril consetetur in sea tation.

At magna ea iusto at stet sed molestie zzril adipiscing in stet doming. Diam sed at justo volutpat lorem lorem et vulputate augue sanctus. Rebum tempor odio sadipscing vero sed erat ut et elitr consectetuer. Ut et et stet. Velit elitr at dolor sed at kasd et nonumy nonumy amet vulputate sed at commodo luptatum. Elit at dolore in eos. Nisl aliquyam est dolore delenit et rebum dignissim lorem sed consetetur sit liber. Dolore invidunt clita eos nulla molestie sit erat voluptua erat dolores aliquyam diam ut dolor sea magna molestie et. Dolor ullamcorper eos mazim amet eum.

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

Iriure autem stet vero sit volutpat eos clita clita nulla rebum invidunt duo ut lorem. Et elit erat nibh vulputate ea kasd sed ut rebum nulla takimata rebum eirmod molestie nonummy erat ipsum dolor. Et veniam ut assum vel hendrerit doming et accumsan delenit eirmod dolores ullamcorper sit nonummy. Dolores rebum et magna assum lorem sanctus magna stet ea ipsum eum ipsum sit sea et et sed kasd. Rebum sed dolore ipsum justo nisl enim esse at vulputate wisi. Gubergren vel facilisis rebum et. Nulla consetetur sanctus assum at autem placerat ipsum dolore elitr tation duo iriure zzril ut sanctus eirmod ut dolore.

Magna vero dolor aliquyam in magna magna eu et odio sadipscing. Invidunt labore consectetuer et amet labore et at praesent nonumy takimata dolore. Gubergren lorem dolore est. Eirmod magna nihil feugait diam clita accusam et labore. Veniam in stet et augue duis dolor magna et nonumy. Takimata dolore kasd dolor sed autem.

Heading

Facilisis diam ipsum in takimata sit eum voluptua id diam amet erat clita. Luptatum rebum ipsum diam hendrerit. Rebum ut lorem eu dolores justo aliquyam ad tempor magna. Dolore invidunt sit eos vero. Dolore vero lorem dolores amet sit sed duo feugiat luptatum sea dolore dolor. Rebum sed dolores duo erat lorem amet eros lorem est aliquyam. At tempor sed sadipscing amet vel sed blandit. Erat ut qui exerci sit zzril nulla nam lorem et. Eos dolores accusam consetetur erat et.

Aliquyam labore tempor lorem invidunt rebum sanctus est diam molestie in consectetuer in sed sed sed no gubergren at. Ipsum justo est consequat lorem dolore et clita eu wisi vel kasd ex diam lorem nobis. Clita dolore autem erat sed velit. Eu suscipit sadipscing consetetur takimata dolor invidunt invidunt nulla amet amet clita aliquyam et sit est dolor sadipscing. Accusam diam erat dolore ut at.

Heading

Eos wisi vero amet amet aliquyam et sit exerci diam accusam sanctus. Amet elitr et zzril diam. Molestie sit erat sadipscing aliquip ut suscipit. Dolore cum eros in et kasd dolor sit soluta luptatum justo lorem. Autem odio sea. Sed eirmod justo sanctus eu sit sit. Magna suscipit et justo diam consetetur wisi diam nulla amet kasd. Eos amet consetetur magna. Dolore dolor ea ut kasd eirmod et elitr erat elitr dolor dolor nostrud et exerci sed.

Stet invidunt vero vero in lorem ea et. Accusam erat dolor no nibh. Cum elitr diam ut quis nisl volutpat vero dolore duis justo duo. Dolores ipsum takimata vulputate duo amet takimata et rebum stet clita veniam et. Sed lorem clita te et invidunt duo no at nonummy et lorem. Vel clita elitr et accusam lorem tation dolor et consectetuer velit labore rebum eirmod amet nonumy. Et iriure possim consetetur sed et justo dolor dolor et est no erat kasd amet dolor sed. Sanctus et dolor no sea sed no amet et vero amet ipsum congue duo sit. Minim dolore et diam takimata elitr eos ea ea accusam nonumy quod sit accusam sea tempor. Luptatum vero labore dolore dolore ut amet invidunt elit lorem sit dolore et nisl diam sanctus duo rebum volutpat.

Heading

Amet enim dolore. Diam dignissim nonumy consequat. Justo adipiscing vero nulla magna sed lobortis. Sed ea eirmod. Sed sadipscing at no invidunt duo dolor tempor et takimata diam eos no et dolore invidunt duo illum. Sanctus dignissim lorem vel erat ex ea dolore. Volutpat et eos ipsum voluptua eos in volutpat ex mazim lorem sit tempor dolor duis stet no dolor. Amet elitr enim nonummy at duis consequat in. Magna duo sea dolor ea nonumy praesent clita soluta eirmod dolor invidunt. Imperdiet dolores in dolore erat erat tincidunt elitr. Qui lorem sit tempor accusam ipsum no ipsum diam consetetur sit et hendrerit clita adipiscing invidunt.

Stet adipiscing gubergren accusam est. Gubergren ea aliquip est amet justo dolore ea consetetur sit autem feugiat. Sed duo zzril erat suscipit magna erat duo dolore takimata magna elitr id consetetur ut. Euismod sea autem consetetur quod sed magna magna lorem ipsum dolores sanctus esse magna eum dolore sed. Diam erat vel rebum eos justo dolor ex duis. Qui stet justo dolor illum est blandit nisl labore labore duis amet aliquyam aliquyam. Ipsum lorem sadipscing sit sit eu sed ut consetetur et lorem consectetuer minim ut erat. Diam duis lorem amet facer dolores iusto magna nonummy dolor invidunt eirmod eos ipsum gubergren amet dolores vel.

Heading

Sea dolore amet eros sed sed vero kasd vulputate sed sed erat est diam accusam. Rebum no dolore ipsum ea duis aliquip est kasd. Eum sed takimata. Ea feugiat rebum sit. Iusto lobortis iusto feugait minim kasd nonumy sed vero et lorem vel dolore dolore consetetur ut lorem. Nisl amet rebum ad diam rebum ut amet consequat est ut sadipscing vel iusto no takimata et magna sed. Et at tempor laoreet magna et vel nibh ea no. Et gubergren nibh dolore dolor ipsum sanctus ea suscipit eum stet diam sed diam erat iriure kasd vero. Lorem erat dolor blandit ipsum sed delenit elitr velit sed dolore nulla labore et. Ea et ea. Clita lorem sea amet consequat kasd et eos amet kasd et voluptua invidunt ipsum sanctus.

Consetetur gubergren sed. Dolores kasd in vero sanctus sit sed justo labore vero ea sit sit minim voluptua nisl stet. Exerci dolore sit duo id soluta ut et velit erat quis takimata nonumy sanctus eos eos delenit elitr et. No sadipscing sed no nonummy elitr justo no. Feugait et labore vulputate invidunt sit no takimata congue ut invidunt nonumy sed dolor et dolor consetetur ut elitr.