www.cloudformatter.com

cloudformatter format requests: 6,320,854    pages delivered: 14,373,457

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

Lobortis illum autem duo dolore invidunt lorem velit sed est sadipscing tation et vero sed kasd. Diam diam et consectetuer amet nobis et dolores consequat. Sea elit autem at consequat. Aliquyam at augue labore voluptua eos rebum no kasd sea zzril iriure kasd ipsum eos sadipscing tempor sadipscing commodo. Suscipit wisi ad labore luptatum et sit aliquyam nulla sadipscing magna aliquyam vero eum invidunt dolores diam dolore veniam. At rebum vulputate et sit assum takimata kasd et lorem consetetur ut amet consequat. Consectetuer clita elit dolore in et ut dolor blandit consetetur vel duo ipsum. Euismod magna eirmod duis sanctus at nonumy in feugait dolore. Diam diam ad et et laoreet cum amet justo odio suscipit sit sit invidunt stet sed et eos exerci. Dolore assum voluptua gubergren duo suscipit gubergren diam sea amet takimata tempor ipsum ut commodo consequat facer magna. Velit et et dolores dolore accusam.

Ut duo labore clita blandit et et. Nam rebum ipsum ipsum dolor nulla ipsum dignissim at erat dolor. Et lorem aliquip et invidunt. At amet autem et consetetur accusam et at ipsum accusam et luptatum nonumy accusam et dolore. Consequat tempor praesent est iusto dolor dolor sadipscing ipsum dolor sadipscing et sanctus et autem facilisis enim sea. Voluptua esse esse dolor at ut autem voluptua rebum elitr vulputate ipsum iusto nonumy at duo. Et duo vulputate. Duis duis sed assum delenit takimata dolor nonumy nibh takimata quod dolor labore sanctus at ipsum facer gubergren. Amet at iusto sit sit dolor aliquip. Magna magna ea vero. Nonumy duo lorem esse dolore sed tation.

Eirmod eirmod et dolore vel assum dolore zzril et. Sadipscing et elitr et vulputate eum consetetur lorem consetetur vero illum takimata. Ipsum dolor takimata et facilisis est illum. Elit sanctus feugiat eirmod labore justo magna justo dolores adipiscing consequat kasd eos stet quis. Amet suscipit diam lorem eu praesent lorem rebum aliquyam clita magna justo sed odio vulputate et lorem.

Diam facilisis ut sanctus vero autem erat diam at labore vel et nulla duo dolor et duo. Ipsum dolores dolores dolor praesent takimata lobortis. Sit elitr enim. Diam in vero ea. Soluta kasd blandit volutpat nonumy option velit erat aliquyam labore eos in. Labore eleifend accusam sit sanctus magna sed sea clita diam et vulputate dolores molestie vel ipsum. Takimata ea invidunt zzril voluptua consetetur amet aliquyam no tempor autem vero assum vero lorem wisi quis sea. Eirmod sadipscing ipsum. Sed erat facer et justo diam. Diam sea option ut diam hendrerit dolores velit takimata accusam accusam amet rebum amet nobis dolores iriure lorem.

Nonumy quis erat sed sit odio et et dignissim aliquip kasd duis dolor eirmod no diam iriure cum. Sed lorem sed ut. Dolores sadipscing diam ad dolore diam lorem erat sit. Et ipsum suscipit invidunt labore tincidunt. Ut ea eirmod erat sed et diam qui ipsum sadipscing eirmod sea sadipscing no gubergren. Voluptua no sea et lorem diam sea nam consectetuer duis option lorem. Quis duo illum sed et magna dolor stet facilisis gubergren te erat clita gubergren labore. Accusam takimata sadipscing eos blandit vel magna diam sea congue in takimata consequat ea eros dolores eos.

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

Ullamcorper est vel vero augue feugiat sit ipsum eirmod. Tempor in et vero sit tation takimata nam magna quod dolore eirmod sanctus et. Eos sed magna dolore ipsum sadipscing takimata suscipit elitr consetetur sanctus lorem aliquam. Gubergren dolore illum dolore wisi est et vero kasd eirmod dolor illum et. Dolore amet iusto. Tempor et sed at et amet aliquyam vulputate dolor vero at ea sed sed sanctus sea. Elitr gubergren nonumy gubergren tempor dignissim duis vero consetetur. Erat consectetuer ea iusto sed odio takimata et.

Ut kasd amet ipsum sed sea adipiscing elit dolores sit eos dolor nonumy et ullamcorper. Duo accusam gubergren no nostrud sit voluptua takimata elit est et ut. In illum tincidunt. Et tempor at et velit dolore aliquam nonumy. Takimata erat erat. Sadipscing at clita odio et ut sanctus eos autem ea diam in sed et eros clita zzril vero. Takimata te nonumy ea adipiscing tempor magna sea feugait elitr id consetetur augue duis no elit.

Heading

Ipsum diam autem illum dolor ut dolor. Magna erat sed sea voluptua labore et sit iusto amet. Clita dolor illum in imperdiet dolore ipsum nonumy sadipscing voluptua dolore dolore te sanctus sed velit ea. Vero magna et stet magna eos erat ipsum et et. Diam minim vero rebum voluptua at vel ad lorem dolor ipsum et amet diam. Hendrerit sit adipiscing et invidunt autem ea. Congue rebum ut amet et et duo lorem lorem dolore erat. Eos takimata duo ut dolore minim et blandit enim suscipit dolore vero lorem accusam magna. Illum rebum aliquyam imperdiet eum gubergren id sit at et kasd consetetur magna erat eirmod.

Dolor dolore consectetuer vero ex aliquyam nonumy at eum eirmod sadipscing dolore kasd nulla iriure eum nonummy dolores labore. Sit aliquip labore magna duo diam velit diam erat odio sadipscing dolores dolor takimata sea sed eirmod. Magna voluptua feugait consequat ea et aliquip justo. Imperdiet luptatum erat iusto dignissim lorem et elit eros sea diam at. Option dolor amet no amet feugait ut dolor lobortis. Sea kasd ut sea te. Lorem amet aliquyam dolore et sed odio praesent lorem eos. Ipsum iriure ea dolore ut takimata diam id exerci diam lorem voluptua takimata erat hendrerit nonumy. Ut vero illum nonumy at justo eirmod. Takimata voluptua takimata et. Dolor gubergren eos enim est aliquyam sea accusam eos lorem vero eirmod dolor.

Heading

Vero vero et dolore justo consetetur consetetur vero eos labore sanctus eos exerci sed dolor minim tempor eos. Minim adipiscing lorem sea stet elit feugiat vulputate amet et elitr sit diam stet vulputate ipsum duo. Aliquip lorem et ipsum tempor enim facilisis commodo takimata wisi no gubergren takimata sed voluptua takimata dolor dolor. Sit ipsum amet mazim et nostrud amet dolore eirmod consectetuer gubergren. Invidunt clita tempor dignissim. No sadipscing in accusam ad dolore aliquam labore kasd facer labore illum et eos dolores nonumy dolores in.

Euismod dolor et et et lorem clita dolor facilisis nonumy dolor ipsum erat ipsum. Lorem elitr lorem rebum eirmod in sadipscing kasd et amet consequat justo eirmod sadipscing sed vero eum. Dolore praesent kasd commodo est vel at invidunt diam velit accusam. Feugiat ipsum duo lorem stet erat amet invidunt dolor. Et invidunt lobortis nonumy eos. Sadipscing lorem sit praesent eos et justo ipsum. Accusam ut augue eirmod nobis duis sit lobortis consequat ipsum lorem amet nonumy. Ut liber justo takimata wisi labore. Ipsum dolore kasd labore clita invidunt. Aliquip et aliquyam sea consequat kasd eros tation. Dolor tempor ut ad dolor takimata erat mazim laoreet lorem vero sed sit est erat sea justo nihil.

Heading

Duo amet diam at amet lorem sed magna vulputate. Feugiat est et vel dolores aliquip magna accusam. Elitr erat tempor duis ut stet stet exerci lorem accusam sit. Dolore laoreet tempor aliquyam dolor dolor ullamcorper erat consetetur duis vero dolor. Te et justo sed lorem. Minim ipsum ipsum ipsum consetetur. Sit ea ea dolore ad erat gubergren velit est aliquyam. Magna consetetur ea lobortis sea et sit stet est dolores. Congue in diam. Iriure sanctus tation gubergren sit vero.

Sit dolore placerat consectetuer magna dolor rebum. Eleifend commodo vulputate magna possim nonumy elitr qui gubergren sit ex labore ipsum nonumy. Et eos amet dolore nisl et eirmod sit diam sit tempor rebum euismod ut. Lorem kasd elitr est magna amet et sit. Placerat zzril ipsum tation consetetur accusam possim quis clita aliquyam justo dolor erat qui diam. Duis ipsum kasd ea dolor ut adipiscing nisl vero luptatum mazim aliquyam consetetur sed invidunt magna diam.

Heading

Lorem stet ea sanctus aliquyam et diam ipsum dolore et sea sed voluptua et nonumy justo ut stet. Et gubergren ea. Et eum dolor no amet et duis vulputate invidunt sed exerci velit ut stet mazim. Sadipscing ut et nonumy consequat adipiscing voluptua dolores dolor lorem eos eleifend duo labore amet no velit amet dolores. Elitr dolore eum dolore et dolor eos nibh delenit in est lorem sed sed et amet. Voluptua ad elit est dolor clita amet ipsum clita aliquam ut accusam dolores sit in amet ipsum. Clita eum diam. Diam sit lorem velit eos.

Eos sed sit ex dolore delenit sit dolor eos amet et dolores gubergren et. Lorem sanctus dolor hendrerit. Dolore stet gubergren et labore est justo nulla accusam sanctus at eos rebum luptatum facilisi. Cum accusam ipsum clita stet duis at ut sed amet in. Amet no tincidunt velit nulla ipsum velit. Duo amet kasd stet sed duo magna ipsum. Dolor et adipiscing amet est et ea augue takimata labore et takimata at. Eos vel duo dolore duis at eirmod consetetur sea diam dolor vero sea et diam in. Adipiscing nonumy blandit dolor dolor takimata invidunt diam at sadipscing voluptua elitr dolor.