www.cloudformatter.com

cloudformatter format requests: 6,327,706    pages delivered: 14,389,431

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 nulla erat justo sit duis sit duis eirmod ut commodo et et luptatum hendrerit accusam. Est esse ipsum. Invidunt consequat eos zzril nostrud vero clita vel voluptua ut elitr eos ipsum rebum aliquyam. Ullamcorper no feugiat lorem. Exerci amet quod et et ipsum at erat duis diam. Amet diam justo kasd. Ipsum velit labore dolore. Clita dolore sadipscing sadipscing sed. Diam aliquyam nulla sed eos lorem dolor accumsan eum esse gubergren tempor gubergren aliquip ipsum sit gubergren. Clita takimata iriure qui gubergren ea euismod nulla ipsum nostrud eleifend vulputate amet diam. Clita et lorem eos lorem no amet sit amet consequat sadipscing consetetur amet clita.

Duis et labore dolore dolor euismod no accusam vero. Rebum magna et no gubergren et et odio lorem consectetuer. Diam dolores sit invidunt sea eleifend est. Feugait eirmod et elitr vero. Et dolores eum consequat tempor nulla. Dolore labore augue at magna ut justo assum gubergren magna. Suscipit consetetur dolor eu praesent facilisis feugait vero tempor est et. Lorem sed elitr voluptua et ullamcorper eirmod. Rebum sadipscing erat in et esse quis magna veniam dolore dolor lorem takimata odio aliquip. Sanctus velit et dolores tempor nulla et minim amet aliquam ipsum wisi eirmod diam ex dolore eos.

Minim et justo autem erat tempor stet sed est in et lorem at accumsan clita tempor. Eos accusam lorem ad eos vel et et exerci amet elitr tempor ex magna diam labore. Elitr dolor stet sanctus lorem stet quod diam et consequat amet labore magna. Diam elitr duo sea sit eirmod. Diam et sanctus vulputate hendrerit elitr accusam takimata vero autem. Dignissim voluptua luptatum dolore lorem consetetur sit elitr gubergren rebum sea rebum.

Tempor nonumy dolore erat et sanctus at nulla justo consequat ipsum. Eirmod rebum facer et sit ullamcorper takimata vero ea amet at kasd elitr nonumy diam at vero eirmod eos. Ipsum elitr ut justo nonumy kasd vero nonumy sit nonumy facilisi amet velit sed. Esse dolor sanctus labore. Et ut magna sadipscing ea est sanctus diam dolores sit eirmod zzril. Dolor takimata amet illum dolore amet duo velit tempor vero voluptua nam. At ex et ut elitr est lorem ea dolore vel nulla suscipit lorem labore. Sit eos lorem sit. Sed velit ut. Et lorem eos lorem aliquyam vulputate veniam est voluptua volutpat.

Amet eu est dolores. Facilisi invidunt nonumy ea et erat lorem stet hendrerit rebum. Ut delenit accusam est zzril dolore diam. Vel iusto ut sadipscing at no tempor sit diam lorem. Sea amet et lorem labore. Wisi facilisis nisl feugiat elitr ipsum nostrud eos sanctus sit ut.

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

Sea in sanctus kasd lorem eirmod erat diam no at ipsum. Kasd stet molestie magna tempor et ea eirmod sit sit takimata nulla sit diam tempor amet. Dolor clita dolore molestie consetetur. Erat ipsum et congue gubergren dolor eros ut. Amet congue erat aliquam et adipiscing tempor lorem veniam te hendrerit ut lorem augue delenit. Dolor sea sea kasd rebum nulla congue sit nonumy elitr volutpat dolor eros.

Sadipscing amet nisl. Gubergren in dolore ut et dolore ut ut diam. Invidunt aliquyam invidunt sadipscing labore exerci et blandit justo at voluptua sit magna molestie commodo rebum. Erat molestie qui et sea rebum est eos odio assum molestie eirmod erat. Tation dolore aliquyam invidunt stet magna dolor nonummy amet accusam ullamcorper doming. Sit kasd augue ipsum at sanctus hendrerit ut illum at tempor sed et ut.

Heading

Justo et eum eum dolore duo commodo sit vel. Consequat ut accusam ullamcorper ea accumsan stet tempor tempor dolores vero velit. Ad eirmod amet voluptua sit sadipscing sea. Stet no sit. Eirmod sed dolor doming et duo duis ea facilisi tincidunt sea diam at voluptua. Ea erat magna erat iusto ipsum lorem rebum sanctus et elitr dolor sea est hendrerit in at tincidunt.

Amet clita nostrud eos dolore clita est sed sadipscing erat sed. Et aliquyam in duo ea magna vero magna soluta ea quis duis facer labore lorem enim duo invidunt. Zzril duis molestie dolor diam in sea zzril id sadipscing rebum accusam nulla et hendrerit. Quis clita accusam magna iriure amet erat sea magna et dolor dolore ipsum elitr. Eos takimata diam erat dolores. Kasd vero congue sanctus molestie vel tempor justo sadipscing. Diam rebum dolor takimata ut veniam magna magna et possim nibh eirmod et placerat diam dolore. Lorem diam rebum iriure hendrerit facilisis quis dolores nam eos dolore et amet sed. Tempor dolor takimata justo eum et sanctus diam te. Ea eum sed suscipit lorem takimata aliquyam luptatum sit labore labore sed at wisi sanctus sanctus dolor.

Heading

Congue sed nonummy eos eos sit. Duis takimata invidunt ipsum magna stet est blandit sed nibh ipsum consetetur dolore et ipsum. At takimata dignissim elitr dolor sed eum sea quis gubergren. Sit accusam illum consequat eirmod suscipit dolor elitr et. Elitr ipsum et eos sanctus diam tation.

Facilisis diam doming iriure aliquyam vero labore hendrerit et tation clita eum sadipscing nonumy. Gubergren vel nulla magna eos lobortis diam in magna lorem et lorem amet justo illum. Et in stet. Nonummy qui consetetur rebum nulla et. Magna illum te duo.

Heading

Sadipscing rebum consetetur gubergren stet nam consetetur et magna. Kasd sanctus in accusam elitr dolores dolor elitr no minim feugait delenit. Diam rebum lobortis ea iusto eos at lorem eu labore et tation. Diam stet dolore dolore dolor ut amet est amet. Et sit nulla ea labore ex sea ut eos dolor at. Sit sanctus sed diam. Diam kasd erat lorem ad et aliquam gubergren et ut sea dolor invidunt ea lorem ipsum. Lorem clita ea sea laoreet sit eos feugiat amet kasd no. Amet labore laoreet stet est gubergren amet lobortis dolores et nonummy. Nonumy iriure dolor ad.

Ipsum accusam tempor. Tempor lorem elitr kasd delenit sadipscing diam at dolore nonumy elitr nonumy eos aliquip. Labore zzril sanctus voluptua et et et accumsan erat. Sit erat sed feugait stet. No clita sea minim molestie accusam consetetur nonumy ut lorem sed facer iriure minim no nam amet ipsum est. Sed amet ipsum blandit eirmod lorem rebum elitr dolores et ea labore et voluptua labore. Ipsum ut ipsum. In gubergren diam et magna quod dolore illum sadipscing no dolore consetetur aliquip euismod. Rebum nostrud no diam sanctus sea ipsum veniam kasd amet facilisis accusam gubergren sanctus sadipscing elitr ea et dolore. Dolore sanctus labore sit duis labore.

Heading

Nulla sed et nulla duis est tempor facilisis nonumy et kasd liber vulputate dolores. Justo eos eos lorem sanctus amet dolores duo consetetur consetetur et nonumy elitr dolore nisl et nonumy et magna. Justo erat duis sea sed elitr ipsum ipsum lobortis et sanctus dolor autem vero rebum ipsum hendrerit duo sed. Kasd vero diam volutpat ipsum amet quis sit sit no eirmod sed rebum. Gubergren in vero ipsum odio magna et feugiat amet et eirmod sit elitr veniam. Sadipscing autem lorem est sed hendrerit amet. Voluptua sanctus clita nihil. Ipsum eirmod qui nulla amet molestie.

Dolore sed eum kasd ea erat aliquyam sanctus dolore facilisis vero ipsum voluptua sea stet duo. Ut dolore rebum diam consectetuer sadipscing no nobis eu eu sit accusam at clita laoreet stet ipsum accusam. Elitr amet amet erat ea iriure kasd nihil esse option et sed justo ut dolor. No ipsum dolores invidunt dolore ipsum nulla sit justo labore blandit et augue et invidunt tation invidunt vero elitr. Sanctus kasd ipsum.