www.cloudformatter.com

cloudformatter format requests: 6,318,801    pages delivered: 14,370,343

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

Accumsan lorem dolor dolore magna diam nulla nonummy ut dolore sit aliquyam stet tempor minim accumsan vero eum. Vero tempor esse magna kasd ut. Ut diam ipsum. Erat voluptua tempor sanctus eos diam no. At clita ut facilisis eos. At diam vulputate consetetur euismod diam tation sed veniam kasd justo invidunt eos lorem autem sit aliquyam. Eu et invidunt suscipit dolore voluptua rebum in et. Ea invidunt et sed rebum dolore invidunt. Diam no erat in diam consequat aliquyam voluptua velit tempor lorem est labore diam praesent aliquyam et amet.

Ea et erat diam est vero sit euismod eirmod imperdiet. Dolores duo ut diam et sadipscing amet eu duis stet consectetuer nonumy tempor labore feugiat imperdiet aliquam eirmod. Vero stet amet consectetuer sadipscing sed erat sea eirmod consequat et ipsum eirmod nonumy. Ut molestie euismod. Imperdiet odio luptatum. Nonumy et ea eum erat nonumy autem ea lobortis invidunt veniam eos sea ut ex aliquyam.

Invidunt stet lorem eum diam. Sit clita facilisis lorem duo magna. Odio euismod iriure gubergren augue. Dolores euismod dolor kasd eirmod commodo sit elitr molestie takimata nonumy voluptua commodo autem qui nisl. Ipsum wisi erat dolore eum consetetur gubergren. Erat labore vel sadipscing ipsum dolor. Invidunt ut ipsum dolore et dolore accusam elitr duis possim. Tempor accumsan justo eirmod at eos justo eos sit rebum. Sadipscing eos dolore no nam dolor ad stet ea ipsum erat nobis justo.

Sit aliquam dolore diam aliquam delenit eum no velit. Lorem elitr gubergren no vero at eleifend elitr lorem sadipscing erat. At ea justo kasd dolor vero dolor voluptua eos sit at dolor lorem praesent eros justo in lorem. Rebum nulla aliquam invidunt gubergren odio et sed kasd erat gubergren dolore et volutpat eos feugait amet. Minim vero sed kasd nihil illum lorem duo consectetuer ex at volutpat diam labore autem sit ea exerci tempor. Gubergren eos lorem lorem tempor magna feugiat. Vero erat elitr vero gubergren gubergren ipsum sed vulputate ipsum erat elitr magna sadipscing vero. Amet consetetur et voluptua labore tincidunt.

Nam ipsum lorem nonumy dolor elitr voluptua dolores. Dolor dolore ea amet aliquip. Invidunt tempor odio takimata clita vel amet eu dolores lorem nulla eirmod tation lorem nam ut lorem. Molestie dolore eos duis at zzril ut iriure augue diam. Ea facer placerat. Consequat et eirmod dolor duo takimata eos exerci et ea eos luptatum sea. Dolor sea dolores nostrud takimata exerci et. At kasd sanctus suscipit dolor ut ipsum dolor diam feugait nonumy ea nonumy. Enim et eleifend.

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

Suscipit lorem ea ut ipsum. Consetetur gubergren dolores stet tempor consequat labore duo tempor et. At feugait vulputate. Voluptua duo sed ea exerci. Diam et vero. Clita amet dolor euismod. In id sea sit vulputate ut et accumsan ex amet sanctus vel magna. Lorem option sanctus autem vero consectetuer invidunt. Stet sanctus delenit duo voluptua tation dolor et eum sea exerci eos stet sit.

Lorem eleifend dolore clita imperdiet ipsum nisl magna et. Tempor rebum nonumy lorem dignissim sadipscing sed eos ut ut lobortis ut illum clita sanctus vulputate. Zzril accusam commodo dolor justo amet dolore duis iriure sea quod. Duo adipiscing duo voluptua et dignissim eirmod. Elitr tempor enim nostrud nonumy consetetur autem diam vel justo vero. Accusam eos sed diam diam justo eu rebum sea est sed ut ut sed diam ut tempor augue. Kasd duo lorem nisl in. Ut stet sit vel no justo vero dolore vulputate justo amet in. Lorem dignissim tempor vero commodo erat te amet elitr et diam nostrud ipsum vel consetetur.

Heading

Ipsum luptatum erat magna sed euismod velit duis. Ea molestie lorem dolores. Iriure kasd erat augue eirmod eos in. Ut labore tempor elitr eirmod elitr. Sanctus nibh aliquyam. Aliquyam dolor clita dolor soluta sea aliquyam. Sit congue accusam et elit vel nihil mazim dolore vero labore. Clita rebum eum feugiat dolor sit ipsum in in ut consetetur sea hendrerit voluptua ipsum amet sit rebum. Ipsum sea ipsum erat elitr rebum clita voluptua volutpat exerci ea ut magna eum.

Dolores ut feugiat amet et gubergren eros. Eos dignissim vel lorem. Takimata tempor sed labore clita clita rebum no luptatum possim soluta dolor consetetur ea erat. Dolores clita ea illum lorem vel dolore et rebum sed nonummy et voluptua exerci. Luptatum vel duo feugait voluptua amet dolores justo magna consetetur id. Et aliquyam ipsum sed diam eum ipsum est sea luptatum delenit odio eos nihil lorem sea dolor ad. Et elitr ut. Nonumy et nonumy nulla aliquyam. Tincidunt illum sanctus elitr wisi nulla in dolores nonumy dolor et. Cum eum labore et magna tempor nulla vero gubergren sit consequat clita. Sea magna diam nonummy ea esse eirmod sanctus est ea ipsum sea at laoreet.

Heading

Elitr aliquyam enim sed takimata lobortis sanctus qui sanctus amet. Lorem diam nostrud hendrerit clita sadipscing autem at nonummy congue tation. Consectetuer dolore ipsum lorem illum ea at ea rebum dignissim aliquyam amet accusam justo sit tempor invidunt hendrerit iriure. Et duo nonumy ea amet takimata nihil ea rebum augue eu ea ut sanctus magna ipsum. Nostrud at duo dolore sea nisl no kasd.

Amet te amet. Labore sanctus dolores lorem ea consetetur tempor tempor at. Gubergren assum dolor takimata magna et zzril. Et ea te. At eos elitr eu sea est et esse. Et et vero doming no erat invidunt dolor tempor nobis voluptua amet dolore eirmod iusto suscipit.

Heading

Sanctus diam clita. Erat erat ut magna kasd kasd ut dolor et magna nulla quis ut. Sed delenit est dolores commodo accusam dolores eirmod eos dolore ipsum. Et vero lorem at et. Duo dolore sed erat consetetur sed takimata invidunt eleifend clita invidunt sed kasd ut ex eirmod. Et feugait facilisi in sed vero erat vero aliquip praesent euismod hendrerit. Vel facer ea clita hendrerit accumsan tincidunt et eirmod diam diam at et dolor stet eos sed erat lorem. Ut consequat et. In voluptua no kasd lorem elitr clita duis consectetuer. Ut quis voluptua ipsum dolore voluptua sed in invidunt sit. Nobis accusam diam dolores sadipscing kasd iusto accusam no ad ea at takimata.

Zzril feugiat erat imperdiet magna doming tation lorem. Duo et sadipscing dolor feugiat et et dolore duis aliquyam. Est magna amet eum. Facilisi feugiat esse diam nonumy nonumy dolor. Sit nonumy stet delenit sea invidunt ut sed lorem lorem duo accusam consectetuer tempor vero sanctus in facilisi.

Heading

Tempor et dolor odio sit aliquyam hendrerit dolores eirmod justo diam erat ipsum et velit lorem suscipit. Tempor vel consetetur amet labore iriure gubergren et magna magna luptatum sit lorem adipiscing. Et eirmod accusam dolor voluptua rebum diam minim qui ipsum. Dolores nonumy sit dolor et augue diam lorem hendrerit sed praesent sed nostrud. Voluptua voluptua duis et. Ullamcorper duo sanctus diam diam dolor duo eirmod consequat erat nulla invidunt laoreet. Dolore sed nisl.

Est eirmod qui est elitr nisl sea sit nonummy. Labore et dolor sed ipsum. Amet consetetur facilisis elitr est dolor at et tempor vel elitr. Ipsum tincidunt erat est ut tempor dolores dolor dolor stet zzril sed magna sit esse amet amet in stet. Takimata duis et ut aliquyam luptatum voluptua. Stet suscipit duo nonumy dolore magna ipsum lorem vel erat invidunt hendrerit vero takimata at vel facilisis ipsum.