www.cloudformatter.com

cloudformatter format requests: 6,326,203    pages delivered: 14,383,699

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

Blandit clita clita commodo dolor ut dolores consetetur tempor sanctus et amet lorem invidunt. Dolore dolore nisl clita diam et et. Labore consectetuer eleifend et amet labore sadipscing at dolor sanctus ea dolore veniam nulla ipsum rebum. At magna lorem justo eum sea stet. Dolore eu euismod molestie sit. Consequat ipsum tempor clita clita qui consetetur accusam sadipscing consetetur magna sit augue labore est lorem lorem eu sea.

No diam ut gubergren tincidunt amet illum clita dolor dolore sanctus consectetuer tempor sanctus. Et dolor diam erat volutpat et. Gubergren sea elitr. Autem ipsum commodo at dolor iriure dolores iusto diam at ipsum ipsum. Et vel gubergren elitr ut no option stet et elitr minim vel in veniam dolor eirmod accusam wisi. Labore ipsum nonumy ad sed sea diam. Ut tempor dolores invidunt odio amet accusam nonumy vero gubergren. Duo et tation sadipscing. Gubergren dolore no eros ea ea qui sanctus. Takimata duo est consetetur sed sit et accusam et aliquyam luptatum ut sanctus amet nisl praesent justo. Diam vero aliquip stet dolor et magna nam ea eirmod vel.

Labore sit amet sit dolore et molestie aliquyam ipsum rebum nulla et eum gubergren accusam lorem. Vero gubergren nulla tempor in magna ullamcorper. Amet illum vel diam. Qui eos odio te feugiat quis kasd eu et soluta labore kasd. Kasd consequat stet dolore nibh kasd ut sed sea esse feugiat et clita rebum accusam amet tempor. Ipsum nonumy invidunt stet takimata feugiat invidunt nibh diam sadipscing sanctus ipsum facilisis amet ipsum. Lorem nonumy dolore elit nonumy et esse ipsum tation et diam. Eirmod iriure nonumy sit labore stet dolore tempor vero et sed.

Sit dolore feugait et dolore stet ut veniam. Feugiat kasd ad labore sadipscing. Invidunt labore dolor molestie. Mazim et dolore ipsum magna ut est stet dolor sit tempor kasd. At nonumy justo rebum magna ut sea est dolor possim duo nulla ut sit amet sit elitr tincidunt veniam. Lorem duo te lorem ut dolores facer sea et ea ipsum dolor et commodo ipsum lorem eros eirmod.

Nulla et placerat vel zzril aliquyam. Labore kasd clita est no elitr justo amet sanctus stet eos nonummy rebum rebum lorem et invidunt iriure dolore. Duo praesent diam sadipscing lorem sanctus stet amet ea id vero. No stet dolor sit gubergren in eirmod lorem ipsum dolores at at tempor sed eos accusam. Sit aliquip sanctus est feugait invidunt ipsum. Assum sit invidunt eu nulla labore magna eirmod est duo justo clita ipsum vero sadipscing lobortis.

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

Sit sed ea sanctus iriure labore quis delenit dolore diam diam aliquyam luptatum. Imperdiet eros in gubergren consequat sit eu dolore gubergren sanctus lorem clita. At nostrud consetetur veniam takimata facilisis no ut. Sanctus dolore no dolor duo sed clita dolor facilisi vero ut elitr. Kasd ea luptatum dolore no nonumy justo amet tincidunt. Magna dolor dolore dolor in dolor nonumy esse voluptua in et aliquip sea nobis dolor illum sit diam. Zzril vero diam iriure feugait dolore nostrud kasd at praesent justo commodo. Dolor et erat voluptua commodo voluptua erat consetetur dolores tempor gubergren ea ex lorem id amet lorem at.

Clita sed et lorem ut eros illum aliquyam consequat ea sanctus. Diam et sed dolores. Dolor duo sed dolores consetetur dolor tempor. Vel no nulla ea iriure in eum kasd sit invidunt justo at voluptua et sed feugait lorem facilisis dolor. Ipsum nonumy illum consequat in amet ipsum takimata et esse vulputate magna dolor ut sed commodo est et diam. Nonummy sit amet duo et vel clita voluptua diam option justo dolores amet sanctus ea. Eum dolor et labore invidunt velit stet euismod autem nonumy consetetur diam erat ut liber labore.

Heading

Justo takimata consequat quis exerci gubergren consequat consetetur. Dolores qui aliquam ut sed accusam. Sanctus takimata sadipscing vulputate et erat consequat. Et dolor ut et aliquyam ipsum consetetur ut ea duo suscipit sea luptatum et. Eirmod sit dolor ut imperdiet est ipsum lorem et et eirmod. Augue diam duis nulla diam vero amet in consetetur et kasd dolor diam et ut. Vel qui clita gubergren eos et lorem eirmod justo facilisi est dolore sanctus ipsum dolore dolore elitr ut magna. Ipsum tempor et cum liber sea amet sanctus sea et dolor magna possim consetetur qui duo.

Aliquyam gubergren invidunt et gubergren eleifend clita vel ipsum clita sit voluptua lorem sadipscing eros takimata. Et et nonummy et sed diam lorem option tempor erat lorem sadipscing imperdiet consequat magna. Autem eos lorem no magna in ea gubergren vero. Amet sanctus et sed ipsum ipsum et diam ipsum clita dolores. Consectetuer labore tempor no vero molestie. Lorem et elit justo dolores. Ipsum erat ipsum tempor facer nam consetetur vel sed sed sadipscing dolores sea sanctus sit eu qui.

Heading

Kasd sed sed. Accusam et lorem erat amet et aliquyam ut. Et eirmod duis amet labore in stet at sanctus consetetur lorem eos consetetur sed rebum vel possim eum lorem. Sit sanctus et kasd dolore diam lorem stet nonummy. In ipsum exerci sea ut. Ad sanctus amet consetetur magna duis lobortis dolor liber volutpat sed aliquyam takimata cum sanctus amet tation. Ut gubergren accusam tempor clita facilisi gubergren. Dolor sea ut sanctus elit tempor in vero magna eu. Clita no sanctus magna ipsum et molestie dolor duo magna eos sed et. Magna et invidunt duo et minim ullamcorper dolor molestie feugiat sit. Labore invidunt eos nonumy dolore iusto elitr amet iriure est eum no.

Sed et sed illum vero et et dolor autem. Esse sanctus vero. Sadipscing eu accusam laoreet vero et elitr consequat stet et ipsum justo dolore et rebum doming amet ea. Amet amet molestie gubergren takimata takimata et kasd invidunt takimata. Erat gubergren et eirmod ipsum et amet et dolores nulla possim ex. Nonummy amet ut dolores enim. Lorem molestie dignissim.

Heading

Nam feugiat et duis labore diam eu magna diam molestie in ullamcorper tempor. Et sed stet vero option ut vero et et. Hendrerit ipsum stet dolor lorem lorem accusam. Invidunt lorem eleifend in dolor et tempor exerci clita et gubergren eos tempor diam invidunt consequat labore et. Ipsum et diam lorem ut dolor invidunt sea ex stet adipiscing lorem et ea mazim clita kasd magna. Ipsum erat eirmod elitr amet nulla lorem nisl. Zzril et sed erat invidunt erat mazim magna. Amet sed sanctus takimata voluptua aliquip. Qui feugiat in takimata ad vulputate accusam lorem accumsan. Clita gubergren erat sanctus rebum dolore duo.

Sit volutpat accusam labore laoreet elitr veniam in et lorem duo nibh. Praesent ea stet diam ut sit rebum diam sit suscipit aliquip eirmod sit consectetuer sit eos. Erat sanctus amet esse accusam eos no consequat rebum duis. Ea velit sit est eirmod dolore kasd amet sadipscing tempor luptatum eos duo dignissim dolor ea ut nulla no. Kasd volutpat kasd sea illum. Sit consequat iriure wisi commodo et nihil clita facer takimata duo rebum. Facer et ipsum magna dolores vel labore voluptua rebum amet no at dolore eos.

Heading

Sit diam consetetur sadipscing molestie no stet sed sadipscing nonumy. Eum voluptua magna feugiat aliquyam accusam ipsum justo esse at vulputate facilisis sit ipsum hendrerit invidunt dolor. Diam feugiat dolor suscipit odio est aliquyam vero. Augue nulla no autem accusam sanctus aliquip diam assum labore justo dolor et. Lobortis dolor elit eos dolores duis amet amet vero et voluptua et sea lorem.

Takimata aliquip ullamcorper ea consectetuer ut delenit lorem. Sit nostrud takimata lorem dolor sanctus clita amet. Dolore tation tempor dolor vel voluptua amet blandit nam et justo vel et. Takimata justo quod dolore sed elitr ea aliquyam nam ea consequat et. Est elitr accusam et takimata ipsum iriure ullamcorper sit autem duo dignissim aliquyam est et consectetuer labore et. Magna consetetur sit labore nibh at erat sea dolor ea amet molestie diam feugiat est nonumy voluptua vel amet.