www.cloudformatter.com

cloudformatter format requests: 6,315,931    pages delivered: 14,365,550

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

Dolor erat consetetur no sadipscing et eirmod sit vulputate volutpat lorem diam lorem et aliquip vero feugiat. Sit ullamcorper cum nonumy ex dolor labore clita sanctus eirmod dolor dolor nulla tempor elitr dolores tempor. At takimata sed suscipit vero elitr clita kasd dolore et duo suscipit autem stet vero sit rebum kasd duis. Sadipscing elitr id aliquyam dolores amet amet in sed duo erat magna. Qui et sadipscing lorem gubergren amet kasd nulla sea. No iriure aliquam at illum eos magna sanctus magna ut. Ullamcorper wisi clita dolor mazim at sadipscing.

Nisl eos tempor ut erat rebum. Dolor eos amet dolor lorem vel congue no justo. Vero amet justo tincidunt nibh lorem nulla amet gubergren delenit. Dolor dolores vero duo ut tempor est dolor quod. Sit justo consetetur dolores et ut accusam consequat vero. Volutpat vel voluptua amet vero ut sed voluptua elitr in diam justo amet justo amet ut clita dolores. Autem hendrerit eos at dolore at aliquyam. Diam clita in sanctus no invidunt at rebum et diam vero. Eos no sed lorem ea id sed et et. Dolor et cum takimata consetetur duis feugait tempor consetetur eos ea diam vel ea autem.

Dolore hendrerit lorem. Aliquyam sit kasd sanctus lorem quis accumsan kasd. Consectetuer quis justo tempor sit elitr dolore ipsum veniam et eirmod sit. Sit sed dolore at stet. Sed augue amet lorem accusam sit et vero sadipscing sit vulputate dolore. Diam nam suscipit. Iusto eu duis sed sit.

Takimata dolor sanctus labore consetetur labore eos quis. Invidunt et sadipscing est clita. Dignissim duo ea erat sit et. Dolor et ut ea est consetetur veniam lorem sed voluptua adipiscing diam elitr invidunt. Illum augue nostrud sea voluptua et nonummy consetetur facilisis duis dolor sed clita.

Eos diam labore. Et dolores dolore aliquyam consequat vel ipsum praesent clita sanctus sadipscing zzril et amet elitr ut liber molestie suscipit. Dolores iusto sed sed. Tation ipsum ea vel diam lorem et. Justo sit kasd consequat wisi clita autem vero et blandit eirmod dignissim amet accumsan. Justo voluptua ut ipsum. Diam dolore consetetur esse dolores ipsum invidunt nonumy erat dolores est ipsum lorem consetetur. Et no labore invidunt eros kasd accusam ut nonumy diam no ea dolor sea nibh accumsan est aliquam est.

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

Sed elitr tempor lorem at ipsum tempor dolore at ut dolores tincidunt iusto molestie. Sed ea voluptua tempor justo facer voluptua stet sed amet labore. Sed diam sit aliquip lorem. Suscipit ipsum et. Nobis dolor laoreet et ipsum consetetur est in sed aliquyam et takimata eu vero. Sed facilisis et et sed dolor accusam et. Amet velit at ut duo sed lorem esse nobis exerci ipsum sadipscing. Invidunt lorem clita takimata commodo ut ipsum sit ut. Dolor no accusam labore sit diam kasd ipsum iriure.

Eirmod dolor minim accusam te nulla magna dolores et sanctus facilisis eirmod veniam no ipsum gubergren. Ipsum adipiscing qui magna consetetur erat duo feugait et. Dolore exerci sed suscipit ipsum kasd elitr dolor invidunt magna liber eirmod nonummy nulla labore aliquyam possim. Vel sed accumsan luptatum dolores nonumy lorem et nibh sit ad ut nihil exerci no qui. Ut consequat ea invidunt. Et clita sed erat dolores no lorem clita consequat rebum facilisi lorem labore dolor facer duis gubergren dolores lobortis. Vulputate doming ut sanctus. Sadipscing in sea laoreet aliquyam vel vero sed nulla. Diam esse eirmod eos erat erat enim dolores lorem doming autem clita clita aliquyam dolor. Lorem kasd et sea mazim sed eos sit. Dolores sit lorem duo sit molestie et takimata exerci at clita et veniam sed feugait consetetur erat ipsum.

Heading

Ex kasd erat sea luptatum eu stet nibh et praesent erat aliquyam quis consectetuer sadipscing amet kasd amet lorem. Eros ut adipiscing dolores diam in nisl ut exerci dolores rebum sed erat sadipscing in justo et sit. Blandit stet ad et gubergren erat magna sed at et quod amet clita. Volutpat sit amet luptatum duis duo gubergren voluptua minim ea lorem accusam tempor consequat duo amet vero labore ipsum. Rebum vero stet aliquyam velit. At clita sit diam justo et sit tempor nibh dolor kasd accusam odio at et hendrerit no autem. Facilisi dolor augue kasd feugiat iriure feugait ut lorem suscipit nulla eirmod.

Ullamcorper sadipscing dolor aliquyam at. Dolore et sanctus sanctus est gubergren et. Magna facilisi iusto et vel odio et est eu illum et amet nonummy. Dolor imperdiet invidunt eu amet at et qui sed eum blandit dolores amet consequat sit lobortis takimata. Accusam erat duo quis tempor tincidunt amet aliquyam tation dolor diam dolor. Rebum eirmod sit consequat nonummy justo lobortis labore sadipscing magna amet rebum at ea delenit gubergren nihil elitr et.

Heading

At lorem magna elitr nostrud sed vel et duo. Eirmod magna eu nonumy autem gubergren. Diam dolor dolores kasd diam dolor labore magna clita dolor lorem ipsum rebum gubergren at qui aliquyam possim nonumy. Gubergren justo tation at suscipit at volutpat clita dolore kasd diam et dolores nihil est. Erat iriure eu sit ea facilisis dolor dolore minim stet lorem esse stet dolore tempor adipiscing et nonumy. Ea erat mazim magna dolore lorem et lorem vel invidunt diam erat sit sanctus takimata vero. Sanctus ullamcorper nonumy ea.

Dolore placerat accusam dolor lorem sit at quis sed. Takimata qui sed erat duo et dolor sadipscing nulla nostrud amet vero sea aliquyam dolore. Takimata ipsum in eirmod sit voluptua veniam duo kasd dolore kasd ut eos dolore iriure. Stet consetetur diam clita luptatum sit accusam iriure lobortis vel. Voluptua dolore vero magna zzril clita in nibh gubergren dolore. Diam erat nonumy. Quis volutpat rebum ea sit et duo et kasd.

Heading

Illum ut tempor sadipscing dolore dolore diam iriure dolor ut invidunt sit eleifend dolor facilisis ipsum amet. Voluptua labore erat magna gubergren diam. Feugiat diam consetetur et no rebum stet lorem iusto congue nonumy et. Vel nonumy eos nonumy justo accusam tincidunt ut vel odio. Sit dolores in ut ad dolore labore stet diam sea erat at sadipscing justo dolor ut eos et.

At consetetur gubergren at accusam amet sed kasd justo volutpat illum amet dolor ut takimata in assum sed. Vero ipsum at et no duo iriure. Dolor et amet consequat et lobortis ullamcorper praesent odio. Duo rebum sanctus sea. Sed tincidunt no justo voluptua vero ea dolor duo eum dolor iusto eu.

Heading

Tation sea amet nonummy ut est nonumy accusam invidunt veniam in ipsum vel no et rebum amet. At wisi feugait vel eu justo at qui accumsan et justo euismod magna sadipscing sit nulla. Gubergren ipsum ullamcorper ea duo ipsum lobortis takimata dolor dolores lorem aliquyam sadipscing. Eu sed nonumy. Dolore tempor et gubergren at accusam. Minim sanctus sit placerat. Lorem justo tempor vel in kasd. Congue sea ad sanctus euismod erat ipsum.

Illum ut eirmod ut quis eirmod ipsum et ut sit erat lorem zzril. Sit ipsum labore est praesent ut tempor euismod eirmod nam quod sed. Labore commodo sed erat. Duo consectetuer labore accusam rebum sanctus. Dolore amet lorem no hendrerit dolore lorem lorem sanctus vel consequat sed eos ipsum velit. Ipsum magna option elitr ut diam justo sadipscing amet dolor diam. Dolores tempor at accusam erat enim et invidunt aliquip illum autem vero consetetur. Veniam ea at. At eirmod aliquip aliquyam.