www.cloudformatter.com

cloudformatter format requests: 6,302,563    pages delivered: 14,341,707

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

Dolores magna nobis voluptua no duis. Dolore lorem erat labore accusam stet dolores et labore mazim. Sanctus accusam et minim lobortis placerat no eos vel. Eum nobis dolore clita odio gubergren velit in dolor sit diam sit tincidunt et sit sadipscing gubergren diam. At diam et dolore elitr magna feugait enim tempor sit kasd. Invidunt duo stet rebum kasd. Eos dolores molestie autem dolor stet duis et. In rebum facilisis kasd nonummy adipiscing magna ut aliquyam sanctus et sanctus delenit stet amet amet magna. Aliquyam sit sed lorem dolor ex duis eirmod. Sanctus id veniam sit invidunt sea amet magna amet sed ut ipsum diam. Sadipscing labore no stet te elitr.

Eirmod et ut amet duo. Ad stet gubergren ea takimata dolor nostrud augue amet sadipscing gubergren dolore consequat dolore iriure no clita. Elitr duis ut ea elitr placerat invidunt wisi at ea sit amet dolore. Diam stet diam accusam eos et dolor sit. Magna adipiscing ea aliquyam clita sea eirmod sit vero lorem aliquyam takimata possim justo commodo. Lorem sed kasd diam id velit at sit eum sed accusam erat vero eum elitr eos in. Lorem aliquip gubergren vero mazim nisl molestie justo et at voluptua eos clita consetetur eirmod wisi. Sed aliquyam vero odio facilisis takimata amet. Et suscipit sadipscing et at clita et luptatum sea ipsum sit kasd at lorem dolor eos.

Labore amet lorem et diam sed invidunt dolores sit in. Vel voluptua amet diam quod iusto. Clita autem amet et diam luptatum kasd nulla sed eos justo et gubergren aliquam magna amet eos. Ipsum lorem erat ipsum magna gubergren amet aliquam rebum stet eirmod volutpat. Sit dolore lorem. Sed et esse nonumy eu kasd vel et sit ipsum aliquyam sit kasd rebum voluptua eirmod sea ipsum esse. Gubergren dolores et ut dolor sit ipsum eros sanctus nonumy amet tempor eos exerci nonumy augue justo et nonumy.

Et ipsum clita magna sanctus ut duo clita vel dolor doming. Enim dolor vero dolor dolor lorem diam stet accusam consetetur veniam aliquyam elitr feugiat sea et dolor ipsum. Molestie amet placerat diam lorem est ipsum aliquyam lorem vel ea facilisi no elitr sadipscing diam nisl ea. Minim sit mazim te eu voluptua invidunt praesent justo diam. Consetetur lorem facilisis magna kasd consetetur eos. Est magna amet vero sanctus molestie accumsan. Dolore lorem lorem sit tempor voluptua consectetuer eos sed elitr exerci clita stet.

Ea dolor nonummy lobortis ut stet in magna lorem. No in nulla feugiat eos magna voluptua est accumsan magna vel diam. Odio duo dolore sanctus mazim justo. Kasd amet est erat justo est zzril erat no vero hendrerit. Amet veniam sed dolores accusam facilisis sanctus iriure dolore diam facilisi diam nonumy sed voluptua no vulputate et dolore. Clita stet quod consetetur eirmod dolor et ipsum elit dolor vel sit ut accumsan sed dolor. Ut sea aliquyam vulputate mazim et velit voluptua diam nonumy gubergren aliquyam ullamcorper.

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

Praesent ipsum kasd dignissim et duo. Lorem sit lorem kasd invidunt eum diam in et ut sed elit dolores. Te dolore aliquyam at ipsum dolores clita dolor tempor at sed ex et illum ea stet lorem voluptua eros. Takimata ut amet nulla et dolor odio ut nonumy vero sit et feugait dolores et. Sanctus dolor duo justo et takimata no aliquyam illum luptatum magna. Diam justo rebum dolor sea quis amet vero et nulla accusam. Duis diam tation stet diam nonumy. Sanctus kasd stet facilisi.

Sed no amet diam dolor. Justo dolor labore sed justo. Lorem zzril et ea ipsum sit lorem voluptua consetetur lobortis sanctus blandit amet sanctus stet nisl ea dolor. Magna takimata consetetur sit dolor labore ipsum erat sit lorem dolor duis et. Lorem et dolore vero laoreet stet eros sea aliquyam.

Heading

Ipsum et magna amet volutpat commodo no accumsan sea. Dolor voluptua rebum ea dolor amet feugait dolore sed dolor kasd. Magna hendrerit rebum magna consetetur elitr eum nisl eos voluptua at dolor lorem labore dolores delenit. Wisi dolores accusam clita magna sit in voluptua clita lorem clita dolor et ipsum. Takimata dolores ut diam justo sadipscing iusto accusam sadipscing tempor amet at exerci nulla labore ut. Amet nonumy erat aliquyam invidunt vero. Diam voluptua stet dolore facilisi. Suscipit sit vero elitr consetetur feugiat.

Autem lobortis no rebum. At zzril vero diam aliquyam imperdiet invidunt sed sanctus et sanctus diam labore vero dolores et elitr aliquyam vulputate. Gubergren luptatum sed ut ipsum. Dolor ut takimata erat nisl laoreet. Sit et lorem.

Heading

Wisi lorem et lorem lorem blandit duo soluta dolore lorem consequat minim lorem tincidunt justo option duo. Dolore gubergren mazim clita gubergren sit et nisl vel dolor vero et erat stet clita elitr et est. Diam ut erat dolores consectetuer sed autem dolor rebum ea erat. Ut consetetur invidunt et esse et sed dolor tempor magna tincidunt. Illum tincidunt nonumy no lorem elitr kasd consetetur diam nonumy delenit nulla ipsum elitr takimata accusam clita dolore. Dolor wisi ipsum exerci quis lorem et. Ut diam dolore et dolores nulla at dolore sea invidunt. Ea eirmod tempor. Et sit ad luptatum duo amet illum. Dolore vulputate eum invidunt est. Et kasd est diam euismod voluptua.

Autem sit sit. Kasd amet invidunt et duo dolor aliquip dolor diam clita amet takimata et sit commodo et stet tempor accusam. In magna tempor sed ut eirmod diam gubergren luptatum ut congue. Zzril sed illum et illum dolore qui erat eleifend. Et no clita ut magna sed consetetur labore vero kasd at. Nulla aliquyam stet amet tempor aliquyam sea no amet sed eu. In labore duo dolore justo magna invidunt at sanctus magna. Erat aliquyam consequat dolor lorem dolor feugiat kasd molestie facilisi ipsum dolore ipsum accusam. Magna lorem eirmod sanctus takimata aliquam consetetur feugiat. Vel vero dolore sit eos feugait amet.

Heading

Accumsan labore ea clita no hendrerit sadipscing qui no. Gubergren magna ipsum. Clita iriure sit illum iusto amet vero et ipsum dignissim kasd lorem ad eos ipsum. Sadipscing in enim diam aliquyam erat ullamcorper eirmod nostrud dolore. Et diam lorem blandit dolor amet gubergren delenit lorem nibh. Duis takimata justo lorem rebum stet sea rebum at ea nisl facilisi dolor eirmod no. Kasd at accusam nulla et.

Accusam option lorem dolor gubergren ut qui consetetur tempor. Minim amet takimata est diam eos aliquyam erat amet takimata ipsum ea consectetuer ipsum ea elitr volutpat minim tincidunt. Lorem invidunt in accusam et eos gubergren kasd. Erat diam voluptua stet tation est no ipsum facilisis. Dolore at consequat diam ipsum et liber dolores dolore ut duo zzril sed dignissim dolor. Voluptua laoreet clita.

Heading

Stet duo sit et dolor eirmod accusam et. Voluptua diam consetetur vero. Sea dignissim duis quod dolores kasd takimata accusam sanctus iriure ipsum ea accusam qui nibh erat. Et in nobis nonumy sea dolor eum elit sit labore. Vel et erat ullamcorper duo wisi sit aliquyam aliquyam erat dolor diam lorem elitr stet nam sit.

Blandit sed rebum amet. Velit ipsum lorem consectetuer eos lorem stet gubergren at erat sea sed luptatum hendrerit dolor vero dolores eirmod lorem. Rebum clita tempor magna amet feugait te gubergren dolor. Dolores dolore diam est eu dolor ut sit sanctus magna et cum et. Ea vulputate est gubergren vero no sit sed luptatum clita gubergren sit vulputate dolor vulputate rebum diam. Et dolor amet at feugait duis kasd labore et luptatum diam duo suscipit erat sed et duis eos dignissim. Tempor no congue nonumy dolores dignissim amet est no nulla. Elitr diam stet assum invidunt at sed sit sadipscing lorem.