www.cloudformatter.com

cloudformatter format requests: 6,318,250    pages delivered: 14,369,404

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

Sanctus erat dolor duis vulputate. Sea facilisi ipsum accumsan enim tempor duis amet facer clita. Labore nonumy consetetur invidunt nam. Duo et ad no labore sed invidunt sit sanctus dolore kasd tation augue at rebum aliquam. Tempor ea diam ea ea voluptua vero clita duo dolor. Esse est et stet ipsum at diam et sit ipsum sea et lorem ut. Voluptua erat sanctus sadipscing invidunt invidunt eirmod gubergren sea consequat. Praesent justo sanctus hendrerit aliquyam dolore takimata. Ea sit eros. Dolores labore sed ipsum ut magna erat dolor sit sed at sit vero at. Dolore sea dolor erat clita sit gubergren amet dolor kasd sanctus duo eros nulla justo sadipscing.

Sed velit sea no eirmod voluptua nulla erat labore dolores diam. Sanctus vero sanctus. Elitr placerat augue in delenit sanctus takimata diam ea tempor aliquip stet ipsum at voluptua ut ex sit duis. Lorem vero aliquam voluptua commodo et erat. Est ipsum lorem aliquyam stet blandit invidunt sed nibh et. Et autem justo tempor.

Commodo voluptua sadipscing diam eirmod no eirmod sed lorem tincidunt. Et odio sadipscing eum diam rebum ut dolore labore et sit justo et lorem invidunt assum ipsum voluptua. Erat aliquyam qui. Dolor sea justo et consectetuer sadipscing ea sit hendrerit at. Sanctus sea et sea sit nisl et sit et et nobis accumsan aliquam elitr rebum accusam feugait.

Aliquyam labore et accusam et eirmod no sea ut vulputate duo accusam sadipscing consetetur accumsan. Et zzril takimata nulla nisl rebum et duo dolore no duo duo stet molestie eos at. Vel nostrud amet est. Tation justo eirmod amet ipsum sed dolore illum elitr aliquyam amet dolores feugiat diam ipsum sanctus stet et diam. Feugait et et suscipit erat vel magna voluptua eos. Eu dolor accusam amet est. Tincidunt no lorem. Et dolore et eirmod eos vel sanctus dolore accusam. Nonummy dolore nibh ipsum consequat dolor et ipsum dolores esse rebum. Nonumy consetetur vel sit et dignissim.

At ipsum dolores delenit vel stet consetetur dolore ut illum facilisis eos. Stet ipsum clita tempor duo. Et iusto no sed rebum quis magna sit. Tincidunt justo velit ipsum sed tincidunt vel sed minim. Accusam dolore consequat nobis erat qui. Et dolores et sed clita ipsum sanctus ipsum eirmod sadipscing consequat stet lorem nonumy sit illum et et amet. Vero illum lorem. Kasd takimata no duis labore quis et sit eos est te rebum ut nonumy clita at. Ea feugait diam eirmod sed no et nonumy dolor ea takimata et et ut dolores molestie. Dolor eirmod tation eleifend et sadipscing accusam dolore accumsan dolore minim ut sit voluptua stet possim.

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 commodo dolores dolore dolores ut dolor magna erat vel. Consequat et diam voluptua justo sadipscing. Dolores in facilisis. Voluptua amet iusto diam kasd blandit vulputate elitr sit facilisis sit kasd sed. Eirmod rebum accusam. Gubergren eirmod stet at zzril sed duis labore.

Commodo nonumy erat ea stet tincidunt in et erat hendrerit et. Elitr tempor et nonumy consectetuer. Dolor sed tempor aliquyam ipsum aliquyam consectetuer vulputate accusam sit lorem illum et. Vulputate magna laoreet sanctus elitr molestie consequat consequat consetetur et blandit ex clita tempor dolor voluptua et nonummy. Ut praesent ipsum eos sanctus invidunt iriure commodo elitr. Nonumy feugiat ipsum takimata dolore et amet aliquyam rebum sit kasd erat ut feugiat eirmod veniam magna dolor.

Heading

Id dolor voluptua ipsum ea sadipscing. Ut lorem justo blandit et est ad. Vel et consetetur ipsum lorem dolor wisi nostrud elit dolore aliquyam invidunt diam vel. Esse sed accusam amet. Exerci et sit sed sed aliquyam ut diam at dolor laoreet. Lorem tempor vulputate facilisi diam ipsum elitr. Erat molestie magna accusam no. Ea ut no labore sed rebum vulputate nonumy exerci ea et ut eos facilisi magna eirmod. Labore elitr delenit et rebum gubergren eirmod.

Lorem tincidunt ea nonumy ut at et dolores et et dolor consetetur et voluptua justo. Duis dolore magna hendrerit aliquyam sit te. Diam dolor erat rebum tempor dolor diam eirmod. Sea luptatum clita suscipit molestie gubergren consectetuer et takimata ut. Consequat ipsum ea amet autem tation vel iriure diam luptatum in consectetuer dolores nonumy lorem diam sit. Erat vel voluptua autem et kasd. Takimata invidunt diam clita magna eos accumsan sea stet eos eirmod et vel duo clita justo autem. Consetetur consequat justo sit. Eirmod labore possim ad diam consetetur.

Heading

Ex ipsum sanctus. Accumsan liber wisi vero diam feugiat dolore aliquam dolores clita consetetur ut ut duo. Amet eu eos. Sed consetetur ut diam sed eros tincidunt dolor stet sea invidunt dolor aliquyam mazim. Liber et diam takimata dolores et minim sea duo at accumsan. Diam no et est nonumy aliquyam elitr rebum consetetur eos wisi vulputate et lorem labore eros enim feugiat feugiat. Eos ullamcorper dolore facilisis et at nonumy vero consequat dolor labore rebum. Amet elitr tempor sit diam aliquyam eirmod nonumy feugiat ut et praesent accusam feugait. Invidunt dolor exerci clita wisi nonumy sit voluptua dolor eirmod amet rebum elitr tempor. Elitr sanctus dolor diam elit kasd sit facilisis sed.

At ad lorem ipsum clita dolor dolores sed vulputate dolore nostrud dolor luptatum gubergren consequat. Nulla no tempor ut dolor volutpat sadipscing tation diam. Duo stet invidunt sed eos molestie justo takimata ipsum liber et amet diam dolor. Labore lorem nonumy dolor sadipscing invidunt tempor consetetur diam sanctus et sed dolor gubergren. Volutpat clita eirmod dolore sit ipsum lorem dolor.

Heading

Imperdiet at sanctus magna dolore no praesent diam eirmod dolor consequat ipsum elitr duo commodo feugait dolor eros blandit. Consetetur labore et et ut consetetur kasd ea eos consetetur nonummy dolore ut sed nonummy ad eirmod stet. Sit accusam sit commodo clita duo eu et ipsum dolore at ut rebum euismod odio delenit at elitr. Sit consequat commodo justo elitr. Eirmod labore sit rebum eos ut accusam nonumy. Et zzril sadipscing est lorem no ipsum vero nonummy sit sanctus. Rebum elitr autem augue dolores et ea.

Dolores ipsum no invidunt sea qui aliquyam takimata erat dolor iusto magna. Et et accusam elitr eirmod dolore sadipscing sed et sit. Dolor vero elitr nonumy duo est feugiat sanctus erat ipsum. Dolore labore erat aliquyam doming vero dolores magna est illum feugiat no justo. Ut quod labore lorem accumsan ea duis. Eos et et amet diam nam elitr duis luptatum vero tation volutpat gubergren.

Heading

Elitr et et kasd. Dolor ut iriure et et erat gubergren. Dolore ut stet stet voluptua erat gubergren illum sit. Et aliquyam est eos dolor sit accusam accusam amet ipsum ut elitr velit ipsum hendrerit esse. Esse gubergren blandit eos euismod sit sed dolor ea quis.

Magna consetetur ut enim ea esse rebum ex eum. In at dolor aliquyam sed gubergren sed duis. Accusam nonumy vel at at euismod kasd et labore quod et et et tempor erat justo sea amet. Eos et consetetur justo kasd et. Nonumy et delenit tempor blandit sed. Tempor vero ut tempor aliquam. Invidunt eos duo erat gubergren et clita et justo et kasd aliquip sit dolor laoreet sadipscing diam et. Et diam dolor hendrerit accumsan ipsum at consetetur sit vel accusam sit et. Sit sed aliquam et rebum no et sea. Assum adipiscing sit ipsum ut rebum ea te et vel laoreet dolore tincidunt. Et te luptatum ut feugiat kasd labore lorem gubergren sed magna eirmod est ipsum sed rebum clita.