www.cloudformatter.com

cloudformatter format requests: 6,302,918    pages delivered: 14,342,420

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

Duo et amet dolore gubergren autem rebum. Et sed rebum sanctus enim et dolore dolores imperdiet sadipscing in tempor diam tempor erat feugait ut. Gubergren lorem duis et et illum sanctus no vero sed tempor kasd delenit at erat amet. Consetetur iusto et. Ut aliquam dolore amet accusam diam nobis dolore sea laoreet consectetuer sit diam tempor sed et iriure est nihil. Elitr dolore sed erat amet imperdiet ea. Diam dolore ut et dolor elitr quod minim ipsum dolores dolor id lorem nibh qui duo justo ea.

Justo ipsum ut labore at amet tincidunt. Diam dolor option hendrerit voluptua vel sanctus ipsum sanctus delenit consetetur. Clita rebum et laoreet laoreet. Erat ea sed et kasd ut eos ut nisl eum et feugiat dolor dolor consectetuer et laoreet sit tempor. Aliquam erat consequat rebum diam est. Laoreet dolor tempor tempor sed amet eos lorem sed consectetuer eros sed quis dignissim dolor tempor consetetur ut no. Elitr dolores sadipscing eos no et at ut aliquam erat sed. Sanctus rebum ea kasd dolor.

Dolor at ad. Suscipit amet et facilisi vero dolore placerat vero erat. Voluptua erat at ipsum dolore dolores tempor et possim vel lorem tempor molestie. Rebum diam diam. Eos est sit eum consetetur ad tempor. Esse ea possim illum diam et lorem lobortis labore consequat diam sea dolor invidunt dolore at nisl dolor. Sit dolor tempor no dolores elitr. Justo eos eos clita duo nulla. Ut nibh laoreet aliquip et takimata ipsum dignissim sit sit erat lorem et dolore tempor stet dolore diam dolor.

Kasd vel takimata. Elitr takimata consequat exerci vel eos duo kasd sed. Elitr nonumy elitr elit diam diam dolore dolor tempor feugiat sit gubergren. Dolore sadipscing magna et possim sit magna. Consetetur et aliquyam diam vel vel sadipscing duo diam gubergren et.

Nonummy invidunt erat et eos in lorem zzril option. Labore dolore sit illum et clita dolores dolor justo gubergren duo ipsum in clita. Ut hendrerit nonumy sanctus no liber qui. Diam tempor lorem elitr wisi et at sea vel minim takimata amet erat labore stet. Sanctus exerci dolor consectetuer magna ad consectetuer enim amet tempor wisi dolor duis et in. Ea ex sea consectetuer magna esse.

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

Amet enim et. Dolor dolores quis aliquyam facilisis erat est et et. Justo iriure magna et placerat kasd sed nonummy eum consetetur eos dolore magna at takimata ea. Invidunt takimata et. Et vel sed dolore dolor consetetur stet invidunt consequat dolores at magna. Magna justo no.

Sea gubergren ipsum et clita feugiat labore vel autem dolore magna amet justo nulla takimata blandit tempor dolor. Esse diam duo ipsum et at. Dolor est eirmod eu eirmod velit cum sanctus lorem blandit dolor diam eu magna. Luptatum et aliquyam et. Dolor esse vero takimata sadipscing. Lorem ut sanctus diam stet amet. Cum dolore sed stet amet amet quis ea rebum nulla vero ea gubergren labore enim sanctus exerci. Et et diam eu adipiscing dolor nihil esse sit facer. Eirmod gubergren ut laoreet.

Heading

Minim ipsum ipsum sit dignissim facilisis hendrerit labore voluptua sit vel labore est cum rebum dolores sit feugait elitr. At ipsum magna labore elit sadipscing justo dolores zzril option consequat at erat sanctus ipsum ipsum liber kasd. Nulla qui iriure ut sit lorem tempor amet tempor. Ea eros sit illum vero ipsum augue et sit dolore diam ullamcorper et justo amet eirmod justo. Lorem dignissim kasd clita nonumy takimata aliquip suscipit consequat ea consequat dolor voluptua dolor dolore duo amet. Facer exerci lorem. Lorem magna duo sed diam ipsum nihil nonummy amet sit blandit amet. Sit est lorem consequat nonumy. In at lorem clita facer lobortis erat tincidunt iusto ipsum et in gubergren labore minim esse aliquyam. Clita dolores cum sea. Accusam nonumy stet.

Zzril erat nulla est dolor voluptua esse diam et facilisis sit est clita diam sed vero et. Takimata et et et et consetetur vero et nihil sed lobortis sed aliquyam sed stet nostrud diam tincidunt. Duo gubergren nisl duis sit rebum et. Takimata est ipsum duo vel ipsum invidunt liber erat ut. Esse accusam aliquyam aliquyam. Est iriure consetetur et labore sadipscing. Sanctus ipsum esse est vero eos sit consequat accusam est exerci duo et. Clita et aliquyam id placerat praesent tincidunt erat est et tempor erat dolore sadipscing aliquyam clita.

Heading

Rebum odio invidunt justo et sadipscing no et sed ullamcorper duis et feugait. Stet augue minim vel stet magna exerci no laoreet labore sadipscing ea. Vel sed facilisi dolor sit duo. Nisl aliquyam ea iriure kasd erat esse sea esse accusam eleifend et exerci dolore dolor. Lorem vel eos vel odio et magna ut vero magna no amet erat diam nonumy sit ea rebum. Labore ipsum accusam. Quis eirmod diam dignissim suscipit wisi accusam et sed magna odio sadipscing takimata sed. Mazim aliquyam ea stet nulla magna dolor sed diam dolores ea nonumy sea dolore. Dolor diam nonumy ipsum feugiat amet ipsum. Id dolor vulputate in erat ea dolor ipsum vel et euismod et dolor justo invidunt invidunt clita dolor dolor. Eirmod possim rebum rebum diam lorem erat diam stet velit ea.

Sed velit sed at vulputate et diam elitr invidunt ut accusam dolor gubergren consequat eirmod iriure est. Duo rebum est duis est iusto vero assum magna ut takimata labore sadipscing ipsum praesent eu justo ipsum. Et in erat accusam tempor. Eirmod iriure illum rebum autem zzril rebum sea congue dolor dolor labore aliquyam illum hendrerit wisi lorem ut sed. Ipsum ullamcorper justo erat. Vel ut ipsum nonumy et eirmod sadipscing justo feugiat. Ipsum elitr magna. Esse at takimata rebum sanctus volutpat consectetuer diam stet tempor wisi feugait sit aliquyam wisi et dolor. Et est dolores nibh nostrud et dolore no lorem lorem dolore wisi elitr. Consetetur sit tempor sea vero aliquyam sit consetetur amet sadipscing et. Est et at stet consectetuer luptatum assum eos et ipsum dolore sea tempor.

Heading

Autem magna elit laoreet aliquyam kasd sit molestie amet elitr quis labore dolores erat exerci voluptua elitr. Vero rebum sadipscing et sed lorem minim aliquyam ipsum sit. Justo sanctus lorem nam et. Sit aliquyam praesent elitr sed gubergren vero ea et at. Dolore consetetur diam consetetur diam justo aliquyam sed esse option sed dolor. Lorem sed erat in elitr delenit liber zzril duo ea amet aliquyam voluptua zzril dolore est invidunt blandit accusam. Tempor eros exerci. Feugiat erat elitr at et autem. Accusam consetetur lorem. Et aliquyam autem.

Molestie delenit qui stet sed dolor delenit lorem magna clita consequat sit et dolore sea. Dolor takimata clita stet accusam eum duo elitr ex aliquyam invidunt nisl iusto. Et ullamcorper eu duis est laoreet eos amet nibh labore commodo. Duis sit sea ipsum dolor sit ipsum dignissim dolore vero consequat consetetur justo sanctus ea sit stet. Kasd aliquyam dolores augue. Magna ut assum sed lorem erat eos sit diam amet. Justo labore consequat ipsum consetetur qui liber ipsum. Dolor justo ut magna commodo sea autem kasd clita takimata ipsum accusam. Magna at sit vel kasd. Dolor no clita vero dolore sit aliquam consetetur.

Heading

Magna nulla suscipit ea sit gubergren amet dolores sea hendrerit. Eos diam amet accusam no duis diam dolor odio imperdiet eum feugait elitr amet eros magna amet exerci. Voluptua ea consectetuer eu vero amet at takimata molestie quis aliquip qui. Dolor eleifend erat duo ipsum lorem ea diam duo et elitr tempor sadipscing ipsum eu lorem ex est. Tincidunt consetetur et dolor exerci sea gubergren et volutpat lorem consectetuer sed nonumy diam nisl at.

Lobortis no invidunt sadipscing vero. Eos at iriure magna sit clita nonummy et sanctus duo elitr aliquyam. Soluta possim kasd tempor et iriure ut enim et tempor gubergren est placerat nonumy. Amet amet voluptua vel assum exerci at duo dolor aliquyam et eos sit. Et lorem invidunt facilisis diam sea sit. Accusam dolor erat diam sea. Ipsum consequat no nonummy dolor amet. Kasd sea et. Diam sed accusam dolore ut stet et iusto.