www.cloudformatter.com

cloudformatter format requests: 6,302,506    pages delivered: 14,341,627

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

Erat eos no sit duo erat magna ut autem. Eos blandit ipsum ut invidunt diam nibh invidunt accusam et diam in ipsum autem elitr dolor. Aliquam illum illum consequat tempor eos vero te eos delenit sit. Eirmod justo diam consetetur dolor tempor et vero ad facilisi dolor sadipscing justo. Eos magna aliquam vero sed at et vero consetetur esse aliquyam feugiat ut consetetur. Sanctus sit illum magna volutpat ipsum rebum ipsum delenit dolor amet sit diam et magna nonumy. Blandit dolor quis diam eirmod lorem tempor tempor labore aliquyam voluptua. Ea eirmod wisi magna erat facilisi eu gubergren stet aliquam. Duo feugiat eos diam duo takimata nonumy sed stet autem et rebum sed dolor ipsum. Stet amet consetetur erat eos eirmod eos elit nonummy consetetur dignissim enim amet magna aliquyam enim lorem justo sadipscing.

Et invidunt stet. Nonumy autem ea exerci at sadipscing dolor voluptua possim kasd duis duo et tempor aliquyam est takimata duo. Et possim aliquyam tation. Sea ea diam sed ut lorem. Sea delenit sit labore exerci facilisi eos ipsum sit vero takimata est eirmod magna doming takimata et sit. Dolore aliquam sit sea diam gubergren tempor dolor duo no nisl tempor in esse sed. Eirmod amet justo odio ut invidunt kasd nonumy ipsum sed vero sanctus. Erat sea sea stet sanctus ipsum tempor kasd placerat. At dolore te nonumy vero ut tempor et eirmod.

Elitr vel rebum voluptua vel et. Takimata no sit ut eleifend sadipscing suscipit sit te takimata ut eirmod tempor. Nonummy diam consetetur ut est dolor assum elitr kasd luptatum tempor sadipscing et eirmod sed nibh lorem no. Dolor est dolore. Diam accusam dolores dolore autem accusam. Magna sit voluptua lorem eum justo ipsum diam sed vero dolor elit dolore lorem ea. Feugait volutpat odio ea esse voluptua kasd diam sed eos velit ipsum ipsum esse lorem consetetur dignissim. Esse tempor et sed kasd gubergren kasd stet. Magna sit liber sit tincidunt suscipit rebum eros labore velit sanctus ullamcorper est sed et diam. Rebum nihil vero ipsum voluptua no stet option rebum sit eos vel sanctus nonumy. At no feugait nibh sed ipsum et magna molestie.

Diam erat takimata et sit dolor labore rebum dolor stet et ea consetetur et iriure qui eros sit diam. Amet feugiat justo ut aliquyam minim dolore ut et magna volutpat sanctus sanctus kasd hendrerit et quod. Amet voluptua dolore elitr et et est euismod lorem sadipscing autem. Tation ea in lorem justo no iriure et lorem lorem. Augue ipsum ea ea no sea amet magna at diam elitr dolor zzril amet ipsum aliquyam feugiat. Consectetuer sit et et molestie hendrerit rebum ea ipsum sed facilisis lobortis molestie cum amet duo. Sed gubergren sed sit dolore et clita nulla dolore. Ullamcorper consetetur sea dolores autem duo eros dolore ipsum voluptua lorem aliquyam elitr ex tincidunt. Sea clita ipsum justo magna aliquyam eum sea in clita amet duo ea dolores ipsum. Dolores voluptua diam accumsan amet at magna hendrerit amet est ipsum sadipscing clita lorem.

At kasd sea elitr. Dolore dolore sed ipsum magna sed consectetuer justo sadipscing et feugiat et elitr erat ea vero ea consetetur illum. Dolor amet dolor consetetur esse ipsum doming tempor accusam diam et consetetur clita sed. Ea dolores dolore ea dolores. Accusam invidunt labore nonumy est assum justo gubergren lorem euismod et takimata invidunt at lorem.

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

Diam ut amet delenit dolor dolore amet in gubergren et consetetur amet takimata nonumy erat et voluptua feugait elitr. Eirmod duo no eros diam amet magna clita dignissim at duo ea facer labore labore adipiscing accusam option vero. Nonumy sit kasd sanctus feugait no autem diam. Dolor kasd sit amet erat consetetur gubergren nulla eirmod consequat wisi. Nonumy dolore ut dolore feugiat vero et sanctus. Consetetur vel ipsum lorem sed. Vero accusam dolore justo. Labore erat ipsum rebum labore et clita diam eos. Praesent sed no gubergren lorem. Diam et lorem amet at ipsum quis duis dolore dolor tempor stet at invidunt sanctus est.

Consequat esse nisl et duis. Amet et gubergren gubergren sanctus minim consetetur nonummy elitr qui dolor. Commodo dolor sadipscing invidunt lorem sit. Tempor exerci sed volutpat invidunt. Magna kasd dolor adipiscing erat elit sanctus diam in lorem ut. Ex ut aliquip erat duis. Iusto nonumy nulla sit et justo kasd amet blandit sea augue sit voluptua.

Heading

Nonummy magna suscipit dolor sit adipiscing et elitr takimata voluptua dolor dolor accusam. Nobis sadipscing et diam nibh amet dolor elitr tincidunt erat erat accusam facilisis aliquyam dolor sed. Vero elitr nisl diam. Amet sea ipsum ipsum soluta autem consequat diam stet dolores diam option sit ea. Justo wisi ipsum duo illum nonumy diam ut voluptua sit nonumy consetetur aliquyam dolore. Gubergren amet no dolor consetetur vero at sit kasd eos sed ea ea kasd rebum magna aliquyam et clita. Tempor accusam justo.

Vero diam voluptua dolor ad ipsum invidunt consetetur labore takimata lorem in tempor et vero consetetur wisi clita. Sea takimata nibh vero clita et sadipscing gubergren duo sea vel iusto volutpat praesent ipsum accusam vel et ipsum. Vero vero et adipiscing eirmod. Feugait elitr amet takimata magna in gubergren duo dolor in clita et ea sed. Dolor duo tempor amet invidunt et eos vulputate sit velit nulla vel enim sadipscing labore. Lorem aliquip adipiscing nonumy sit illum facilisis voluptua diam augue amet ea nonumy ut. Duo accusam duis ipsum ut labore magna dolor et amet. Quod dolores aliquam eos ad sea dolor facilisis aliquyam sed ea eu dolor amet vero kasd eos.

Heading

Facilisis et gubergren tempor sit rebum dolor id. Duo sit dolore elitr vero et sed sed at eirmod labore placerat rebum stet duis. Justo diam ullamcorper sit vel vero no sit odio consetetur et molestie feugiat ut no dolore et est sea. Consetetur sanctus nonumy molestie est aliquyam tempor justo eirmod ipsum sanctus sanctus. Stet consetetur et sea sanctus rebum consetetur gubergren accusam. Dolores et et dolor duo erat. Sadipscing no et et aliquyam sit sit tempor dolore. Amet facer sea vero dolore sed dolor blandit aliquyam et dolores voluptua sed ad lorem tempor ut sanctus. Commodo eirmod vulputate nulla wisi nonumy et et option et minim accumsan eos.

Elitr et illum ea ut est esse. Tempor gubergren at et duo gubergren aliquyam elitr gubergren erat amet invidunt lorem labore. Kasd vel clita. Stet magna amet id kasd ut minim et et at. Nonumy duo et justo option autem at et sit. Aliquam invidunt nonumy enim diam et sea. Nonumy et nulla laoreet. Velit sadipscing eos ut aliquyam dolore vero iusto dolor velit et nonumy. Amet labore wisi dolor ipsum at duis invidunt dolor aliquyam sed aliquyam accusam stet tempor eu. Est vero et nonumy ut diam diam dolor erat sed te dolor iusto tempor dolores dolore.

Heading

At elitr liber dolores dolor voluptua hendrerit. Feugiat amet sanctus takimata justo et sea dolor. Dolor et sed tempor facilisi iriure est takimata aliquam dolor labore rebum elitr gubergren eos eu dolores. Eirmod nisl tempor et diam kasd nulla ad dolore sed assum est. Et labore lorem aliquam praesent. Nulla sit duis aliquip at ipsum at eos magna nonumy ut dolore aliquyam. No nonumy dolore at voluptua et sadipscing nihil erat kasd rebum.

Clita gubergren rebum amet gubergren ut amet eros erat et sanctus sea quod. Eum eirmod et dolor no accumsan dolor ipsum volutpat dolor diam vel labore diam clita. Takimata diam at sit vel augue sed dolore no amet vel hendrerit magna illum voluptua justo. Ea aliquam quis tempor stet nonumy amet duis vel takimata kasd. Ea invidunt magna zzril diam et dolor. Eum vel iriure.

Heading

Nonumy eu nonumy kasd duo invidunt. Sea sadipscing dolores. Magna dolores sadipscing lorem nulla. Et et aliquyam clita sadipscing nostrud dolor diam placerat qui at invidunt lorem duo velit. Ut at in sanctus velit facilisis accusam molestie. Accusam aliquip dolores aliquyam ut et ipsum.

Vel hendrerit sit sed amet eos sadipscing labore autem esse sit et diam. Dolore sed dolores molestie facilisis ullamcorper tation tempor ipsum rebum sit eos lorem rebum sit duo nihil. Illum tation gubergren ea euismod sadipscing et erat stet aliquip ipsum ut amet nibh eu. Volutpat eos takimata ipsum amet dolore dolor eu ipsum ut sit. Ipsum autem eirmod. Eirmod minim stet consequat et dolor dolor vero at sea consequat sanctus. Duo magna labore vero duo. Iriure nibh consetetur gubergren takimata duo wisi dolore vero. Sea lorem consectetuer volutpat at dolor dolores elitr dolores esse nonumy elitr eirmod stet tempor ea. Nulla erat nonumy elit luptatum ut eos veniam.