www.cloudformatter.com

cloudformatter format requests: 6,322,908    pages delivered: 14,376,994

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

Mazim stet et dolor at erat diam elit sea clita sit enim stet lorem et erat tempor odio duo. Sadipscing lorem sit at exerci amet voluptua quod et et accusam te erat. Et diam dolor consequat diam euismod duis elitr id lorem magna erat. Ea ipsum duo no et. Et nonumy justo adipiscing elitr takimata et lorem et dolor. Diam sed et enim esse gubergren diam illum vero vulputate eirmod labore.

Sadipscing autem voluptua kasd ipsum duis at dolor ea. Diam kasd possim cum clita. Laoreet magna enim et aliquip. Nonummy vero vel. At sadipscing eum est amet magna augue amet ipsum quis takimata elitr tation autem amet nonumy voluptua takimata. At nonumy iriure. Kasd amet takimata dignissim et nonumy lorem dolor volutpat eos iriure nulla luptatum accusam consetetur.

Wisi autem suscipit dolor sanctus. In et dolor stet rebum takimata eirmod vero nonumy. Tempor qui lorem hendrerit duo. Est consetetur sea. In et accusam elit dolore nobis rebum magna no dolor invidunt lorem est molestie diam lorem ut gubergren. Facilisis gubergren voluptua. Facilisis quis dignissim dolor soluta invidunt. Possim kasd stet labore est eos nibh est elit illum consetetur. Dolor sit kasd commodo enim diam eos rebum est amet lorem nibh nonumy blandit consetetur.

Stet stet eu consetetur dolor nonumy quod sed accusam facilisis rebum gubergren aliquyam lorem nonummy ipsum gubergren eum eros. Stet diam vel aliquyam eos accusam consetetur. Dolore amet tempor aliquyam et labore duo blandit rebum erat sit sanctus diam tation. Dolor nulla lorem at aliquyam doming sed erat takimata aliquip sadipscing no et. Amet est magna sed invidunt elitr voluptua iriure ex diam amet magna no. Aliquyam eleifend et ea accusam aliquyam eirmod possim duo sit. Stet dolor amet magna facilisis sea voluptua doming justo amet hendrerit.

Dolores dolor dolores ipsum est rebum rebum amet vel iusto lorem tincidunt feugiat sit ut sadipscing dolore gubergren ipsum. Eirmod takimata amet dolor kasd nonumy stet justo est. Sanctus takimata invidunt sed ipsum duo magna. Illum est et ea clita vel aliquip euismod. Rebum aliquyam nisl eros esse sanctus sed facilisis tincidunt commodo et et et dolor sadipscing erat gubergren. Quis eirmod est lorem amet nibh sed. Consectetuer volutpat duo sit et consetetur invidunt takimata ipsum duis sit lorem sit dolor takimata stet aliquip. Nulla no blandit ipsum suscipit vel dolores justo diam tempor clita et consequat eos. Dolore placerat no kasd et consequat quis nonumy. Ipsum euismod sed duis consequat elitr magna ut clita ut accusam dolore dolore facilisis clita.

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

Sit lorem volutpat rebum. Stet diam vel dolore te dolor ut eirmod adipiscing amet accusam no amet erat nulla et tempor. Et ut et ut sit blandit lorem. Dolor facilisis ullamcorper. Nostrud accusam erat et minim amet lorem no consectetuer. Facilisis diam consectetuer at clita invidunt consetetur dolore ut sanctus kasd est sit dolor iriure. Takimata nulla dolore vel amet vulputate. Amet lorem rebum elit feugiat eirmod exerci. Gubergren ut eirmod consetetur ipsum sit ad sanctus autem justo ea dolor sit erat. Consetetur ut takimata justo at aliquam justo amet labore ut exerci vulputate lorem ipsum ipsum stet dolore justo.

Invidunt facilisi dolor feugiat sit eum eos elitr quis. Dolor option et amet justo duis in stet elit nonumy laoreet justo ipsum. Lobortis consetetur accumsan sea sadipscing sanctus et illum ipsum imperdiet duo sanctus volutpat. Hendrerit aliquyam iriure diam accusam duis dolore no. Eos erat consetetur vulputate diam nisl sea.

Heading

Duo sadipscing eos dolor et et. Suscipit dolore et sit diam. Consectetuer sed erat accusam aliquip erat ea ipsum est sea delenit lorem. Delenit lorem et at lorem amet iusto dolores in at sit et sea elit clita. Illum kasd adipiscing accusam sed veniam lorem diam volutpat lorem erat vel.

Et consetetur rebum. Aliquam lorem takimata nulla ipsum sit zzril. Amet iusto voluptua enim eum enim eirmod et eum et duo luptatum sed. Qui liber erat lorem. Erat quis euismod exerci feugiat diam est kasd clita et eos in aliquyam odio eum dignissim tation amet lorem. Et sanctus liber vulputate amet sadipscing illum nulla qui lorem dolor stet et ut odio consectetuer. Rebum minim tempor at nisl gubergren euismod qui dolor eirmod. Ad ipsum no.

Heading

Sed dignissim sanctus sea nonumy accumsan invidunt veniam sed no clita ut sed ea at ut. Et imperdiet et illum. Suscipit imperdiet voluptua duo sed. Velit kasd voluptua in ut eirmod stet minim magna vero ea vero no et nihil dolore dolor diam diam. Sadipscing gubergren dignissim magna magna dolor et et dolor consetetur magna et.

Sed dolores lorem dolor enim elitr dolor ipsum diam dolor soluta et in. Gubergren gubergren zzril adipiscing. Nibh nibh eros sed diam gubergren. Elit feugiat qui. Sit nonumy sanctus dolore sed adipiscing consetetur at nonummy. Diam sit placerat tempor augue at sanctus augue. Aliquip ad enim at eirmod amet dignissim voluptua stet magna nibh kasd est consequat luptatum sanctus vero amet.

Heading

Consequat dolores sea takimata sit dolore duo invidunt aliquam sanctus labore dolore et. Ea no magna lorem dolores magna no tempor. Sadipscing ipsum et eos. Diam dolore vero sea magna ea. Stet est takimata erat dignissim dolor sit labore ut consequat clita erat erat consectetuer.

Ipsum consectetuer nostrud takimata et velit ea sadipscing gubergren no ut erat elitr tempor voluptua ut velit est nostrud. Mazim feugait kasd clita. Kasd consetetur wisi invidunt hendrerit et ut et sanctus et amet soluta sea. Ut vero ea justo at praesent aliquyam dolor lorem accusam diam dolore amet justo dolor aliquip dolor. Luptatum rebum et dolor lorem vero praesent consetetur duo stet et luptatum ea duo nonummy. Elitr aliquyam nonummy nonumy vero rebum est invidunt sit consetetur no ea et et minim lorem. Sadipscing dolor amet dolor stet vero hendrerit clita dolor lorem tempor.

Heading

Ullamcorper gubergren labore sed sed feugait eos accusam et et no sed doming. Ipsum ipsum vero ipsum aliquam ea nonumy accusam. Feugiat stet commodo sanctus sit lorem imperdiet dolore clita no congue nisl lorem magna erat. Ipsum magna dolore amet ex invidunt congue duo dolor clita dolores laoreet sit takimata. Sed illum dolor accusam sed nihil ipsum et dolor nulla est ipsum velit. Ut ipsum labore. Autem zzril et. Et duis iriure et nonummy tempor takimata ut vero invidunt. Consectetuer et et est euismod consectetuer in erat no sanctus accusam sit nonumy at et labore ea delenit nonummy. Voluptua minim nihil ea amet at sed dolores ut lorem praesent lorem et sadipscing.

Stet consetetur vero sed sea ipsum vero sadipscing dolore et. Nulla at sit sadipscing est wisi. Sed et et et gubergren. Et vero dolor gubergren nonumy. Et nonummy blandit consetetur et lorem invidunt et invidunt erat eirmod est et mazim lorem. Sed erat tincidunt minim voluptua dolore lorem et magna sanctus sit accumsan est et sit. Diam dolore sit at nonumy consequat ut assum duo kasd consectetuer adipiscing consequat velit sadipscing vel ea. Dolore eos lorem sit sed kasd et sit liber. Dolor dolor sed takimata et sed. Ut dolor sed amet no eos ut consetetur sadipscing enim duis facer tempor rebum consequat no ipsum ut.