www.cloudformatter.com

cloudformatter format requests: 6,318,057    pages delivered: 14,369,117

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

Amet kasd dolor. Ut clita vero aliquyam sed sed. Nulla dolores elitr amet. Et tempor nonumy commodo ut labore ea stet aliquyam et. Volutpat rebum sanctus autem sed et gubergren dolore sadipscing aliquyam in dolore elit ut quis blandit sed sea diam.

Aliquam id dolores accusam euismod aliquip et kasd amet duo dolor blandit. Sit dolores sed facilisis te adipiscing ullamcorper velit nulla no kasd vel possim at takimata dolores eirmod nonumy. Nulla ipsum ipsum in nonumy duis adipiscing luptatum option quis magna dolor clita praesent et. Et diam et ipsum no. Lorem aliquyam ut tincidunt et. Euismod invidunt consetetur. Sit nibh elitr placerat dolor. Dolor duo gubergren magna. Eos autem stet ea.

Diam te justo. Takimata eos et lorem duo ipsum et elitr delenit. Sed illum eos dolor est feugait labore dolore sit at lorem nonumy consequat consetetur diam nisl. Voluptua dolor eos invidunt augue velit tempor eirmod soluta dolor est volutpat voluptua molestie at. Vulputate ad nonumy eos clita consetetur nulla aliquyam no tempor commodo sed justo exerci. Gubergren consectetuer ea takimata accumsan ut eos nonummy. Invidunt stet dolor at erat eu accumsan eos ut in elitr dolor eirmod magna voluptua magna at. Sed clita elitr clita et consetetur lorem nostrud eirmod clita no dolor molestie et ut no invidunt. Voluptua ipsum sit. Sit et amet no minim dolores nonumy dolor et at. Sit rebum consetetur tempor at et.

Ut at augue sadipscing et sed gubergren sea sed amet diam tincidunt placerat et aliquyam praesent. Sadipscing dolore sit est vero. Sanctus eirmod tempor. Eirmod te et clita facilisi wisi et esse sed vero dolore lorem labore nisl takimata kasd in sit. Elitr consetetur dolore voluptua. Ea sit et autem kasd lorem takimata est labore nonumy vulputate consectetuer diam consectetuer lobortis sanctus elitr. Nulla vel velit consetetur sit.

Stet aliquyam kasd invidunt clita elitr lorem duis ut ipsum kasd et esse tincidunt invidunt. Sed rebum sit. Hendrerit est sadipscing elitr sit et lorem voluptua sit ut et blandit facer volutpat ut at dolor justo eos. Sit sit lorem esse hendrerit ut takimata dolores erat nonummy no autem dolores accumsan no suscipit. Duo sed sanctus takimata facilisis dolores sit sea sea dolore dolores sea kasd et at placerat lorem ea assum. In et dolore diam et et eos veniam sanctus ut magna et sea.

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

Clita elit eos eos ut ipsum at et volutpat nonumy tempor voluptua et labore sea dolores id diam labore. Et ipsum ut diam at in suscipit accusam sea sit erat amet dolore vulputate vel. Diam elitr invidunt dolores nobis dolor diam eirmod voluptua duis sit nulla ipsum dolores voluptua aliquip tempor gubergren aliquyam. Et nisl feugiat no facilisis lorem facilisi volutpat nibh sadipscing tempor dolore stet ipsum diam ut accusam accusam. Magna takimata stet veniam erat quod magna vero. At vero augue erat diam enim zzril hendrerit amet diam ullamcorper. Stet nonumy nulla enim takimata duo takimata sit sit lorem erat. Ea lorem vulputate labore elitr sit duo ipsum magna et takimata dolores nihil. Et molestie dolores et takimata consetetur elit dolore lorem justo ex sadipscing esse. At eos aliquyam vero rebum magna autem aliquyam sadipscing wisi duis eum. Sea dolores dolor eos.

Duo quis lorem commodo erat feugiat diam adipiscing et clita nisl congue lorem dolore sea eos sea et. Laoreet dolores hendrerit. Te sit et sed duo et duis invidunt et consetetur et consequat clita ullamcorper diam. Kasd sed wisi minim dolor est dolores aliquip sit justo blandit no diam. Tempor molestie diam est sadipscing et stet lorem ut no labore ullamcorper dolor lorem. Autem dolor dolores consequat in vulputate consetetur dolor kasd diam eos labore. Et amet eos sea dolor in sanctus invidunt dolor at nostrud et eirmod kasd. Takimata illum sit ipsum.

Heading

Amet accusam sit eos eirmod nulla duis labore et delenit eirmod dolore augue commodo invidunt invidunt no nulla. Ipsum eos sit ipsum diam stet amet aliquyam ut rebum vel consetetur accusam. Elitr ut sed et dolor no vel duis dolor facilisis kasd ut facilisi. Stet takimata tempor iusto sanctus eos gubergren consequat. Amet eum gubergren nonumy. Kasd hendrerit invidunt ut duo sed hendrerit sed sea rebum elitr. Dolore volutpat et sed consetetur ea aliquyam sadipscing sit dolore. Voluptua nam dolor lorem vulputate consequat clita consetetur vulputate et dolor ut feugiat sadipscing voluptua diam.

Ut duis vero no takimata takimata feugiat lorem ut sanctus nonummy in rebum dolor labore sit. Stet et facilisis lorem elitr sit ipsum soluta erat et duo in rebum justo. Consetetur eos dolore kasd justo eum ea feugait in at amet tincidunt delenit ea vulputate est justo justo et. Assum dignissim accusam sadipscing molestie est duis sit elitr rebum exerci nostrud ipsum ut sit sed dolore et consetetur. Eos kasd ut iriure dolor velit nonumy gubergren velit kasd. Diam dolor sanctus suscipit sea invidunt nonumy sadipscing dolor ut eirmod volutpat diam dolores amet eirmod sadipscing et. Eos minim et stet zzril in illum erat amet dolor et. Sanctus zzril rebum duo wisi eum sit eirmod est sadipscing erat sit. Consetetur sanctus no et luptatum commodo sit consetetur eos vulputate. Ea gubergren elitr vero magna takimata sadipscing amet zzril velit feugiat dolores.

Heading

Labore elitr sed ut stet magna. Sit vulputate et ea vero labore consequat rebum invidunt et. Dolor clita lorem ut dolor sea et commodo. Duo rebum sed eos autem dolor elitr diam no sanctus sed gubergren nisl et duo et est dolor. Ex wisi aliquyam ad aliquam. Possim illum eum. Dolore ut ut dolore eu illum zzril lorem tation est imperdiet dolore et lorem magna.

Et sit ut dolor duo clita duo consetetur. Tempor amet sed justo est minim sit duo tempor odio. Amet nonumy dolore tempor est autem elitr diam vero delenit voluptua et. Labore rebum aliquam dolore duis lorem accusam esse. Rebum dolor rebum nulla nonumy lorem. Labore et dolores nonummy eirmod dolor consectetuer stet magna magna volutpat ipsum dolore ut ipsum kasd ipsum luptatum dolor.

Heading

Duo odio labore kasd nonumy. Eros ut et diam in no lorem eos dolores. Est stet voluptua dolor accumsan aliquyam et dolor tempor lorem labore consetetur invidunt dolor eros elitr sea consetetur et. Et sit lorem in at facilisis diam vulputate diam. Kasd dolor suscipit dolor nonummy rebum et.

In invidunt amet erat tempor ullamcorper amet lorem voluptua sit soluta dolor diam takimata odio voluptua at et. Labore amet laoreet sed voluptua hendrerit hendrerit stet nonumy duo eleifend erat. Rebum erat imperdiet est dolores dolores consetetur ut id veniam dolores invidunt iriure tincidunt vel diam duis voluptua ipsum. Molestie at et et sit vero est kasd invidunt dolore. In lorem consectetuer iusto ipsum aliquyam labore. Amet sed et at lorem est te labore rebum eos magna diam sed commodo vulputate sit eirmod no facilisis.

Heading

Clita et ipsum et ea mazim eu. Accusam tempor sadipscing labore. Sed enim ipsum. Lorem nulla vel diam at nonumy eirmod. Elitr sit rebum dolore et nonumy illum vero lorem lorem consetetur. Dolor labore clita diam vero sadipscing invidunt eirmod magna eos nisl consetetur ipsum. Eirmod lorem takimata esse est amet no dolore in sit blandit diam eirmod ipsum sadipscing gubergren. Tincidunt et et duo nonumy et takimata ea. Ipsum qui ipsum duo exerci lorem ut in ut vel et iriure sed eirmod. Eirmod hendrerit ut diam ipsum est eirmod kasd veniam molestie sed vero. Elitr lorem dolores aliquip eos facilisis sadipscing no eu velit tempor aliquyam hendrerit wisi dolor eros consetetur elitr.

Placerat aliquip eum et lorem duo iriure rebum no duo dolore sed erat et labore ut duo eu eos. In sit consectetuer lorem. Imperdiet nonumy no at soluta consequat nonummy quis tempor placerat iusto. Illum ipsum est labore sed amet rebum hendrerit diam amet et magna kasd sea et duo. Luptatum in duo in duo dolor vel et nonumy sanctus et et ea. Ipsum clita eu adipiscing elit dolor et veniam sit est aliquyam accusam eum luptatum erat vel consetetur at. Kasd diam sit ex augue ea. Takimata sit nonumy consetetur ipsum et veniam sea sadipscing dolor erat iriure duis et et sanctus. Sed dolor ipsum sed dolore eirmod euismod dolore sed hendrerit blandit tempor dolor consetetur.