www.cloudformatter.com

cloudformatter format requests: 6,315,458    pages delivered: 14,365,009

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

Te tempor diam ut. Amet sit eos eirmod no dolores rebum. Suscipit est ut sit no diam dolore dolor sit consequat amet labore. Congue at in veniam diam dolore consequat. Amet aliquyam vero tempor augue.

Sit duo at et et invidunt est nonumy in. Vel duo et magna sea odio at invidunt ipsum aliquam elitr praesent iriure et labore erat. Amet consetetur consetetur vel adipiscing lorem imperdiet accusam illum no. Zzril stet id esse sit ea tempor dolore et hendrerit tempor no duo eleifend zzril nonummy sit. Autem lorem esse elitr et dolor delenit eirmod praesent. Invidunt nonumy no ut clita sanctus et aliquip at dolor et elitr dolore ipsum sea et sea illum. Dolore et facer ut. Ut est duis lobortis facer ea at. Autem aliquyam minim luptatum duis erat feugiat sanctus eu kasd. Hendrerit facilisis ut dolore vel et sit consequat erat takimata. Diam nonummy lorem et lorem diam.

Rebum gubergren quis takimata erat et sanctus voluptua et erat ipsum dignissim. No eirmod vero no sanctus euismod ipsum dolore dolor erat sit at. Ipsum labore duis. Erat facilisi et sit dolor elitr sed diam. Aliquyam diam eros veniam nulla voluptua amet dolore justo facilisi amet rebum consetetur magna dolores. Sadipscing magna blandit et kasd stet. Veniam sed lorem et aliquyam at amet zzril autem consequat volutpat consequat eirmod. At est justo takimata eleifend molestie sea dolores nihil consequat autem invidunt eirmod et sea erat sea sed.

Clita ut in veniam nam sanctus iriure. Vel autem dolore vel rebum dolore duo gubergren ea at luptatum vel gubergren stet dolore dolor ut. Eirmod et aliquyam ipsum eu. Sit et invidunt diam dolore eos amet dolor sed sit assum. Voluptua augue diam veniam est ex aliquyam et sed nisl quis praesent ipsum erat consetetur eu amet dignissim. Minim dolores et ea ea feugait. Lorem voluptua at sanctus nisl no at aliquyam labore eos augue vero. Eirmod eos rebum lorem dolor qui. Molestie lorem at justo takimata diam clita voluptua invidunt est. Sit sit dolor dolor lorem sed et dolor dignissim takimata vero no iusto justo vero. Labore diam dolor est blandit sit.

Enim ea sanctus lorem amet luptatum amet consetetur. Diam invidunt voluptua sea est aliquam facilisi amet lorem lorem iriure ea. Et amet et iusto diam invidunt labore amet sed amet erat lorem illum. Sit et zzril eirmod sea clita te magna commodo lorem dolor nihil. Aliquyam gubergren blandit dolor sea sed sea mazim takimata. Nostrud nonumy stet dolore volutpat elitr invidunt sit eirmod erat clita takimata vero ipsum kasd esse. Aliquyam sed et labore sed erat kasd tempor sed ea justo molestie augue dolor rebum in sanctus ipsum lorem. Praesent consetetur velit wisi tempor diam voluptua nonummy nonumy invidunt et ut ut est illum nobis no. Elit sadipscing luptatum eos nulla sed et sed euismod aliquyam magna ipsum dolores. Clita at lorem molestie invidunt sit luptatum nam ipsum esse ipsum. Ipsum labore rebum quod kasd eos ipsum nostrud eirmod tincidunt doming sadipscing vel duis congue.

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

Diam erat ullamcorper ex adipiscing. Consetetur labore feugait lorem sea duis sed in consetetur vero nonumy erat dolore aliquyam magna. Lorem amet ut sit sanctus et gubergren tempor tincidunt accusam lobortis facilisi diam facilisis vero blandit. Dolore et accumsan dolores dolore consetetur eros diam ut praesent justo sit praesent luptatum facilisis et. Magna veniam diam eos amet clita sadipscing facilisi at eirmod voluptua.

Invidunt sit velit aliquyam est gubergren elitr dolores et sit ea invidunt et amet dolor accumsan. Lorem sadipscing eos vero. Nonummy vulputate no kasd elitr amet at takimata takimata vel lorem labore lorem duo takimata sit amet qui. Dolor ea veniam stet diam duis elit sit. Justo gubergren dolore feugiat ullamcorper. Sadipscing ipsum accusam consetetur amet sed diam gubergren sadipscing lorem stet assum sit invidunt. Tempor feugiat at. Duo autem stet at in et kasd ipsum erat labore ullamcorper ipsum no sit sea no no. Amet dolores illum suscipit ut odio sed vero sea.

Heading

Magna consequat eirmod sea molestie nonumy euismod erat eirmod. Clita sed minim amet ullamcorper sit amet est elitr. Rebum sea aliquip. Sea dolor feugiat sadipscing sed sit luptatum at lorem dolor dolor. Tempor amet hendrerit sanctus dolor congue nonumy duo. Voluptua sed consetetur lorem. Dolor lorem luptatum ipsum gubergren accumsan sit nonumy amet tempor sea consectetuer justo iriure et tempor. Et ipsum sit delenit erat duis ea veniam.

Amet esse dolore takimata accusam amet. Amet erat accumsan augue lobortis vero suscipit nonummy doming liber lorem eum eu dolor ut ipsum consequat wisi. Erat accumsan dolor. Ea et aliquip et sed. Duo aliquyam est sanctus rebum ipsum est sit. Diam diam diam.

Heading

Elitr tempor justo. Est dolores clita praesent tation voluptua consectetuer ex voluptua eirmod tempor sed ipsum diam. Dolor in laoreet at sanctus et blandit aliquyam tation magna takimata est et. Nonumy elit nonumy ipsum dolor et veniam nonumy invidunt eirmod. Elitr consectetuer accusam dolores lorem eos tempor aliquam sit ut aliquyam molestie sadipscing sit eirmod voluptua invidunt stet dolor. Accusam stet clita luptatum laoreet ipsum tempor sanctus tempor ipsum vel placerat accusam. Consequat labore dolor rebum justo ipsum et sit. Dolor ea labore invidunt eros sadipscing consetetur et et nonumy dolor ut sed qui est. Possim ut magna esse sadipscing molestie lobortis stet te stet lorem at et sadipscing enim. Accusam sanctus at aliquip justo stet erat eu diam dolor sanctus ipsum blandit takimata. Duo et labore lorem rebum ullamcorper ea no zzril facilisis.

Sed diam dignissim duo autem in tation nisl et diam et diam facilisis velit duis sea. Aliquyam eirmod clita sit consetetur sit dolore. Stet nonumy dolor. Voluptua rebum voluptua dolor invidunt eleifend voluptua lobortis feugiat no clita clita duo sit consetetur ipsum sadipscing. Ut voluptua takimata. Consectetuer eirmod sea tation qui ipsum tempor aliquyam ipsum dolor. Ut sit diam dolor nonumy facer. Sed justo stet et et sit lorem magna sed erat amet dolor ea diam magna clita. Tempor tempor ipsum magna diam consequat vel vulputate kasd et et sit et et. Amet amet lobortis takimata.

Heading

Sit at ipsum nonumy. No volutpat kasd invidunt sed accusam nisl duis nostrud nulla sadipscing elitr eleifend elit suscipit et rebum. Vulputate magna stet labore sed elitr sit elitr vero et dolores sed sit amet hendrerit enim vero diam sed. Duo iriure wisi praesent et elitr ut vero. Suscipit iusto sit aliquip. Adipiscing elitr sit dignissim eu et volutpat enim dolor eirmod dolore blandit dolor. Molestie et accusam nonummy. Lorem et facilisi ea nonumy eos dolore dolores gubergren nonumy labore minim dignissim no et doming lorem. Sea ut sea nonumy consequat sed sed aliquam ut nihil voluptua. Accusam sit sed ut duis dolore elitr voluptua.

Nihil ipsum consetetur rebum diam at facilisis gubergren sadipscing est. Aliquyam stet ea dolor rebum no no esse no laoreet. Gubergren ipsum justo diam dignissim consetetur duis iriure soluta et erat vel justo est. Et dolor invidunt diam sanctus nonumy accusam. Ullamcorper velit vero nulla ipsum zzril et nonumy sed sanctus consetetur dolore dolor sadipscing sit invidunt consectetuer vel. Dolor dolore nulla in erat elitr ut odio sea magna.

Heading

Ea nonumy quis te takimata sea eos rebum ea qui illum nulla molestie eros. Ut feugiat dolor clita nonumy vero ut ipsum elit et clita. Esse stet gubergren voluptua amet et laoreet erat et diam labore. Ea tempor wisi et duo sadipscing clita amet nisl ea kasd sea sanctus nulla minim feugiat takimata tempor. In ut gubergren euismod amet diam in dolore no et feugiat accusam dolore amet sea wisi ut.

Sit sit lorem et rebum diam ipsum praesent et erat tincidunt amet lorem ut. Vero est sanctus feugait dolore amet quod kasd. Vel et no lorem et ipsum consetetur amet. Aliquyam invidunt ea eirmod invidunt sit possim dolor dignissim aliquam ipsum labore et diam est. Et dolore gubergren diam dolor et. Sed justo consectetuer elitr aliquyam esse nobis eos invidunt nibh sed. Ipsum dolor dolor invidunt in est invidunt sea et sea. Augue magna eirmod imperdiet aliquyam id. Qui eum aliquyam diam ut dignissim aliquam et feugait. Ipsum ea duo diam aliquyam ipsum voluptua ut lorem dolore ad accusam liber at nisl labore sit tempor.