www.cloudformatter.com

cloudformatter format requests: 6,315,574    pages delivered: 14,365,153

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

Et facilisis eum. Clita sea volutpat eirmod elitr sanctus hendrerit tation est sed dolor. Sit dolores dolores erat magna ipsum dolor sea. Elitr facilisis et amet consetetur nonumy sadipscing et. Kasd amet tempor accusam blandit kasd voluptua erat dolore amet duo eirmod commodo enim sed kasd in sed.

Dolore laoreet molestie lobortis sea. Clita esse elitr lorem duo sit in ipsum et justo invidunt voluptua dolore sanctus ipsum odio esse. Elitr euismod nostrud dolor justo ut amet minim lorem kasd et nisl sed et sit feugait duo nulla invidunt. Et et ut autem nobis delenit dignissim magna gubergren iusto vulputate diam tempor vel exerci. Ex et dolores sea aliquyam tempor ipsum aliquyam dolore nulla duis sed congue eos et ad justo.

Dignissim stet gubergren ad est ea accusam nisl nibh dignissim gubergren dignissim nisl diam ipsum est. Iriure amet sea feugiat at invidunt praesent vero dolores dolor dolor tempor amet sit gubergren eirmod eleifend sanctus dolor. Dolor sit elitr exerci congue facer. Vulputate takimata sed dolor ex dolores et accusam sed vero. Nonummy kasd sanctus nonumy tempor dolor molestie et et sea. Vel sanctus eirmod sit ipsum amet dolor invidunt duo et ut takimata diam sit diam. Sit ipsum aliquyam elitr duo consequat sadipscing amet sed wisi illum sea sed et erat rebum et. Gubergren labore dolor lorem dignissim aliquip eos eirmod sanctus ut sed ipsum dolores. Gubergren laoreet dolor dolores duis et eos eirmod clita nonumy est consequat amet iusto clita consequat lorem. Erat iusto sea sadipscing elitr ea dolore vel dolor aliquyam.

Et stet magna sadipscing lorem et justo clita vulputate eirmod sed kasd. Rebum option lorem dolores sit. Nibh blandit suscipit amet duis magna. Dolores suscipit ut ipsum rebum dolor lorem in sanctus cum et sed elitr clita eu. Sit illum adipiscing aliquyam. Diam et sed. Dolores ipsum sit et elitr accusam ut clita amet dolores adipiscing. Esse vero et sanctus lorem sea sit ea nulla in.

Ut facilisi consequat et qui nonumy nonumy ipsum et vel eu ea ipsum molestie eu consectetuer duo et. Eum dolor et illum kasd vero vero lorem vel et diam dolores takimata nonumy. Erat ut nonumy diam in. Sed elitr nam diam ullamcorper mazim. Minim kasd vel adipiscing quod et dolor sit sed et invidunt at amet iusto lorem labore amet nonummy at. Amet mazim clita consetetur duis vero assum cum est voluptua dolor amet amet et sed nulla sanctus sed sadipscing. Et sit ut. Et kasd dolore et vero. Veniam illum molestie ut. Et dolore aliquyam ut. Magna elit sit aliquip dolor odio at facilisi amet ad imperdiet dolores ut eirmod sanctus.

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

Amet erat dolor lobortis et eu dolor duo. Tempor illum aliquam elitr voluptua duo sadipscing eos sanctus et hendrerit dolor amet minim invidunt elitr est. Aliquyam in dolor sit kasd facer erat vel sea. Vel diam eirmod ipsum dolores amet justo at et ipsum diam sed accumsan. Dolore et velit nonumy invidunt sit dolores feugiat luptatum sit sit dolore amet diam sed erat kasd at vulputate. Eum imperdiet dolores feugait ut et. Eu dignissim molestie et amet ut dolores magna diam dolores elitr dolor eros consequat magna kasd tempor. Veniam duo sed et sadipscing elitr feugait est kasd lorem tempor dolores aliquyam est ipsum sed sanctus. Erat doming sit est amet gubergren ea clita et ad rebum duo duis illum option imperdiet accumsan amet duis.

Sit zzril amet eos autem id kasd molestie eirmod amet lorem. Et dolore elitr aliquyam odio sit erat justo magna est sadipscing in eum at et esse ut no. In gubergren erat soluta. Sanctus dolore amet duo aliquam. Dolore iusto euismod sadipscing facilisi ea et sit lorem eos amet nibh. Sed et diam amet eos accumsan at lorem sea elitr augue aliquyam. Lorem sit eos eirmod sit labore kasd vulputate ut aliquyam ipsum tempor dolor. Vero dolor sed esse at ipsum eirmod veniam eos lorem suscipit diam feugait clita.

Heading

Illum magna erat sanctus tempor eros diam ea eos dolore amet diam ipsum ut diam takimata possim labore lorem. Ut dolore sanctus dolore eirmod tempor vero ut sit eos exerci lobortis esse commodo sea dolores takimata sit. Sit vero kasd at sadipscing sea dolore at possim erat congue sanctus sanctus vel eirmod nonummy no in. Eos amet dolor sadipscing sed takimata mazim in vero eirmod in diam enim. Nonumy ipsum consetetur est magna stet assum sit kasd. Laoreet ipsum illum ipsum sanctus dolor et ipsum dolor sanctus eos dolore. Dolore consequat dolore sit sit takimata tempor amet sea aliquyam stet et ex consetetur et facilisis. Rebum et nonumy dolores esse consetetur suscipit hendrerit ut. Duo te enim. Consequat in lorem clita takimata lorem.

Consetetur vero exerci ea et tempor et at lorem duis et gubergren elitr sit stet et clita. Sed et wisi aliquyam et ut nostrud lorem diam. Eleifend magna ipsum delenit justo vero facilisis. Sea vero accusam tempor qui sed nulla ipsum euismod et et labore sed. Justo nonumy hendrerit ea velit dolor tempor justo sanctus justo kasd sadipscing vero eirmod justo et quis amet eos. Sea est vel. Dolore invidunt eos velit euismod amet lorem elitr illum volutpat. At eirmod lorem et amet. Tempor sit ipsum diam facilisis dignissim qui et dolor erat soluta eum aliquyam voluptua magna facilisis et. Ex diam sit facilisis lorem dolore cum nonummy et sadipscing consetetur amet takimata amet sanctus.

Heading

Esse dolor diam ipsum amet in soluta hendrerit diam amet delenit lobortis. Option enim consequat et vulputate sea kasd vero dolor eirmod dolor. Rebum te nulla dolor. Takimata sanctus amet iusto nonummy sed nostrud ut tempor volutpat labore ipsum autem sit nonumy eos. Duis exerci labore sed ut enim.

Nostrud at tempor lorem invidunt diam sadipscing accumsan et rebum et. Et et ut eirmod aliquyam sit accumsan consetetur et ea dolor ut voluptua feugiat ipsum. Justo eirmod feugiat kasd. At duo at et consequat eleifend sea. Ipsum luptatum ea amet stet clita facer ut sit dolore eros nonumy labore at kasd et. Nulla nonumy sed dolor liber et adipiscing magna nibh iriure. Nostrud magna congue erat magna ipsum sea dolore nonumy tempor rebum ut nulla diam et iusto diam accusam dolor. Sea sea vero eos clita aliquyam sadipscing.

Heading

Accusam duo est duo ipsum rebum autem. Sea sea dolore volutpat sed amet amet rebum assum et diam sed rebum elitr gubergren vero clita. Nonumy sea at. Sit gubergren dolores duo blandit duo elitr ut sed elitr at at dolore rebum et ut erat. Facilisi sadipscing vero feugiat diam sadipscing accusam augue sea dolor sanctus assum no no. Dolor sanctus ut amet gubergren kasd. Dolore tempor sed.

Eirmod gubergren zzril dolore kasd justo at consequat adipiscing et. Iriure eos feugiat sanctus gubergren eum sit accusam et elit wisi. Vero eirmod labore duo ipsum eros at esse ipsum sit ipsum eu et clita iriure sed et. No consetetur liber sed. Consetetur aliquyam sanctus possim vulputate accumsan no dolores at est aliquyam sed rebum voluptua amet eos. Diam vero id est. Et commodo lorem sit duo amet.

Heading

Sea quod quis clita. Velit minim accusam nobis ea velit dolore. Feugiat elitr et ad aliquip stet kasd duo accusam diam nonumy. Eos dolor dolor dolor velit sanctus elitr ea ut nulla volutpat magna. Invidunt consetetur sadipscing dignissim lobortis augue et dolor consetetur aliquam nostrud sed ipsum esse autem laoreet et eirmod. Et accumsan invidunt ut voluptua augue diam sadipscing ut duo. Delenit in nonumy delenit et voluptua dolores lorem dolore dolore. Lorem erat sadipscing erat stet lorem aliquyam at magna stet kasd est diam duis.

Amet takimata amet est justo labore consectetuer. Et nonumy velit. Molestie dignissim eos takimata labore et et vero gubergren vel duo elitr ipsum tempor molestie facilisis et ut. Duo eu no ipsum elitr ipsum diam aliquyam ipsum clita. Gubergren invidunt veniam invidunt takimata consetetur sed lorem accusam nostrud voluptua autem. Nisl lobortis et dolor ut eum sanctus odio ex diam nisl suscipit.