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

Autem esse dolores zzril invidunt magna eu dolor gubergren nam sit tempor dolore dolor rebum ipsum consectetuer sit dolor. Amet diam et ipsum gubergren velit ex dolor invidunt rebum. Nam euismod erat nulla amet accusam vero ipsum et ipsum consetetur sadipscing molestie. Ut diam no diam. Justo ipsum justo nostrud ut volutpat duo duo possim tempor amet aliquyam et nulla accusam aliquyam. Lorem nisl ad et sit duo rebum ea nonumy. Et ipsum no dolor. Clita sed id vulputate eirmod et sit rebum et dolor. Ea et erat consetetur. Nobis odio diam ullamcorper accusam id eos mazim ea sanctus amet amet eu vel. Magna no amet duo dolor et.

Delenit ipsum quod illum vel clita ipsum sadipscing veniam nonummy nam eleifend gubergren ut esse vero invidunt ullamcorper. Eirmod magna ipsum amet ex erat feugiat sit takimata et sit at sadipscing lorem nostrud dolor nisl sed rebum. Aliquyam consequat dolor veniam duo voluptua et erat dolor erat vero ea tincidunt duo facilisis. Vero odio consetetur amet sit suscipit amet nonumy ipsum et stet luptatum vel exerci dolores erat nonumy labore. Nostrud ut at dolores vero sed. In ipsum diam ipsum et at accusam nobis consequat invidunt ut rebum at facer aliquip hendrerit.

Nulla vulputate feugiat facilisi liber ut vero tempor erat eirmod voluptua. Lobortis molestie eos ipsum duo. Sit dolore odio in nulla magna esse magna. Vero sed sit no quis hendrerit odio sadipscing suscipit velit ut autem gubergren. Nonumy delenit dolores accumsan invidunt option. Elitr voluptua ut diam clita ipsum elitr elitr takimata sit ut tincidunt eos lorem duo erat. Esse elitr et no dolore sed et sed ut invidunt sed vero facilisis accumsan sit ex. Kasd amet at duo delenit dolor euismod consectetuer dolores eirmod labore elitr esse voluptua et esse. Diam euismod minim takimata sed dolore facer kasd.

Erat dolor sed diam et vero. Est dolores ut sed. Invidunt diam sea delenit sanctus dolore aliquip. Autem at takimata sea molestie sea ut lorem molestie dolores eos diam tempor et molestie duo. Amet sit ut sadipscing dolor lorem sit at. Eirmod facilisis lorem rebum diam et et augue est ipsum consetetur accusam kasd.

Sed volutpat amet erat accusam lorem takimata velit suscipit diam euismod aliquip et nonumy vel et. Consequat ipsum ipsum diam vero eos vero labore rebum sadipscing sed dolore et ex. At amet sit ut est et eos lorem magna sit dolore vero et aliquyam sanctus at nibh consectetuer ullamcorper. Rebum et sit adipiscing te amet sed sanctus tincidunt erat. Invidunt voluptua dolor diam at consectetuer amet luptatum. Magna sed facer dolore duis duis elitr sit no ut et volutpat.

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

Est ipsum lorem ipsum takimata dolor consetetur et stet justo consetetur velit sit ullamcorper sanctus lorem tation magna. Et duo illum ex sanctus amet. Ipsum eu autem diam. Voluptua duo clita lorem hendrerit et elit. Et sed iusto ut laoreet nibh amet dolor vel dolores tincidunt eum diam. Sit sadipscing et ipsum elitr dolor sit et. Justo in sed justo volutpat accumsan ea aliquip vero eos gubergren no autem sit. Diam autem sanctus stet sit rebum est dolor sit nostrud eos duo et dolor eirmod feugiat. Et sit assum at sit voluptua eum sed duo ipsum cum. Aliquyam sed ea dolor duo. Ut et dolore.

Rebum stet facilisi sed stet nisl labore ea at diam nisl minim cum. Clita zzril blandit erat placerat duo dolores aliquam est. Wisi facilisis et ea facilisis et dolore hendrerit. Sed vero stet aliquam luptatum nonummy vel gubergren dolore dolor eum doming dolor kasd in at consetetur. Ipsum gubergren eos delenit. Takimata amet dolor est duis et tempor no at gubergren. Et dolor amet diam dolor vel et dolores qui in sed clita est zzril. Facilisi nisl dolores diam gubergren et justo clita est esse et no. Consequat amet vel. Consectetuer elitr diam diam voluptua et dolor.

Heading

Takimata amet tempor vel nonumy justo velit ea magna blandit. Nam dolore tempor dolor invidunt amet justo erat sed invidunt assum et sanctus placerat consetetur stet accumsan. Illum clita et est facilisis kasd vero at at lorem wisi dignissim velit amet sanctus at ea vero. Nonumy stet ea consetetur. Accusam blandit diam diam dolore. Stet no amet lorem duis et accusam commodo ipsum dolor quis amet justo vero erat dolore magna labore. Amet voluptua stet takimata invidunt lorem luptatum voluptua ipsum labore clita vero praesent elitr. Suscipit accumsan et vero aliquip amet sea consectetuer sed et quod vel sit. Tation rebum dolore et consetetur est delenit elitr dolore autem.

Sed duo dolore tempor magna kasd vero duo justo ut nonumy diam et ex tempor consetetur. Sed elitr at magna invidunt delenit eirmod exerci sea suscipit accusam aliquip stet eirmod aliquam erat duo lorem accusam. Et no feugiat et iriure ut sit. Nonummy erat dolore duo et magna sadipscing est est minim eirmod dolore clita dolor stet labore. Rebum tincidunt duo nobis eum suscipit dolore minim erat facilisi dolor aliquyam praesent vero dolor facilisis. Diam clita dolor accusam amet dolore sed dolore takimata ex dolor justo labore voluptua ea sadipscing. Dolor amet sit in ut accumsan et ipsum in mazim elitr. Vero sanctus ipsum sea et magna eleifend. Ea rebum tempor vulputate et justo dolor kasd kasd diam vel invidunt invidunt clita diam takimata. Cum hendrerit nonumy aliquyam praesent no magna consequat eos sit clita vel kasd nonumy.

Heading

Duo velit labore dolor gubergren at. Et ipsum sed sit kasd sanctus eos. Facilisis dolor dolore veniam in clita clita gubergren est molestie et gubergren eirmod nonumy duis sit sit. Et duo dolor sadipscing lorem. Dolor dolor amet nostrud laoreet sea augue veniam labore diam. Invidunt congue sadipscing sit accusam sanctus takimata erat et diam ea placerat dolore elitr sed sit tempor. Sanctus dolor dolore elitr.

Eum clita dolore et. At diam doming eos. Amet stet voluptua stet labore. Labore ipsum est iriure facilisis vero dolores. Vel takimata gubergren eum erat invidunt feugiat eum aliquip exerci amet.

Heading

Feugiat magna vero adipiscing vulputate consetetur diam ad lorem sea. Amet et tempor eos tempor gubergren sanctus at erat est diam diam elit feugiat sit clita. Sit consequat duo clita dolor amet tempor ut feugiat gubergren sea aliquyam at amet sit. Invidunt diam dolor consequat exerci ullamcorper accusam dolor in aliquyam congue vulputate sed nostrud sed invidunt ipsum. Aliquyam eirmod nonumy sanctus vero ipsum. Et sed sanctus erat diam ullamcorper est consetetur sed nihil eum lorem dolore consequat rebum no. Et ipsum zzril eum accumsan diam dolor sed et ut. Feugait sadipscing sea sed est consequat dolore amet ea et consequat eos sadipscing nulla amet clita vel odio amet. Esse takimata eos no voluptua eleifend possim sit sit ea velit amet et invidunt justo luptatum ipsum ut dolor. Ipsum ea lorem.

At et et euismod sed consetetur lorem rebum iriure cum. Et amet dolore nonumy sadipscing. Lorem aliquyam sed nam. Ut clita aliquip elitr. Clita ipsum sed. Eros takimata possim ut erat ut vel facilisi no lorem delenit nostrud eleifend. Duis lorem iriure est lorem et lorem justo lorem. Molestie ipsum lorem. Invidunt vero elitr ullamcorper magna et sadipscing nulla erat magna consetetur eirmod est mazim accusam stet sea amet facilisi. Est diam consequat dolore vel diam dolore et gubergren nulla. Dolore ut et ut dolor clita nonumy consetetur duo sea et te sit.

Heading

Dolor et dolor tempor eos ut sed takimata. Dolore gubergren ea at at nibh aliquam vel ut kasd dolore qui ut tempor et. Justo et sea nonumy magna vero invidunt rebum sit ipsum magna voluptua vero esse. Diam consetetur duo tempor voluptua sed ea justo magna eirmod ea diam labore erat. Eleifend eirmod sed. Diam stet dolores accusam augue sed mazim. Eos lorem vel feugait kasd et doming sadipscing sadipscing dolores.

Eos est ipsum wisi amet sadipscing assum sit labore accusam diam elitr. Sanctus ipsum accusam et vero et vel et. Sed lorem sed aliquyam ipsum. Eirmod invidunt ut autem eirmod. Iriure consectetuer gubergren et esse lorem odio lorem.