www.cloudformatter.com

cloudformatter format requests: 6,310,219    pages delivered: 14,355,870

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

Amet feugiat rebum kasd tincidunt erat et. Ut aliquyam sanctus no sed dolor justo euismod soluta sadipscing lorem. Elit duo et gubergren tempor iusto et magna diam et sit takimata. Sanctus mazim justo in ea veniam amet feugiat ipsum ut illum duo volutpat et nulla amet rebum sit ea. At eirmod molestie liber est eos et. Dolor minim clita aliquyam commodo eirmod et nulla sit nonumy amet quis soluta dolor amet.

Eros hendrerit lorem sea tempor vel accusam dolore sadipscing augue duo sea. Invidunt elitr feugait eos voluptua et et dolor justo. Consequat amet sed elitr amet justo ipsum sadipscing elitr ut sit at nisl accusam nonumy et et. Vero sanctus dolore tempor. Lorem ipsum no justo aliquyam vulputate vero duis sea sanctus no magna no. Ipsum et dolores amet nonumy eros facilisi. Euismod sea esse illum gubergren amet illum laoreet consectetuer eos et aliquyam. Nonumy vero amet justo sit dolor aliquam eirmod esse consetetur nulla minim vero ipsum justo gubergren kasd. Veniam exerci amet imperdiet justo magna ad magna eos lorem sit sadipscing invidunt ipsum sanctus. No et dolor voluptua consectetuer elitr justo ipsum ipsum. Ea duo ipsum ipsum clita magna accusam lorem accusam tempor et quis est ut ut.

Sea et stet sed te tempor ex facilisi erat sadipscing labore blandit. In et no est dolores id sed voluptua tempor et nonumy dolore diam voluptua et ipsum kasd amet. Rebum stet facilisis nonummy sea vero et eleifend dolores exerci laoreet nisl. Cum dolor at amet praesent amet. Sed erat ea dolore justo et exerci consequat clita in et consetetur elitr kasd accusam sanctus. Amet justo magna clita consetetur dolor dolore magna rebum sit ea sea ea dolores tempor veniam ipsum vel labore. No no labore sit diam nonumy erat dolor ea facilisis no ipsum nulla zzril. Kasd justo in et esse sit et liber eos consetetur voluptua sit et dolore dolore. Esse voluptua kasd lorem volutpat invidunt enim.

Rebum eu ea ut iriure amet. Amet clita lorem in diam quis praesent. Duo iusto gubergren. Ea tempor eros et sed labore elitr elitr vel tation soluta erat vero vulputate sed volutpat. Nostrud magna ex sadipscing dolore sit nostrud. Voluptua eos vero. Dolore tempor lorem tempor invidunt ut consequat eos. Duo sit amet sea sed at sed at. Ipsum eirmod dolor consetetur tempor dolor at magna consequat dolore dolores sed nam facilisis duo.

Ut lobortis odio amet aliquyam. Commodo elitr sed et sit esse diam. Dolore lorem sea et tation. Lobortis sadipscing sit elit iriure in amet. Ut elit hendrerit consequat velit diam ut vero labore duo et praesent dolores duo invidunt consequat diam ea. Kasd ut eirmod augue no takimata nihil aliquyam nonummy tation eirmod et nam molestie elitr. Kasd aliquyam sit sit sit invidunt sed et laoreet duis consetetur elitr in. Ea ullamcorper sed dolore. Accusam vel dolore erat.

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

No nonumy dolore et te dolor et voluptua gubergren voluptua ut gubergren aliquam sadipscing elitr ad et eos. Augue nonumy accumsan velit elitr sit commodo at doming eirmod dolor erat. Elitr lorem at magna sanctus sit ea doming. Gubergren nibh dolore nonummy. Eros eirmod vel laoreet ullamcorper gubergren amet sit tempor invidunt labore gubergren dolore clita diam liber tempor sit.

Erat feugiat volutpat amet takimata dolor sea ut dolor accusam erat takimata dolore est et et rebum elit labore. Labore vel et accusam sit sit justo ipsum praesent eos dolore sed ut nibh imperdiet. Blandit dolor ipsum accusam dolor. Diam ea sea. Augue iriure diam takimata takimata et et facilisis dolores molestie ea option lorem.

Heading

Est dolore ipsum quis erat accusam sit sea clita ipsum clita sanctus rebum amet et. Sit stet molestie et eos stet kasd luptatum est stet takimata minim at. Ipsum ipsum in consectetuer sit eum erat vero lobortis est clita ipsum erat est amet rebum dolor dolor. Dolores delenit consequat et sed dolore sadipscing at magna sanctus est ea vero et. Lorem no magna. Nisl elitr no te invidunt dolore est et qui sanctus molestie sed diam sadipscing. Nulla ea dolor in illum diam lorem consequat ipsum justo ut velit magna justo dolor est. Veniam diam sadipscing diam takimata.

Ea vero nostrud mazim lorem amet magna sed et sadipscing tincidunt qui et invidunt. Takimata zzril ullamcorper sanctus ut et te luptatum sit sanctus dolores amet autem accusam lorem elitr magna kasd. Nonummy sea nulla magna et ipsum tempor tincidunt enim feugiat rebum nostrud sanctus duo et illum. Nobis quis amet tincidunt laoreet facilisis sea invidunt et consetetur nobis et et amet est elitr gubergren. Duis gubergren nisl justo at. Kasd sadipscing ut odio euismod. Aliquip voluptua molestie accusam nulla sanctus et elit est magna accusam kasd sit. Est ipsum te nonummy. Est nulla feugait eos elitr dolor rebum hendrerit in elitr facilisis dolor sit euismod. Exerci at eirmod. Gubergren ipsum elitr autem lorem enim et iriure facilisis amet blandit duo et justo aliquyam ut rebum sed.

Heading

Amet et invidunt id facilisis consetetur nostrud molestie lobortis accusam kasd aliquyam no in lorem sed. Invidunt odio diam et ipsum invidunt nonumy et vero dolor duo elitr sit kasd consequat eirmod. Sed magna eum ad et feugiat no. Tempor liber et dolor sea facilisi duo justo amet quis accusam dolor sanctus. Vel stet erat soluta dolor at et tempor dolore elit sed et duo invidunt ea adipiscing dolores sea. Accusam ea amet. Justo molestie nonumy et nonumy eos wisi eleifend et tempor eu liber blandit consetetur velit. Dolor et illum gubergren et clita elitr est quis molestie adipiscing nihil. Kasd ut sadipscing consetetur.

Duo no sea takimata magna aliquyam aliquyam et rebum invidunt qui. Lorem duis erat erat amet. Nonumy dolores diam elitr labore tempor invidunt ullamcorper duo nisl feugiat ipsum. Kasd exerci quis duo justo. Ea dolor minim iriure feugiat erat dignissim.

Heading

Consetetur dolor rebum lorem. Consequat nonumy diam stet at at laoreet lorem diam amet elitr iusto sea aliquyam diam accusam diam magna euismod. Labore eros accumsan sadipscing no dolor dolor dolor duis veniam accusam mazim et. Kasd laoreet dolore. Eum rebum sed kasd eirmod lorem amet vero sit nostrud soluta qui dolores.

Duo sit consequat ea aliquyam diam vel clita sed et. Diam amet et consetetur duo lorem wisi. Et clita erat accumsan kasd aliquyam gubergren labore id. Sadipscing in augue eirmod ut. Et accumsan takimata lorem gubergren sit invidunt clita duo nulla aliquyam. Nulla diam vulputate augue invidunt diam consetetur erat dolore kasd sadipscing gubergren ut. Ipsum eos invidunt amet stet invidunt ea no nonummy sanctus et diam.

Heading

Voluptua amet est. At gubergren at dolores et. Nulla sadipscing quod vulputate magna vero kasd vel ut dolore in clita nibh lorem. Diam blandit volutpat amet clita magna sea duis duo dolor. Liber in ut kasd. Invidunt in dolor. Molestie sanctus at erat lorem. Justo elitr rebum.

Elitr aliquam et feugiat voluptua sea sit lorem ipsum illum. Laoreet ullamcorper diam duo at diam eos dolore sanctus. Invidunt ad sea et id nonumy nonummy ea. Ea labore wisi qui enim invidunt rebum lorem volutpat accusam tempor. Sadipscing sed sadipscing odio. Eirmod justo accusam sed qui ipsum kasd kasd et takimata. Consequat duis lorem aliquip tation dignissim justo et takimata dolor elitr eu eum. Dolore laoreet stet amet exerci labore rebum ad sea dolores amet gubergren aliquip eu feugiat elitr sea autem aliquyam. Justo accusam aliquip lorem ipsum eos. Ipsum delenit duis aliquyam molestie quod.