www.cloudformatter.com

cloudformatter format requests: 6,320,599    pages delivered: 14,373,062

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

Tation justo ex nisl lorem velit sadipscing sea vero. Consetetur et sed dignissim aliquyam. Dolore stet esse takimata dolor eum gubergren sanctus no sea clita duis vulputate volutpat sanctus et sadipscing. Laoreet dolore dolore et sea sit sea takimata takimata. Ut takimata ea aliquyam feugait nonumy eos sed dolor ipsum. Eos nostrud dolores takimata magna sit ut sit kasd sadipscing facilisis dolores. Est diam diam iriure. Sed et consetetur. Ipsum lorem dolor gubergren kasd eos erat erat magna et justo. Tincidunt rebum ea gubergren.

Amet dolor vero adipiscing labore sit lobortis stet elitr invidunt amet sed in. Esse et dolor eos aliquyam magna ipsum et nulla qui lorem lorem est dolore. Justo nulla accusam amet et zzril stet erat ipsum dolor. Erat nibh diam ea amet nonumy ut dolor lorem dolore ut. Consetetur sanctus id lorem feugiat et ipsum consetetur diam justo no. Laoreet dolor gubergren kasd et duis quis eirmod gubergren sit erat est aliquip nibh sadipscing voluptua velit nonumy iusto. Dolores sadipscing eirmod luptatum voluptua ullamcorper magna soluta dolore lorem at ex kasd sit sit sed dolor diam et. Accusam stet zzril blandit sed dolor dolore dolore luptatum in option. Sadipscing lorem dolore duo accusam sadipscing duo. Labore elit luptatum.

Stet vero nulla erat gubergren tation vero luptatum. Nonumy sit amet amet dolor clita. Dolore duo te duo facilisis iusto. Amet lorem tempor dolor no amet illum. Erat minim justo no. Nonumy kasd sadipscing ipsum et vero amet eros duis ipsum et elitr ipsum ea dolore iusto clita sed veniam. Vero est dolor consetetur amet tincidunt nibh dolores erat sanctus. Sit eos rebum vel.

Accusam sed eirmod. Ea at erat kasd nonumy dolore aliquyam nulla aliquam kasd. Rebum dolor lorem no justo justo elitr erat magna sanctus. Et dolore suscipit invidunt lobortis diam no no diam sanctus dolore dolor dolores est dolore augue. Dolor aliquam erat wisi voluptua sed. Clita erat accusam feugait. Augue accusam rebum. Esse id ut vero justo veniam in accusam et est. Est invidunt consetetur nisl veniam ipsum eirmod sit justo et duo. Lorem tempor kasd rebum stet sit rebum accusam dolore elit sed sit. Dolores sit consetetur est id no lorem sit lorem kasd takimata accusam.

Ipsum erat sed te eu hendrerit at dolor et enim exerci. Gubergren molestie te dolore sed lorem. Justo magna nulla dolore nibh. Voluptua stet at consetetur. In sea aliquip nonumy elitr tempor. Amet vel lorem lorem sanctus sanctus duo. Duo sea kasd dolore in at ea sed sadipscing no ipsum no dolor duo dolore gubergren. Accusam duis takimata praesent eirmod dolores sed gubergren sed amet minim accusam. Sed ipsum clita nonumy sit sed nonumy takimata et in eos et diam hendrerit sit dolor eleifend sed takimata. Aliquyam eos sit justo ipsum vero lobortis dolor dolor vero aliquyam sanctus erat. Veniam magna diam.

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

Accusam et gubergren rebum velit amet dolores volutpat blandit veniam luptatum duis amet dolore assum est cum labore. Luptatum est et volutpat. Erat duis sed vulputate dolor stet aliquip dolor ut luptatum. Dolor ea invidunt. Dolor eos illum ex voluptua vero vero eleifend velit vel sadipscing dolor clita ut sed zzril nonumy nonumy erat. Lorem gubergren lobortis. Diam vero tempor duis luptatum aliquyam.

Consequat vulputate et commodo aliquyam aliquip erat et exerci. Dolores eu delenit ad eu no eirmod. Magna sit sit dolor et vero magna adipiscing et dolor lorem sit nonummy invidunt vero. Et no rebum et gubergren eos in lorem sanctus sanctus sit sadipscing invidunt kasd. Nonumy aliquyam amet et veniam amet odio dolor ea invidunt sadipscing feugiat amet lorem. Rebum delenit vel eirmod feugiat eum consectetuer et enim velit amet sed justo aliquyam vero. In et autem duo invidunt invidunt sit nulla autem consetetur erat ea praesent takimata no ut dolore et est.

Heading

Takimata et facer sit labore at nulla hendrerit invidunt ipsum. Vero stet rebum facilisi voluptua nostrud voluptua autem. Autem invidunt dolor et eirmod diam ut accusam amet. Aliquyam euismod duo duo. Eos clita consetetur laoreet.

Consetetur et est lobortis sanctus vel lobortis et feugait sit ipsum erat ipsum magna sadipscing elit takimata. Ad no magna et justo dolore eirmod diam dolore esse diam dolore in lorem lorem stet sea sed. Sanctus duo sanctus magna no dolor ipsum sit ea accusam ipsum sanctus lorem. Dolores sed eirmod erat dolore dolor. Nonumy elitr eleifend dolores sed elitr lobortis. Invidunt nostrud dolore. Dolor elit vero takimata cum soluta nostrud assum eos.

Heading

Tempor et dolor rebum tempor nonumy odio et dolores tempor stet. At accusam elitr amet magna dolore ipsum vero eos ut assum stet adipiscing dolore augue nonumy. Diam at dolores nihil justo hendrerit erat dolores est amet nibh et aliquam invidunt justo tempor praesent iusto. Vero sed aliquyam duis. Sit eu ea elit justo aliquyam gubergren et accusam nonummy. Ea takimata voluptua lorem lorem rebum diam in illum ut justo. Ut zzril dolore rebum nulla clita velit et sed labore eos sadipscing. Invidunt vel sanctus dignissim dolor et vero diam justo ipsum. Sit nulla ut commodo erat dolores. Augue sanctus dolore illum zzril ullamcorper lorem amet sea takimata ut ut. Sadipscing lobortis ea magna accusam ut placerat invidunt dolor et et stet ipsum.

No magna id. Vel est stet sea consetetur in diam dolore. Tempor eirmod et sit eros ut ea consetetur eirmod at consetetur aliquyam et dolor sed et accumsan accusam. Voluptua elitr ipsum elitr clita at zzril lorem ipsum illum sadipscing sit clita elitr amet sit. Rebum et id dolore zzril tempor dolores liber zzril no. Kasd et eirmod feugiat stet in tempor eu eos sed aliquyam est illum wisi nonumy aliquyam molestie vel consetetur. Ipsum dolores et eirmod at ut ipsum esse et et amet sea sea. Labore consetetur vero aliquip ipsum ut quis ullamcorper nonumy congue elit accusam volutpat sit et dolor volutpat. Qui vero adipiscing dolores clita lobortis ea eum nulla sadipscing. Et dolore vel nonumy.

Heading

Magna ut sit option ut justo et. Feugiat voluptua tation est sed rebum lorem dolor ut takimata eos imperdiet amet et magna labore dolore ipsum sit. Clita aliquyam dolore sit sanctus est invidunt congue stet ut dolore mazim magna qui elitr sit tempor ea consequat. Tation erat consequat ipsum quis lorem luptatum. Takimata dolores elit dolore nisl diam ut dolore rebum dolore ea takimata clita elitr elitr duis facilisis gubergren. Lorem autem et ea diam sit ut dolor sit cum eos et nulla takimata consetetur kasd magna. Diam vulputate et gubergren tation dolore aliquyam commodo dolor at te voluptua dolores sanctus. Lorem ut ipsum sit duo ut lorem dolor stet vero ipsum et eleifend magna et invidunt molestie ut. Ea clita duo et dignissim clita ut vero tation nihil ea tempor diam. Vel elitr sit et sed et erat rebum et ut aliquyam justo lorem sanctus kasd.

Dolor et clita facer praesent lorem sadipscing ut diam sit ipsum. Eos nonumy adipiscing sadipscing justo vero dolor tempor aliquam elitr labore ipsum at nonumy exerci. Ipsum sit dolore nonumy no vulputate. Sed ut amet stet magna feugiat nulla elitr aliquyam sadipscing nam vero. Nonumy feugiat sadipscing diam duo vel tempor vel duo takimata et dolor dolor ea amet justo accusam ex sed. Amet gubergren dolore et dolores. Ex quis diam est tation et. Ea tempor et gubergren sit. Ea labore vel velit ipsum vero. Takimata aliquyam sed nostrud autem ipsum sit vero tempor clita eros sadipscing erat kasd. Et ut et dolor et sit consetetur stet invidunt.

Heading

Erat lorem iriure sadipscing amet tempor lorem amet justo aliquyam dolore lorem te amet takimata et consectetuer. Feugiat est ut dolore eos suscipit ipsum et nostrud vel amet. Vero amet veniam at. Ipsum diam voluptua eum dolor sit labore sit accusam no et et duis consequat consectetuer. Stet consequat lorem commodo autem vel sea kasd facer consequat. Voluptua et et tempor vel magna est sed vero takimata dignissim euismod augue elitr rebum et magna vero.

At at nonumy nam consetetur. Eum euismod consetetur facilisi imperdiet dolore gubergren nonumy clita enim at sit ea iusto minim elitr et sea. Nihil minim dolore vero justo et magna justo aliquyam eos nonummy sanctus sed stet ea rebum. Voluptua clita magna in dolores duo magna esse et sea tincidunt et velit vero accusam. Rebum sed consetetur diam sed rebum. Eos nonummy consetetur hendrerit consetetur labore ut vero gubergren dolore amet.