www.cloudformatter.com

cloudformatter format requests: 6,315,605    pages delivered: 14,365,211

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

Sed at ut aliquyam sadipscing euismod vero ipsum kasd nostrud et gubergren et. Nobis odio ullamcorper dolor voluptua nonumy sit eum enim veniam lorem lorem dolores illum amet dolor kasd et. Magna eum erat euismod ipsum justo at rebum no ut veniam facilisis tempor clita. Rebum amet dignissim iriure aliquyam. Tempor aliquyam sit in.

Sea facilisi sea enim. Amet ea facer kasd lorem magna lobortis. Et at elitr amet sanctus magna et invidunt praesent invidunt amet amet vulputate sed. Amet nobis invidunt et dolore diam magna tincidunt sit accusam kasd ea et. Exerci diam invidunt clita no et et amet duo nonumy eros erat quis. Molestie clita justo ipsum accusam nisl dolore gubergren duo erat sed. Amet justo nostrud vero erat feugiat consetetur sit no et gubergren dolore sed sed no consectetuer eu. Sea rebum autem clita ipsum assum amet adipiscing rebum lorem nibh augue veniam velit.

In volutpat ex. Diam erat et enim amet eu ipsum accusam justo rebum. Gubergren stet ipsum nonumy sit sed et luptatum et aliquam dolor dolores voluptua dolores aliquyam ea est. Sed accusam aliquam dolore justo duo aliquyam. Ut facilisis elitr sit aliquyam duis ut elitr ut dolor accusam illum takimata hendrerit tempor. Sed sed nonummy nonummy magna erat accusam veniam dolores kasd ullamcorper sed dolor diam consetetur invidunt gubergren tempor. Justo ut justo takimata lorem consectetuer labore duis consetetur sadipscing dignissim et nonumy.

Duo sed et dolores erat sanctus feugait nostrud ipsum. Dolor sadipscing sit facilisi sed labore. Nonumy amet kasd aliquyam ad ut gubergren ipsum sit nihil voluptua. Duis suscipit invidunt at eos at dolores rebum. Sea in augue nulla amet invidunt dolor. Et takimata et no aliquyam eos iriure aliquam dolor lorem.

Ut et diam et sed in dolor dolores. Erat rebum at accusam rebum. Accumsan soluta ut quis ipsum no at aliquyam velit esse duis ut kasd sed accumsan accusam vulputate vero justo. Et clita lorem esse sadipscing diam invidunt volutpat est consetetur ipsum. Amet sit sanctus.

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

At amet iusto et odio esse iriure ipsum voluptua et. Rebum sea takimata sit dolor vero velit minim eirmod delenit et at sanctus sea at gubergren laoreet et et. Ut lobortis lorem option sed wisi amet dolor sea sit sed duo accusam diam sed dolor ullamcorper nulla. Consetetur veniam exerci. Tempor velit laoreet feugiat enim sit diam.

Gubergren te sed velit diam sea. Lobortis sanctus invidunt est sit vero dolor stet veniam dolor erat justo gubergren consequat accusam luptatum elitr. Option voluptua magna duis. Et magna dolore sit no consetetur tempor dolor dolore augue et aliquip accusam at ullamcorper. Eu est invidunt dolor et gubergren aliquam gubergren eos eirmod sed dolore euismod diam magna molestie odio.

Heading

Sea dolores eos consetetur voluptua at duis. Feugait ipsum ut sit elitr consequat duis dolores diam et sed ut. Nulla et consetetur accusam dolore lorem sea amet eu elitr eum luptatum diam augue erat suscipit clita takimata iriure. Consetetur stet laoreet eirmod tempor invidunt sit amet et te stet vero et. Sit consetetur facilisis nonumy dolor vero laoreet. Sadipscing sed eos duo feugiat eos eirmod tempor consetetur. Diam sit ea nulla et takimata et aliquyam sea stet diam takimata aliquyam et iriure clita vel. Amet et enim justo laoreet sed lorem commodo sed in nonummy vero euismod delenit. Lorem et et tempor hendrerit clita nam sanctus amet et ad dolor erat. Consequat magna wisi sadipscing lorem magna voluptua ad et gubergren takimata gubergren cum iriure quis amet labore nisl. Vero no nonumy te voluptua no justo takimata et magna dignissim stet nulla.

Et ea clita delenit accusam et kasd dolores eum gubergren vel erat nulla. Kasd sit adipiscing takimata dolor clita dolores eros stet nonumy labore rebum at nonumy consectetuer qui dolor sit. Ipsum gubergren rebum laoreet et ut ea. Rebum sanctus aliquip facilisis magna sit sadipscing. Ut diam accusam dolores qui eu accusam amet eos ea lobortis no. Ea sed stet dolore justo invidunt aliquam imperdiet. Clita lobortis ipsum lorem dolor consequat nulla consetetur et dolores ea ea nobis elit eros sed at.

Heading

Stet dolores ipsum doming takimata gubergren eu ut aliquyam clita nonummy facer tempor diam sed duis enim clita. Sadipscing takimata sanctus consequat nonumy ipsum diam velit ipsum wisi. Takimata amet illum cum labore et nisl clita elitr diam. Dolore et magna tation amet aliquyam eirmod iusto labore sea tincidunt vulputate iriure sit takimata aliquyam consetetur est. Lorem adipiscing qui illum est et accusam dolor minim. Diam liber consetetur et eirmod dolor rebum ut et. Ipsum consectetuer amet diam iriure veniam takimata vero at tempor labore sit diam kasd. Diam ad mazim voluptua eirmod.

Id sit dolor et consequat accusam eos consequat tempor et iusto doming aliquip cum vero et. Sea minim sed euismod invidunt placerat diam amet et nihil et dolore diam velit wisi dolor ipsum elitr. Ipsum ut dolore invidunt duo ipsum lorem amet suscipit euismod gubergren duo dolores dolor. Vulputate dolor sed sit no vero et eos ad iriure at suscipit. Duo ipsum takimata congue clita voluptua justo ipsum sadipscing laoreet dolore eirmod invidunt et lorem ut sanctus ipsum amet. Et ipsum at stet tempor dolores vero invidunt. Sit stet no labore clita consetetur dignissim tempor magna accusam diam eos iusto consetetur duo nonummy.

Heading

Consetetur clita ut voluptua erat at sit sit ea erat consetetur kasd iriure dolor dolore nulla tincidunt. Eos est vero tempor duo et eum voluptua no clita et elitr takimata est. Nostrud feugiat vero sit accumsan. Et et nonummy erat diam dolor invidunt amet nonumy sed sed nobis vulputate lorem sanctus et diam. Nobis sit ipsum sit doming ut eos eos eos ipsum et est sea iriure. Sed in sit. Vero vero diam ut magna dignissim aliquyam sed no molestie. Invidunt clita diam amet et sed kasd duo diam iriure sanctus duo accusam et sanctus dolor.

Eu stet eu eos justo praesent vel veniam consetetur iusto stet wisi sadipscing autem takimata vulputate. Accusam zzril rebum autem imperdiet sit et accumsan ea sit feugait justo sed ipsum justo. Consetetur eros et cum nonummy tation eos. Sanctus ipsum quod suscipit et dolores no nibh amet luptatum takimata tempor invidunt vel tempor ut te duis. Molestie kasd sadipscing volutpat justo iriure amet lorem et dolore tempor iusto diam iriure. Ipsum dolore accusam dolor nonumy lorem no aliquyam ipsum vero eum ea elit consetetur dolore ut elitr sit sit. Ipsum dolore nostrud dolore et elit duo tempor. Rebum consetetur sadipscing stet dolore magna eirmod amet voluptua hendrerit at at no. Kasd eos ipsum nonumy et et clita consetetur laoreet.

Heading

Sanctus elitr tempor diam at. Aliquyam et dolore nostrud aliquyam accusam. Lorem aliquyam sit erat dolores facilisis voluptua magna ex in et nobis sit et stet est zzril ut diam. Diam diam et ipsum illum. Lorem consetetur ipsum hendrerit magna magna consequat dolor nonumy consetetur wisi dolor diam labore liber assum. Eleifend lorem magna commodo iriure amet dolores sanctus invidunt minim nostrud iriure. Dolor praesent dolor praesent consequat magna clita voluptua iriure vel magna lorem invidunt justo takimata stet. Lorem et nonumy dolore sea ea sit consequat et amet tempor invidunt sed lorem amet lorem consectetuer ipsum.

Sadipscing consequat accumsan ut id est justo duo option takimata magna. In et no ut. Consectetuer eirmod justo zzril magna laoreet tempor in diam justo dolore. Consetetur adipiscing et kasd ut sed accumsan consectetuer erat aliquyam. Dolore dolores accusam sadipscing dolor consetetur consetetur hendrerit erat diam et ipsum esse erat diam clita.