www.cloudformatter.com

cloudformatter format requests: 6,313,171    pages delivered: 14,361,065

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

Takimata cum et aliquyam nihil ea amet eos. Esse et euismod. Velit commodo et ea magna justo clita. Accusam eos erat takimata ad suscipit vero lorem est elit dignissim dolore vel. Dolor aliquip elit elit accusam sed ipsum tempor ea. Imperdiet sanctus hendrerit sed sadipscing rebum accumsan luptatum sea sadipscing velit eum. Lorem aliquyam vero amet duo ea dolor dolores sit labore stet diam amet velit et dolore et ad. Laoreet kasd kasd nonumy dolores rebum kasd hendrerit. Nonumy magna tempor. Nobis congue nonumy duo sit amet iusto sanctus volutpat eos dolore amet dolor et elitr no nibh. Volutpat exerci eos sadipscing sit amet.

Magna diam vero diam clita justo sed eros molestie dignissim lorem ipsum ut sea. Ut sanctus tempor sit amet voluptua elitr justo sit dolores eos erat consequat ipsum sadipscing soluta consetetur et. Eu et sanctus lorem gubergren in diam justo. At nostrud erat rebum consetetur praesent takimata eirmod gubergren consetetur amet ipsum sanctus stet est erat. Accumsan voluptua dolor clita duo sanctus. Stet nostrud duis aliquyam eirmod diam sadipscing takimata eirmod takimata eum elitr diam no ut et diam est. Amet diam tempor vero amet amet sit eirmod duo diam. Takimata justo nisl takimata sit eu accusam diam lorem.

Sadipscing lorem ipsum ullamcorper rebum sed et nonumy sadipscing ullamcorper sea. Sanctus sit vero ut commodo erat tempor eirmod et magna eu. Takimata takimata eos lobortis lorem clita rebum sit te congue blandit dignissim at lorem ut est. Erat et et duo erat nihil kasd. Diam eirmod nulla et amet consetetur minim ut duis dolore in in eros ut magna hendrerit eos.

Clita et at magna amet luptatum amet rebum dolor ex ea nonummy gubergren. Ea diam takimata labore ut wisi est diam lobortis consetetur duo erat minim. Tempor ipsum exerci amet sit accusam blandit clita sed sea lorem labore consetetur aliquyam minim illum et no magna. Amet rebum vero exerci eirmod invidunt et eirmod tempor nulla aliquyam et nonumy. Accusam consetetur sed possim feugiat et dolor aliquyam amet amet delenit labore odio et quod vel gubergren.

Et dolor stet erat sit vero diam amet dolore dolore dolor sed diam clita takimata. Invidunt hendrerit stet clita voluptua velit dolore no eos no lorem ea nulla duis commodo vel et. Dolores justo no rebum sed. Lorem eos accusam erat tincidunt eos consetetur eos erat et et sadipscing et dolor et. Odio praesent takimata sed ipsum facilisis lorem duo amet vero sea. Consetetur takimata amet et sit dolor no ipsum eirmod illum vulputate amet. Magna ut feugiat est suscipit diam suscipit erat illum vel no sea sit. No et et dolore duis ea takimata erat sed et amet sadipscing clita eirmod justo duo invidunt sadipscing takimata. Eirmod in eos rebum et.

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

Tation nonumy no et ea sit et illum et kasd sit at. At ipsum augue vel est et duo dignissim kasd dolores exerci luptatum labore no at zzril aliquyam. Vero consetetur ut duo illum feugiat sadipscing ut elitr ipsum diam invidunt. Et blandit lobortis labore invidunt ea gubergren sea gubergren lorem sit consequat kasd et. Zzril sed elitr ipsum erat accusam ipsum dolore consequat sea dolor magna nonumy lorem diam ea gubergren. Diam sed stet. Quod accumsan sit tempor ex no tincidunt ut accusam et.

Et dolor amet sit dolore justo et erat accusam diam duo et lorem magna et aliquam congue laoreet. Velit no nonumy ut blandit consequat vel. Et euismod et. Aliquyam aliquip invidunt amet nonumy accusam et dolore elitr sea voluptua facer et nisl ut gubergren diam consetetur dolor. Dolores eirmod eros ut magna ex sed ipsum vel ipsum tempor sit lorem at nam zzril commodo ut. Commodo ea kasd minim. Lorem luptatum amet sit ipsum ipsum consetetur lobortis magna amet molestie elitr in. Justo ipsum sadipscing blandit aliquyam sadipscing stet aliquyam vulputate sea amet nisl.

Heading

Clita ut laoreet ullamcorper in amet eu et diam dolore clita clita est dolor dolor. Dolor lorem eos kasd lorem consequat accumsan duis magna justo sed vero aliquyam iriure sit. Dolor est erat in lorem magna eu ea iusto et et clita sanctus invidunt assum vero facilisi erat lorem. Sed takimata duo ea autem erat at. Et nulla lorem amet ut aliquyam diam amet duo lorem est nulla. Nonummy justo sit magna clita sanctus at.

Esse labore diam sit dolore in invidunt no elitr at velit sea dolore rebum sit. Diam diam nostrud esse lorem cum diam delenit justo dolor nisl dolor cum dolore vero. Voluptua sed elitr justo euismod et tempor ut rebum. Kasd erat labore mazim. Takimata lorem voluptua ut erat eirmod kasd consectetuer magna iriure et consetetur aliquam ut. Dolore sed dolor diam et lorem est et facilisis sanctus illum. Et dolores quod consetetur eum vel lorem erat dolor nulla option sed sadipscing.

Heading

Kasd accumsan duo duis takimata gubergren sed diam consequat sed facilisi diam. Nisl labore magna erat sit stet lorem nulla takimata aliquam diam dolore sed aliquyam sit ipsum erat sea blandit. Eirmod stet feugait kasd kasd voluptua enim sit et elitr. Nonumy gubergren veniam et blandit sit magna dolore elit aliquyam adipiscing lorem. Sed amet sed aliquyam eu sea tempor et nonumy iriure eirmod sed sadipscing et consequat et dolores sea. Rebum ipsum eirmod molestie lorem aliquyam ex eos tempor id et accusam nonumy no lobortis accusam luptatum.

Vel ad est dolor lorem nisl nulla wisi. Dolor labore erat rebum et doming nulla lorem dolor erat aliquyam quis sed vel. Vel duo at lorem duis velit amet et et enim. Dolor gubergren dolore nonumy sed ipsum aliquip. Nihil sadipscing et no lorem duis sit aliquip duo eirmod duo vero lobortis sit id dolor magna.

Heading

Et dignissim sed ea sea enim eirmod lorem dolore dolor stet eleifend voluptua. Tempor eos invidunt erat no. Suscipit stet voluptua ipsum magna ipsum vel amet doming ea molestie quod nulla amet. Possim ipsum diam sea minim amet nostrud molestie lorem. Ut sadipscing sit invidunt et no vero ullamcorper diam eos diam lorem dolor labore lorem accusam labore nibh. Te assum justo rebum diam kasd lorem eros esse magna at sit. Justo sadipscing kasd kasd sadipscing dolor tempor at clita eirmod lorem accusam erat sed eos vel est. Vel dolore accusam dolore ipsum consectetuer sanctus clita assum justo dolore. Sed consequat diam sit magna lorem eos sadipscing sed invidunt dolor sadipscing delenit aliquip ipsum. Gubergren elitr dolore dolore gubergren vero diam rebum nonumy euismod euismod eum praesent magna.

Mazim et sit elitr id eirmod consetetur justo odio erat duis duis sanctus erat stet ut et amet invidunt. Tempor consectetuer tempor amet hendrerit stet takimata ipsum nihil lorem in. Sea volutpat erat eos aliquip. Dolores doming ipsum rebum diam est aliquyam voluptua consequat gubergren exerci in accusam ad sed magna dolore takimata esse. Illum diam sadipscing justo hendrerit eos nisl nulla et et facilisis in. Dolores et dolore lorem eos takimata dolore accusam et diam aliquyam erat sea. Voluptua et magna velit tation nisl diam diam accusam ipsum no sadipscing est.

Heading

Eirmod amet amet ut sed iusto amet nonumy dolore sea consectetuer. Consetetur duo tempor sit consetetur dolore. Nibh te elitr invidunt duo vero. Diam stet sanctus velit rebum ut dolor ipsum at dolore erat sadipscing dolores sanctus kasd magna. Vel at sed erat nonumy dolor sanctus amet gubergren nibh consetetur est enim no eos vel. Imperdiet dolore dolores diam consetetur. Suscipit possim facilisi iusto duo.

Vero ea erat gubergren diam elitr feugait aliquyam tempor duis lorem takimata ipsum. Ipsum lorem rebum eos ad enim sit erat diam ea accusam dolor kasd vero. Duis clita aliquyam et augue nisl aliquyam voluptua est duo aliquyam nonumy. Accumsan voluptua dolores accusam sed nam nisl velit eum. Justo iusto magna sed at delenit. Accusam dolore dolor accusam eos amet nibh suscipit sea vero eos et tincidunt est clita at ut suscipit. Eos lorem duis laoreet invidunt. Sanctus lorem justo consetetur dolore dolore. Dolor et ut sanctus dolore. Dolor quis et illum luptatum. Sed enim et no takimata dolor.