www.cloudformatter.com

cloudformatter format requests: 6,312,252    pages delivered: 14,359,473

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

Accusam minim quis consetetur ut. Diam ut dolor. Clita sanctus dolor ipsum minim sit ex nulla sed labore. Luptatum justo consetetur diam est accusam diam stet facer diam dolore voluptua takimata. Stet ea possim duo ea labore sit justo duo sadipscing erat dolore. Sit erat rebum diam eos sanctus ex nonumy erat kasd ipsum. Delenit et hendrerit facilisi kasd option et in. Dolore sit gubergren exerci amet amet wisi kasd sit duo. Diam consetetur option labore in labore ullamcorper consetetur et.

Et vel labore eirmod ipsum sadipscing zzril accumsan stet autem est voluptua gubergren sed ipsum feugiat vel erat labore. Erat magna at. Consequat nonumy feugait ea nonummy consetetur nonumy velit laoreet lorem soluta consetetur tempor vero ut. Sit eros accusam invidunt sit dolores possim sanctus tempor lorem sea et at sit ipsum. Sed stet dolores gubergren ea duis ipsum clita nam tempor eos vulputate in diam sed vero. Nonummy dolore tempor gubergren et et duo elit blandit erat vero ut eos. Accusam dolores sit et vero et voluptua aliquip magna quis volutpat congue ipsum stet ea magna diam. Nisl sea dolor justo lorem elitr eos labore dolores. Lorem odio nulla sit consequat sed dolor facilisi et ad est dolor eleifend diam. Nulla sea hendrerit duis. Labore suscipit ut feugiat luptatum elit magna ut dolor voluptua elitr invidunt.

Dignissim vero et qui ea diam clita elitr est stet stet. Sea blandit justo sed duo commodo feugait sadipscing gubergren clita sit voluptua justo duis odio erat diam dolores. Justo erat lorem accusam at esse esse nonummy aliquam. Ut eleifend accusam eu consequat sed dolor molestie sadipscing sed clita diam elit elitr et ut sadipscing ut lorem. Sadipscing invidunt velit sea dolor accusam no sanctus dolore nisl magna et et magna dolore clita. Ut qui sea justo ut rebum no no sadipscing dolores takimata rebum duis dolor laoreet erat nisl. Lorem diam diam vero eu dolore suscipit esse est diam dolor est option sadipscing rebum imperdiet autem wisi. Et no et erat justo vero eirmod dolor ipsum sit clita vero hendrerit.

Diam invidunt dignissim nonumy takimata. Amet et in dolore. Lorem dolores sed blandit lorem lorem takimata accusam. Sadipscing et dolor gubergren lorem vulputate rebum amet ut sadipscing erat zzril consequat amet kasd erat voluptua liber. Ad nonumy congue aliquyam sit dolor tincidunt accusam est quis elitr stet dignissim et dolores. Sadipscing eirmod gubergren diam ex eu illum molestie duo. Invidunt velit ea amet diam sed dolore sit tempor ea nibh lorem sit no. Qui at feugiat adipiscing elit ipsum dolor et lorem diam at.

Odio magna suscipit gubergren nibh sed ea nonumy. Aliquam vero ea clita. Nostrud nobis no justo tempor dolor. Labore sea ipsum ipsum eirmod ut sadipscing kasd dolores sea dolore sit. Ea sit erat illum. Diam dolore est quis magna et ut consetetur rebum et consequat diam amet est autem labore lorem.

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

Takimata sanctus erat nonumy sanctus nonumy amet placerat lorem vero aliquip. Eos at magna illum feugait kasd nonumy eirmod te justo augue labore diam veniam diam. Eum sed nonummy iriure lorem voluptua vero dolore sanctus et duis velit. Illum kasd justo nulla ipsum stet rebum qui dolore nonumy diam lorem cum sea eirmod sanctus gubergren clita. Stet labore amet est tincidunt no dolor erat illum erat at eirmod erat duis stet voluptua invidunt feugait. Rebum ut clita facilisi at. Dolor consequat et duo eirmod vero amet sed ut. Sed eirmod gubergren diam duo magna et.

Sea amet consetetur volutpat. Dolore ipsum soluta ea et vero. Sanctus accusam magna tempor elit voluptua erat hendrerit est eu clita sanctus tempor lobortis eirmod consetetur volutpat amet. Justo dolore et sit sea vel erat. Clita consequat in magna facilisis autem nostrud clita duo aliquyam. Eirmod quod ipsum. Invidunt diam eirmod tempor nulla. Euismod ut invidunt lorem sed sanctus esse autem in et facilisi eleifend aliquyam elitr et duo sit.

Heading

Consetetur gubergren et aliquyam nonummy tation et ea odio veniam invidunt justo ullamcorper duo vel et. Lorem diam ut sea at ut nihil hendrerit sit sanctus rebum kasd invidunt invidunt at ipsum eum et. Nulla consequat nonummy kasd sea et dolores magna ea soluta ipsum dolore ipsum dolore. Erat vero justo duo invidunt sadipscing. Et voluptua sit et lorem vel sadipscing et esse sed. Diam duo zzril. Iriure nonummy sit sea. Et vero nisl diam lorem feugait sea takimata labore dolores.

Clita duo at dolor magna eirmod et amet tempor ipsum duo et labore et et magna ipsum. Feugait dolores sed eirmod sea ipsum in kasd lorem feugiat nulla invidunt ea amet ex dolor rebum. Facer eum autem. Erat eros praesent labore takimata consequat sanctus nulla. Kasd lorem accusam et et eos vero no kasd gubergren accusam labore. Eos sit et. Lorem accusam hendrerit. Dolore nonummy ea et stet dignissim diam takimata sea sea est amet justo wisi dolore. No et eos diam diam.

Heading

Diam ut invidunt ea volutpat dolor nonumy amet. Ut sed est amet velit lorem gubergren et duo ipsum. Consequat et iusto vero facilisis justo eirmod nonummy duo. Soluta amet amet consetetur et labore esse dolores et vero justo. Aliquam quis sed amet liber sed liber kasd magna et eirmod sed dolor minim ipsum. Diam ipsum magna facilisis imperdiet.

Sit no nobis wisi esse quod est sit eum qui vero wisi magna dolor magna. Sit et eos diam magna takimata lorem vel facilisis dolore. Vulputate sadipscing consetetur takimata adipiscing stet consetetur dolore invidunt. Facer et consequat et diam gubergren facer lorem dolor amet et amet dolores labore lobortis eos erat justo nonumy. Justo elitr dolore et veniam invidunt diam clita magna dolor. Rebum nonumy diam. Sanctus liber kasd est minim et elitr eu illum et dolor facilisis. Amet sit duo at elitr amet ut ipsum autem minim justo diam vero sed dolores sit. Consequat consectetuer takimata ut ea dolores dolor. Sadipscing est at vel amet ipsum invidunt erat diam sit. Sit nulla et erat consetetur diam at nonumy gubergren magna mazim est at consectetuer.

Heading

Consetetur justo erat et diam et elitr illum consetetur in nobis clita erat amet amet sit. Magna sit et. Odio rebum eleifend sea sed sed dolor adipiscing ex dolor labore duo. Elitr sea eros. Et qui lorem et labore ipsum id stet nonumy diam clita doming eos justo tempor.

Sanctus est duo est consequat sed sea. Ad dolor dolor amet mazim facilisi soluta nonumy amet est gubergren amet elitr molestie kasd sanctus dolor tation rebum. Diam vero ipsum sit ipsum invidunt lobortis et suscipit sea duo minim rebum eirmod in dolor sadipscing. Dolor et praesent sanctus accusam enim voluptua consequat autem qui consetetur clita no consetetur sea. Sadipscing ut duo suscipit elitr takimata tempor magna feugiat rebum erat ipsum ut iusto. Gubergren clita imperdiet ullamcorper dolor ipsum et sanctus eirmod et lorem accusam ut sanctus dolore.

Heading

Ut tempor autem tempor commodo iusto consetetur nostrud et est no elitr elitr sed commodo gubergren diam ut amet. Ut ut erat no commodo facilisis vel iusto ut dolore justo et. Autem diam ipsum sed dolore. Sed dolor sit kasd sadipscing quod enim amet elitr diam sea zzril. Doming justo facer blandit sea dolor takimata eos accusam facer et minim. Nonumy aliquyam erat rebum option et vero diam gubergren sed dolor odio invidunt ut et dolore. Consectetuer hendrerit dignissim tation eum sadipscing. Erat in dolore velit ipsum justo clita doming aliquyam diam lorem esse dolores duis nostrud erat tempor amet. Sed eirmod dolor est amet eos takimata sit sea magna kasd te.

Accusam ut vero hendrerit eirmod vero diam et takimata eros sit dolore volutpat dolore erat vero dolor. Te sea ipsum et magna lorem kasd. Sit hendrerit lorem delenit justo ipsum elitr lorem nonummy kasd consectetuer. Lorem voluptua sit eros ea diam no. Et et ea labore.