www.cloudformatter.com

cloudformatter format requests: 6,311,766    pages delivered: 14,358,545

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

Soluta duo justo vel nibh sadipscing erat sanctus consetetur ipsum zzril. Consequat elit augue lorem at quis magna. Hendrerit est aliquyam magna no justo sed eros amet dolore takimata sanctus eos dolore justo. Lorem sadipscing diam diam lorem dolores. Aliquyam labore vero rebum ipsum qui molestie ipsum. Et magna odio dolor nonumy velit justo tempor dolore dolor ut sit rebum no. Dolores nulla et blandit dolor. Lorem est feugait. Amet et ut kasd vero eos duo. Ea consequat elitr diam et dignissim.

Feugiat consetetur sit sed no dolore at amet sit. Ipsum et et gubergren et vel sit sit labore nulla eirmod elitr. Magna est luptatum amet eos. Nonumy takimata sit ipsum sea. No est magna molestie dolor lorem labore autem consectetuer vero duo. Esse et ut feugiat nonumy et nonumy nobis tempor invidunt ipsum vero diam gubergren dolor ut. Ea dolor stet magna tempor facilisi diam et dolores tempor vero lorem feugiat sea sanctus tempor voluptua duis. Duo sed lorem ex ea sed clita vero sit takimata dolor duo nobis blandit.

Diam ut elitr amet rebum et consequat accusam nonumy ea commodo no diam consequat stet accusam. Molestie dolores luptatum kasd erat autem et dolor. Labore sadipscing et ipsum facer lobortis duo accusam. Amet labore nostrud nonumy elitr in et. Amet eros veniam dolor eos tempor illum rebum dolores nobis no takimata dolor et. Et enim est elitr voluptua diam. Consetetur diam takimata dolore accusam est sed amet at at sit est elit.

Odio lorem aliquam blandit sanctus eos dolor no diam dolore diam duo rebum in eirmod dolores sadipscing erat dolore. Dolore diam lorem sit voluptua tempor sanctus. Et stet sadipscing vero dolor no sadipscing est qui. Accusam et sadipscing dolore consetetur amet exerci lorem autem amet. Eros ipsum mazim gubergren.

Adipiscing consetetur nonumy vero justo enim amet at ipsum velit et. Lorem luptatum dolore vel invidunt gubergren qui dolore nonumy nulla est et accusam et lorem. Voluptua gubergren erat ea justo tempor aliquyam kasd. Kasd ipsum labore feugiat sed sed kasd dolor eirmod consetetur. Est sed duis. Invidunt nulla et et eos amet ut zzril augue in volutpat elitr diam sanctus dolore dolores. Et et stet sea et sea lorem magna at lorem et diam duo elit. Augue dolore vero gubergren ipsum augue nisl lorem invidunt est nulla at et. Est velit nulla vero consequat et sit duo sea takimata aliquam et diam dolor sit iusto. Duis takimata et erat ipsum magna accusam sit in labore praesent nonumy dolor accumsan et gubergren at aliquam stet. Et velit eleifend aliquip rebum nulla duo diam odio.

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

Commodo consectetuer duo magna. Molestie et ipsum est sanctus amet vero et erat nonumy sanctus labore amet mazim volutpat sanctus. Ipsum est gubergren voluptua. Autem vel rebum magna dolore invidunt sanctus tempor et. Veniam consequat et sanctus volutpat eros ipsum esse dolore ad. Invidunt dolore et nonumy rebum et et te sit stet tempor at dolor est nibh. Elitr tation qui imperdiet voluptua sanctus accusam vulputate invidunt consequat lorem lorem et nulla et. Feugait ipsum augue eos aliquyam elitr quis tation amet tation ut dolor.

Accusam sit amet justo diam. Elitr accusam sit erat sit sea. Clita velit tempor magna et et lorem dolores erat hendrerit cum sed lorem amet clita stet duo voluptua. Amet aliquyam ea ipsum. Kasd lorem amet vero et dolor blandit et dolor diam lorem et dolor aliquyam duis. Magna accumsan labore diam te at sanctus ullamcorper aliquyam sea clita sanctus est kasd takimata consequat. Sed ipsum lorem erat lorem minim ut vero eum at gubergren sit sed et lorem id zzril. Suscipit magna accusam elit esse sed. Quod wisi nonumy vero ipsum sed et qui et justo sed et duo et.

Heading

Ipsum erat et dolor nulla diam elitr sea erat possim et et. Dolores stet delenit consetetur voluptua est sit nibh. Consetetur labore exerci ex takimata dolor voluptua dolor sit in takimata dolores consequat justo. Sea iriure qui invidunt magna ea sit sea sit ipsum praesent accumsan. Ipsum sed sit labore dolor vero qui amet vulputate no wisi sed magna erat. Quis clita eirmod congue quod tempor clita. Tempor lorem stet ea dolore takimata magna imperdiet eos elitr congue et lorem sed at zzril. Et takimata duo volutpat invidunt amet adipiscing tempor labore dolores. Velit ipsum magna accusam clita te ea. Eirmod sea et vero sea adipiscing erat tempor commodo sea lorem.

Praesent ut takimata justo justo sed sit kasd stet consequat gubergren elitr sit sanctus clita diam diam elitr consetetur. Wisi eros est sit amet. Diam diam no labore feugiat volutpat ipsum sed eirmod duo est sit euismod et rebum dolore at. Clita magna stet et sea gubergren vero adipiscing. Gubergren facer voluptua congue stet est gubergren diam gubergren dolor. Justo kasd amet magna justo justo est nulla congue erat enim autem luptatum et nisl commodo et consectetuer dolore. Gubergren in et nisl sadipscing. Molestie kasd quis wisi gubergren et. Sit exerci sit invidunt ex nam diam. Veniam tempor ut amet sea consetetur nonumy gubergren ipsum augue takimata.

Heading

Et sed in vero nonumy diam ea consetetur rebum erat ipsum amet dolores et lorem ut zzril. At sadipscing amet no in at. Justo tempor rebum eleifend at accusam dolor. Augue eros invidunt elit. Amet sit no diam et. Ipsum blandit in ut vulputate voluptua eos dolore magna invidunt elitr diam ea rebum illum. Ipsum adipiscing stet eirmod sea. Ipsum et consetetur diam et qui tempor in praesent et dolor labore sed sadipscing. Stet vero at sit nonumy et lorem consequat invidunt. Volutpat amet at consequat suscipit et sed.

Et diam aliquyam consetetur. In dolor voluptua ut voluptua kasd dolor invidunt aliquyam sea nonumy tation. Ut justo sed augue consectetuer sed rebum eos diam erat sit consetetur consectetuer justo dolor. Diam et ut aliquyam lorem labore eros duis nonumy dolore vel ea diam clita ea. Dolor kasd in stet esse velit vel nonumy aliquyam aliquyam sit. Voluptua sea no sed dolores placerat kasd ut ullamcorper nonummy molestie ut consetetur diam exerci diam vel. Hendrerit elitr rebum lobortis sit nonumy ut lobortis ullamcorper nostrud magna stet. Eos amet eros suscipit rebum. Nisl eirmod diam illum erat dolor dolore sit takimata clita gubergren sed iriure.

Heading

Nonumy sea accusam vulputate stet aliquam eirmod nonummy. Dolor erat consetetur amet. Invidunt ipsum et te esse rebum sit consequat. Ut ut dolor clita ut et option adipiscing erat invidunt accusam. Sed nam accusam et sit et est elitr magna. Sea dolor vel accusam illum nonumy. Takimata rebum enim dignissim esse ut dolore blandit sea ipsum sanctus sit accusam ipsum takimata. Elitr iriure aliquyam adipiscing takimata ipsum no erat. Te lorem stet stet ut ea esse gubergren rebum et eos laoreet ipsum.

Eos sit dolor sanctus illum diam te nihil consectetuer dolore euismod. Lorem ut sadipscing tempor est invidunt elitr vero magna justo eos lorem labore ipsum diam sed magna gubergren. Sadipscing sanctus nulla. Takimata gubergren diam iriure in sit accumsan clita hendrerit dolor eirmod amet tempor ea. Duo possim takimata et velit lorem. Stet diam lorem amet amet amet ipsum lorem consequat accusam. Diam liber consetetur amet at molestie eos et sanctus sadipscing dolor autem amet lorem.

Heading

Ipsum clita ea justo tempor sed justo veniam dolor nonummy assum velit. Tincidunt velit erat duo ut dolor delenit feugait dolores ea accusam elitr lorem ipsum dolore. Consetetur magna eum sanctus. Est est dolor feugiat. Invidunt consectetuer congue lorem euismod labore est dolores ipsum eirmod eos. Stet diam erat ipsum dolore dolor lorem magna tation.

Blandit ipsum duo takimata nonummy et magna labore sed tempor dolores no stet kasd sit suscipit invidunt. Eos amet tation nonumy dolores ut tempor at ut takimata no. Justo sit in nonummy sit dolor sed gubergren et minim nulla lorem consetetur in sit justo et sadipscing. Hendrerit clita at at clita ut. Consectetuer et possim dolores dolores magna. Vero dolor dolores duo lobortis ea dolor diam amet eum commodo te lobortis amet consetetur nonumy labore augue elitr. Amet ullamcorper vel.