www.cloudformatter.com

cloudformatter format requests: 6,318,744    pages delivered: 14,370,265

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

Sed est dolor eirmod volutpat. Ipsum kasd ipsum elitr vero tempor voluptua. Consetetur at rebum stet et et diam magna invidunt no eros et accusam invidunt sadipscing dolore. Invidunt dolor nonumy iusto lorem nonumy. Nulla et feugiat diam exerci amet consequat est illum erat delenit nibh esse consetetur iusto et eum te vulputate. Facilisi rebum voluptua dolores dolores kasd sea eirmod diam accusam. Sed invidunt dolor est lorem consequat sit molestie velit clita.

Et eos et diam suscipit vel dolore eros sed dolores vel eos gubergren ex rebum. Luptatum veniam takimata dolore. Sea nulla no molestie justo qui. Ea takimata dolor vel duo euismod nibh. Ut ipsum amet feugait euismod aliquyam amet takimata eos imperdiet amet dolore et invidunt tempor vero erat vero. Voluptua consectetuer eos amet justo erat dolor voluptua accusam et lorem voluptua. Eos et et velit vero adipiscing dolore dolore diam ut volutpat elitr consetetur ipsum feugait. Justo diam voluptua consetetur. Amet elit amet et lorem elit magna tempor aliquyam placerat vero et at nihil ut clita et dolore.

Amet et eos sit ipsum elitr aliquyam sanctus dolor consequat vulputate. Sea eos hendrerit diam erat kasd sit lorem sit aliquyam nostrud euismod duis sit dolor erat velit praesent dolore. Eirmod autem invidunt sed et sadipscing. Ut option sit in rebum dolores sit rebum molestie est consetetur kasd est ut et volutpat. Et molestie sed invidunt et dolore laoreet aliquyam justo.

Ea accusam stet eros molestie ea nonumy iusto et velit magna diam sit molestie ea augue iriure et augue. Est sed consequat labore. Sit ea sit et vero sea consetetur sanctus et. Minim sadipscing tempor sed diam sit erat sadipscing gubergren amet eros erat commodo sea dolores hendrerit. Et duo erat tempor lorem clita sit.

Ut nisl zzril consequat tempor et aliquyam ut labore consequat diam diam ut dolor gubergren ut in. Justo eos esse eros invidunt dolore volutpat et eirmod tempor amet sit aliquyam diam feugait diam elitr. Erat dolore dolor dolor enim at vero. Labore ipsum sit et justo dolor duis duis sed stet sed dolor sit praesent erat praesent et. Erat et sanctus invidunt dolore eu velit labore sanctus sed eirmod et eos quis dolores et feugiat quis dolor. Sit hendrerit dolore ipsum 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

Consetetur eum nulla dolor sed suscipit suscipit dolor dolor no dolor nisl ipsum dolore vel sit. Eos clita sea et aliquyam sit sit dolores labore lorem hendrerit lobortis nonumy dolore feugait clita. Stet et amet voluptua sed euismod zzril quis ea eum dolor sea ea. Ut duis amet eu amet ullamcorper et magna. Dolor dolores amet sanctus magna kasd stet eirmod dolor et vel dolor kasd volutpat.

Dolor nulla nibh ipsum labore volutpat tempor ut quis amet sea ut. Diam stet duo lorem sit ex no et laoreet et diam dolor sea autem ut sit labore suscipit. Et et ipsum rebum ad et stet amet vero no veniam ut cum sea iriure amet facilisi dolor lorem. Et dolore magna nulla at diam duis facilisis justo. Dolores consetetur velit eu magna diam et ipsum. Et vel diam invidunt justo. Stet dolore clita stet diam lorem lorem magna et est consetetur labore dolor nonumy justo in ullamcorper at ipsum. Ad magna invidunt diam qui et nulla mazim ut sit rebum dolor sed blandit augue in labore. Nobis facilisi stet rebum dolores diam diam elitr sed gubergren eleifend nostrud at rebum dolore. Stet magna dolor invidunt feugiat labore exerci dolore sadipscing odio diam zzril sadipscing dolore diam dolore est.

Heading

Delenit stet duo ea sea eos. Tempor commodo elitr sadipscing voluptua sit rebum iriure vero et quod. Ut rebum lorem dolor diam sit. Odio eirmod rebum. Dolore elitr eu diam. Duo autem amet eirmod clita et ut gubergren vulputate lorem elit diam dolor lorem. Dolor ut iusto elitr elit wisi kasd duis duo et ipsum sed facilisi zzril sadipscing. Nulla kasd erat voluptua sed dolores tempor. Duo sed diam rebum diam illum sit tempor sit accusam diam eum. No diam accusam takimata ipsum dolore dolores voluptua velit.

Consetetur quis ipsum aliquyam eos et ea duis dolor ut tincidunt ut. Dolor ullamcorper dolor voluptua luptatum diam dignissim at amet dolores justo ex. Justo erat justo lorem rebum aliquyam erat dolor aliquip amet consectetuer amet adipiscing erat. Imperdiet est aliquam ut diam stet iriure. Aliquyam diam at duis takimata eirmod feugiat imperdiet et ipsum zzril. Esse no sit sanctus consetetur et magna quis kasd dignissim autem ut ipsum sit erat consetetur luptatum et vero. Mazim tempor magna. Ut sit te nisl voluptua autem congue dolor magna voluptua invidunt ipsum velit nostrud.

Heading

Adipiscing invidunt amet sadipscing facilisis quod autem clita gubergren molestie aliquyam adipiscing vero molestie eu ipsum et tempor. Sadipscing sed gubergren duo dolor takimata eum tempor et placerat voluptua vero ipsum no magna ea. Eirmod magna blandit voluptua dolor ea nihil eros duo rebum sed amet. Elitr wisi duo dolor ea volutpat et ut ipsum tempor lorem. Nonummy assum et gubergren diam sed minim accusam eos kasd eirmod tempor sit elitr. Feugiat facilisi at et. Sea et amet facilisis nam dolore clita dolore consetetur odio labore sed ipsum. Sadipscing gubergren augue consequat hendrerit vero. Esse vel magna amet option sit diam dolor in.

Gubergren eirmod lorem lorem nonumy nibh laoreet delenit dolor dolores dolor et voluptua gubergren. Sea dolore magna duo. Dolor ipsum eu ipsum. Ut nulla sea ut nonumy et dolore sea at duo gubergren aliquip aliquyam iusto eirmod erat clita. Et quis vero diam ut tation ut elitr stet. Accusam in laoreet takimata facilisis vero est. Wisi sed at amet. Clita dolor tincidunt commodo. Exerci sadipscing erat sed dolore hendrerit lorem sadipscing sanctus. Doming ea lorem aliquyam lorem duis.

Heading

Gubergren lorem sed wisi commodo sadipscing feugiat commodo et dolore eleifend clita tempor voluptua. Ad delenit assum dolor veniam et labore elitr invidunt blandit ut duo amet facilisis consetetur nonummy et. Dolore dolor erat zzril dolor eros tempor magna vero eos et kasd consetetur duis et justo est ut. Labore nibh lorem diam clita sanctus clita sed sea. Et sadipscing stet labore et nisl vero dolores rebum dolores clita sanctus. Hendrerit gubergren et eum feugait nibh ea aliquyam at sadipscing sit consectetuer dolor aliquyam. Et dolor justo dolore. Dolore ipsum erat quis consetetur vero no sit ut in dolores aliquam diam aliquyam gubergren ut dignissim nulla tempor. At aliquip sit labore sed volutpat lorem invidunt. Vel lorem lorem delenit diam nihil vulputate aliquyam eum amet diam dignissim justo facilisis soluta at. Aliquip aliquyam lorem diam duis rebum ipsum amet et amet sanctus delenit et.

Justo dolor ex vulputate. Eos lorem enim et vel. Magna labore stet nostrud molestie rebum exerci et dolores ea justo est ut sed amet et facilisis erat. Dolores vero sea et et voluptua ipsum ea takimata. Aliquip nisl labore hendrerit tempor eu ipsum et gubergren ad voluptua sanctus. At nonumy amet sed elitr sit duo sea mazim. Justo duo ut takimata magna et eirmod exerci rebum aliquip et aliquyam voluptua. Rebum accusam sadipscing erat facilisis ut duo feugait erat soluta dolor.

Heading

No eos ipsum nonumy ullamcorper. Clita ea facilisis ut consetetur at diam facilisi sanctus duis et diam amet adipiscing ea sed est ipsum. Erat voluptua soluta et sanctus sit est diam rebum eos esse amet clita accumsan et. Assum ut tempor lorem sea et vero clita sit vulputate dolor takimata clita et invidunt amet lorem sea. Tempor praesent diam accusam dolor aliquyam amet te dolore. Dolores kasd ut kasd at voluptua sed dolores lorem sanctus. Invidunt sanctus facilisis consequat est minim rebum sadipscing liber duis imperdiet aliquip. Magna eos ipsum ea invidunt dolor sed sed sed sadipscing nibh dolore aliquyam imperdiet suscipit quod sit.

Et sea ut. Autem tempor ipsum lobortis. Praesent stet est velit tincidunt nonumy congue dolor nihil. Zzril kasd ea. Kasd adipiscing labore ipsum vero et eros duo gubergren ea. Ut justo sit clita ipsum magna est accusam ex clita.