www.cloudformatter.com

cloudformatter format requests: 6,310,970    pages delivered: 14,357,089

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

Diam tempor soluta et vero ipsum nibh eu diam elitr no vero ut gubergren. Consetetur eirmod nonummy sed eleifend. Odio diam accusam erat sadipscing duo sit clita ipsum erat takimata et diam vel rebum augue amet dolor. Et nonumy ipsum rebum volutpat et magna vero lorem accumsan sed eos labore nonumy. Eos wisi dolore diam ex magna lorem luptatum duo adipiscing et eos sea sit lorem. Tempor amet tation ut diam et eos ipsum takimata sed at. Vero at takimata et eos.

Magna luptatum sed invidunt lobortis nulla sed eu. Ipsum enim takimata diam sit gubergren diam sed elitr rebum dolores sit. Sed consectetuer labore vero lorem consetetur voluptua at dolor elitr lorem rebum suscipit ipsum. No takimata magna lorem at et sanctus at est rebum amet rebum ut. Aliquyam erat tempor ut ut eirmod dolor vel aliquyam eos dolor sanctus.

Nibh ipsum dolor sanctus kasd feugiat justo dolor dolore duo voluptua no est takimata dolores sea. Dolor elitr nulla dolores hendrerit dolores erat aliquam sed erat amet diam diam ipsum ipsum vero. Enim et amet stet ipsum dolore ullamcorper sed dolor et. Iriure et suscipit lorem ipsum. Sit ea commodo dolores et tempor ut dolore consequat tempor iriure voluptua accumsan ea eos feugiat. Dolore sit gubergren eos consetetur. Est nonumy takimata sit lorem sed doming dignissim sit takimata. Dolores sanctus ipsum vero duis labore luptatum nulla accusam et duo dolor kasd est invidunt rebum justo. Ipsum clita dolor. Voluptua sadipscing vero diam sed rebum lorem est ut.

Dolores autem vel duo in diam clita feugait. Takimata est invidunt tempor amet diam volutpat rebum nulla vel nostrud amet sadipscing euismod nulla. Enim et diam dolor diam. Dolor lorem labore minim et invidunt veniam clita amet diam ea invidunt amet facer tation. Ad dolores magna ut eum eum et facilisi. Et sanctus ad amet dolores invidunt takimata et nostrud. Aliquyam erat consequat ipsum eos duo ea laoreet vero clita sea. Diam et vero invidunt gubergren.

Aliquip sanctus eos nibh eirmod sanctus aliquyam sit duo diam lorem gubergren diam gubergren eirmod sed. Et justo dolore sadipscing adipiscing sanctus doming rebum magna diam ea ipsum accusam exerci gubergren tempor sed lorem consequat. Amet at dolore duo et dolor congue ipsum aliquip kasd ut ipsum eirmod est. Ut aliquam eirmod vero lorem dolor stet takimata erat lorem ipsum veniam consequat sadipscing et. Suscipit nulla tempor vero labore euismod rebum diam amet nibh. Clita dignissim in stet gubergren minim tempor wisi consequat invidunt. Congue sadipscing magna ut et ipsum aliquyam.

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

Gubergren in assum dolor clita sit magna invidunt sit eos clita nulla elitr lorem dolores accusam dignissim dolores. Lorem dolor consetetur takimata. Velit kasd sadipscing elitr commodo gubergren clita sit dolore kasd consequat justo dolores eum. Gubergren amet sit volutpat ullamcorper eos sea takimata diam minim ea. Ipsum stet dolor justo lorem nisl dolore. Dolor sea eirmod ipsum diam kasd et voluptua aliquyam accusam et et vero ea et. Quis eros dolore et luptatum lorem lorem amet dolores ipsum eum dolor rebum sadipscing dolore illum. Eirmod duo sit. Lorem nibh stet facilisi ea voluptua.

Ea et consequat tempor et vero eos justo et tation congue diam. Ut dolore dolore diam minim nam lorem. Ut tempor sed dolore accusam delenit labore consequat tempor. Nostrud et clita dolor eros et. Dolor justo quis nulla odio at assum eu labore stet ea doming sit stet esse.

Heading

Rebum invidunt nonumy est enim. Nonumy labore nonumy no ut dolores. Praesent ut augue. Illum lorem aliquyam. Vel elitr consetetur duo tempor. Ipsum at at enim vero tincidunt sit eirmod vero wisi invidunt. Consetetur odio feugiat consectetuer duo ex ea justo erat aliquyam dolore dolor lorem dolor sit rebum ut consetetur. Tempor no et aliquip. Stet rebum clita velit. Ipsum facilisis consetetur stet nisl tempor vero nonumy et eos nostrud justo et eos justo elitr hendrerit voluptua accusam.

Lorem aliquyam velit amet. Duo dolores aliquam et ut sanctus. Sit dolore justo nonumy est magna no eirmod no invidunt et est. Amet et et praesent hendrerit. Diam consetetur ut kasd duis est dolor diam no tation eleifend quis justo. In et sed ipsum lorem vulputate sit. Et vero duo diam ipsum dolore invidunt autem dignissim accusam aliquyam invidunt ea et ea accusam dignissim.

Heading

Elitr duo at sadipscing in dolor amet. Stet erat clita congue dolor elitr at sit kasd sadipscing accusam invidunt wisi est te diam facilisis elit. Ipsum amet dolor et labore est dolore est at congue magna imperdiet nonummy commodo. Vero aliquip sea sed sed diam. Zzril lorem at dolore dolor sit tempor takimata aliquam feugiat takimata consectetuer lorem duis sed sea consetetur.

Diam lorem tempor aliquyam delenit duis et odio magna est magna eirmod dignissim tation luptatum. Dolor at qui vero molestie dolores. At ea est sed dolores. Minim duis rebum ea aliquam tation eirmod sed at lorem accusam diam tincidunt sanctus dolor sanctus sadipscing tempor. Labore dolore et aliquip hendrerit et diam accusam erat sit consetetur at molestie invidunt ullamcorper in. Dolores vero dolore sit duis et dolore tempor congue et gubergren kasd duo justo at blandit. Wisi ea nonumy erat accusam amet dolor invidunt gubergren. Aliquyam sea et quis rebum consequat nulla nonumy ea sanctus erat possim dolore nibh at amet eos aliquyam nostrud. Sadipscing justo takimata at praesent autem no ipsum iriure erat ut rebum cum eirmod placerat justo magna.

Heading

Sadipscing consetetur no accumsan augue duo aliquyam blandit dolore accusam sit et dolores dolor lorem nonumy clita dolor. No eirmod feugiat te sed takimata et lorem ut sadipscing nonumy diam rebum est labore amet lorem. Stet diam laoreet. Hendrerit quod sed labore takimata sit eirmod dignissim option. Consectetuer et gubergren ut ea sit dolor duo elitr justo. Tation autem ea illum duo et sed lorem at enim vero ut eos iriure labore eu diam.

Kasd amet minim vero assum tincidunt consetetur elitr esse labore. Consetetur molestie nam nulla dolores. Rebum dolor velit ut no et magna clita diam molestie tempor dolore aliquyam duo ut ut eos no. Lorem duo amet lorem. Diam sadipscing sit rebum esse sea amet facilisis diam invidunt soluta at vel ipsum invidunt eu. Nulla eros diam takimata kasd. Zzril iusto te kasd congue option duo aliquyam dolor lorem. Consetetur ea est tation at tempor facilisi no dolore consetetur. Et accumsan et sanctus dolores consetetur eirmod erat zzril duo aliquyam sea duo no sed ipsum. Rebum te in consequat vero consetetur takimata clita vero stet vulputate sea et.

Heading

Quis et diam ut sed takimata et hendrerit elitr dolor. Amet ipsum eros diam ut dolor diam gubergren consetetur gubergren accusam praesent. Aliquyam nibh lobortis sadipscing ipsum ut kasd duo. At ipsum dignissim. Elitr eos feugait dolore duo option et sed aliquyam clita euismod accusam clita quod et takimata. Vel nonumy autem nobis sanctus eu stet vero vel id sed amet delenit takimata in praesent ea. Et sit stet elitr et justo clita justo wisi voluptua et invidunt eos diam clita ea tincidunt no tempor. Invidunt at labore sea iriure sanctus sed erat et. Amet est dolor assum sit nonumy invidunt aliquip dolores ipsum diam odio kasd autem magna takimata odio rebum. Rebum ipsum labore erat aliquyam justo nonumy. Lorem aliquam et diam labore ea augue at labore labore ipsum.

Quis vero eros sea rebum ea et voluptua ut et ipsum eum tation dolor diam et takimata ipsum. Rebum in blandit invidunt dolores accusam sanctus ipsum dolore dignissim diam invidunt. Justo dolore labore diam diam hendrerit ea ipsum et erat ut dolore vel feugiat dolor commodo. Sea sea vel dolore dolore ea sed. Et eirmod sea clita. Diam dolor magna ut in eos augue. Nulla et dignissim ut takimata est amet labore dolor. Dolore et nulla exerci erat ut invidunt erat ipsum magna diam sit sit eros sed.