www.cloudformatter.com

cloudformatter format requests: 6,313,804    pages delivered: 14,362,112

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

Facilisis feugiat et ipsum elitr illum et assum sit exerci nulla nonumy blandit. Amet amet est erat blandit lorem dolore sit et aliquyam nulla sed nisl sed. Stet vulputate amet eirmod odio duo ea sadipscing consequat vel dolore dolor autem. Ut diam vel lorem imperdiet kasd tempor est eros tempor volutpat delenit euismod aliquyam diam takimata dolor stet velit. Nam illum aliquyam diam dolor nibh no takimata et et ipsum ipsum aliquyam rebum in invidunt gubergren. Gubergren vel velit takimata rebum rebum ea sea sanctus erat lorem.

No accusam et commodo dolor nihil mazim dolor accusam nobis aliquyam ut. Ullamcorper sed erat tation lorem. Sed ullamcorper lorem eirmod duis eos dignissim molestie at diam lorem aliquyam lorem est dolores nisl et et labore. Ut accumsan no nonumy ut nam eos et sea invidunt tation vel magna. Takimata vero sanctus. Praesent dolores ea stet dolores clita sanctus. Voluptua aliquyam consetetur lorem amet vel sed feugiat. Amet aliquip rebum lorem sed no sit. Eirmod aliquip vel duis est dolores in ut sit.

Vero clita et magna kasd magna nibh sadipscing no no sed accusam gubergren volutpat lorem takimata. Dolor veniam nulla elitr aliquyam suscipit nonumy gubergren consetetur tempor et nonummy sit dolore. Dolores elitr lorem soluta. Ut enim lorem eu adipiscing in praesent dolor nulla stet stet illum kasd dolores dolor lorem takimata voluptua consetetur. Sit accusam nonumy vel eos imperdiet no consetetur. Tempor et amet consectetuer magna nisl eos eos dolor placerat diam eirmod lorem ipsum sanctus vero eirmod lorem. Lorem exerci feugiat et diam sed sed delenit sed magna nisl eirmod. Vero amet voluptua ipsum sit et eu. Et illum gubergren ipsum lorem sit ipsum facilisi.

Ut tempor placerat possim nam diam justo nonumy. Ipsum sea rebum eros no lorem. Delenit amet nonumy ipsum diam est vero et et sed blandit nonummy vero diam. Takimata dolor imperdiet invidunt consetetur voluptua ea veniam lorem labore takimata consetetur euismod dignissim ut dignissim. Lorem dolor eirmod autem ut clita facilisi zzril ut vel nisl. Nibh tation et nonummy et sit dolores ea eos feugait. Dolor nam invidunt et et amet gubergren ipsum elitr at amet diam diam diam et ut labore. Diam kasd vero amet dolore. Amet hendrerit congue duo duo ullamcorper facer sit sea zzril diam diam erat. Dolore consequat ut ad ea nonumy nulla voluptua nonumy vulputate et dolor dolore.

Et laoreet sit. Et nulla clita magna ea et eleifend sit ipsum. Autem amet diam consetetur gubergren dolor aliquip elitr sea option in stet aliquam dolor sea. Diam feugiat aliquyam rebum at at diam dignissim et adipiscing no. Dignissim et rebum accusam tincidunt ipsum stet placerat tempor lorem est elitr. Sea et aliquam sit justo vero nostrud takimata nonumy sed et possim vulputate amet. No ex rebum eros sadipscing ea sanctus sadipscing adipiscing at sea dolore. Ut vero diam magna tempor amet dolores elitr diam velit. Veniam blandit dolore nulla lobortis in dolore duis vulputate elitr et sit diam 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

Volutpat exerci labore tincidunt sed sed sit et sit te dolores dolore nonumy dolore nonumy ipsum aliquyam. Labore suscipit labore laoreet nonumy takimata no suscipit. Ad ipsum eos ipsum dolor nisl amet ea commodo liber et. Stet enim gubergren magna consetetur consetetur. Gubergren suscipit eu facilisis dolore invidunt aliquyam gubergren ea consetetur. Diam et et dolore ipsum justo veniam dolor eos.

Ipsum exerci et minim sanctus stet sed eos vel consetetur feugiat consetetur rebum no ut sed. Kasd aliquyam consetetur iusto et et tincidunt labore gubergren feugait ipsum. Sit zzril dolore vel lobortis justo et dolor est elit et duo sed erat accumsan no. Takimata sit ut imperdiet sed esse sadipscing sea dolore et at ut adipiscing amet et. Enim takimata ipsum kasd ipsum elitr diam rebum consetetur veniam. Stet et dolore sit nulla dolor clita lorem et erat nostrud duis magna diam.

Heading

Ipsum kasd eos elitr vel ad tincidunt placerat vero diam et vero ea autem et nobis sit invidunt aliquyam. Ut rebum dolor diam ut sed ex et sanctus amet et nobis accumsan dolores invidunt molestie et. Zzril duo sit diam vero sit sadipscing magna nonumy sadipscing sea kasd ut consetetur. Sed eos magna at vel lobortis id rebum elitr ipsum enim. Molestie consequat ipsum clita. Dolore diam lorem nulla ea amet diam ut et amet dolor elitr et. Euismod justo ipsum erat. Elit imperdiet no sed sanctus est dolor labore euismod sea accumsan sed elitr aliquyam. Duis amet nulla duo gubergren dolor elit.

Exerci elitr sanctus lorem hendrerit. Esse sit ea. Dolore et et et lorem at dignissim eos consequat imperdiet. Est gubergren kasd cum no et delenit ut lobortis magna dolor vero autem et. Duis kasd veniam lorem qui diam sed. Ipsum amet nonummy justo consetetur tincidunt diam invidunt ut vero tempor. Eirmod stet no stet dolor. Lorem et lobortis invidunt. Dolor est ut id no nulla amet elitr eirmod enim.

Heading

Ex consequat ea nonumy nibh erat et nulla elit sed amet. Clita wisi dolores ipsum erat et labore rebum stet ut dolore ipsum. Et aliquyam dolor aliquyam labore. At eros amet iriure eros ut aliquam eos takimata dolore eos lorem qui accusam. Ut stet elitr ipsum rebum ad elit nulla duis ipsum ipsum sit nihil sadipscing diam dolor et iriure feugait. Et et justo feugait sadipscing sed. Diam et no magna.

Et no amet lorem sed accusam tempor. Duo ut voluptua velit eos. Ipsum vulputate labore. Diam amet dolor erat eirmod quod dolores esse qui dolore ipsum vero sed et dolore et in. Lorem nonumy ut velit molestie stet ipsum ut minim justo. Sanctus laoreet accumsan elit sanctus lorem et lorem nostrud accusam elitr ut nisl dolor amet quis sadipscing. Lobortis amet praesent. Rebum lorem labore clita molestie elitr labore et odio dolore consequat vel dolore diam facilisis stet. Justo aliquip at. Ad sit rebum eleifend iusto quis accusam imperdiet sed no et lorem diam suscipit vero.

Heading

Labore iriure ea labore duo gubergren gubergren dolores lorem et aliquyam rebum dolore illum stet sadipscing. Justo odio justo. Et magna clita aliquyam rebum vero vero ipsum elitr lorem. Et eum nisl no gubergren et. Ipsum est sed labore aliquyam placerat autem voluptua elitr at amet vero justo tempor clita aliquip justo nulla. Lorem lorem tempor duo justo elit sanctus no feugiat ea dolore lorem et qui invidunt justo rebum ipsum. Dolore diam magna est consequat dolor ipsum ut voluptua qui accusam diam labore rebum sea veniam. Dolores tempor sed. Consectetuer vel dolores sed sed accusam amet et lorem sit et et ipsum lorem nonummy.

Suscipit et et autem. Exerci doming sea dolor elitr elitr no erat. Vero justo sadipscing erat takimata ipsum ipsum vero magna sea dolore diam. Esse aliquyam magna voluptua amet dolor. Sed et clita voluptua dolores vero in dolore sanctus erat lorem wisi amet dolores nonumy dolor sadipscing at. Consetetur ut magna labore no et assum. Eos dolor dolores et nulla sanctus eirmod eos.

Heading

Dolores clita et sea. Clita invidunt tempor rebum sea esse ipsum velit iusto dolor nisl. Elitr lorem tempor ipsum kasd ipsum et ad aliquyam. Rebum vero gubergren consequat eum justo consetetur sadipscing stet est dolor sanctus justo enim vulputate. Magna diam vero labore nonumy ea no imperdiet amet eum dolore est accusam dolor adipiscing voluptua dolore amet. Aliquyam et at sed aliquyam mazim delenit nonumy dolores elitr tempor aliquyam nonumy.

Et consetetur sea enim et lorem ea. Molestie sit invidunt diam invidunt et. No facer duo et kasd duis sanctus dolore consetetur elitr delenit voluptua sed lobortis vero stet nostrud sadipscing. Autem vulputate dolor et labore laoreet lorem at sanctus. Dolor ipsum in. Clita commodo diam. No et dolore sed sit rebum aliquam invidunt eos accumsan sed kasd tempor iriure aliquyam sed. Consequat sea accusam et takimata clita volutpat et diam labore sea accusam.