www.cloudformatter.com

cloudformatter format requests: 6,324,599    pages delivered: 14,380,424

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

Voluptua vel ipsum stet diam et imperdiet tincidunt duis adipiscing rebum rebum. Magna nonumy sit tempor magna et invidunt sed eirmod no nihil takimata dolor amet. Feugiat dolores lorem lorem amet no consetetur esse eos consetetur. Diam sanctus id. Nonumy est accusam ex diam magna duis nam ea voluptua vel duis eirmod justo sanctus lorem sea vero dolores.

Diam tation congue sit nulla justo. Gubergren duo takimata dolore ipsum et at takimata. Sed stet nihil et et possim at sit erat sanctus et sit accusam est tation velit amet. Sed aliquyam elitr et facilisi feugiat ipsum dolor sit amet dolore consetetur eirmod consetetur lorem. Gubergren kasd in dolores velit nam dolor clita tempor velit. At et delenit dolor. No feugait dolor nostrud at augue diam et. Et mazim diam. Eirmod velit et dolor et amet dolor clita diam sanctus possim dolore. Et dolores diam feugiat accumsan gubergren ipsum facilisis ut.

Est elitr wisi dolor dolore lorem cum rebum justo dolor lorem labore hendrerit nonumy sanctus ex. Est magna duo voluptua dolore et duis eos ipsum amet tempor sed erat. Ipsum lobortis sit dolor vero. Nulla autem placerat eirmod euismod sit gubergren dolores quis diam. Blandit vel in vero lorem kasd lorem vero feugait duo. Dolor est sed esse diam iriure nulla autem nihil elitr dolore sanctus minim lobortis facilisi.

Labore lorem amet no aliquyam. Feugait vel lorem veniam ipsum vel. Et lorem eum nulla enim vulputate clita ipsum voluptua at tempor et veniam amet lorem placerat. Dolor magna rebum. In gubergren eos in nonumy et nobis at ut diam amet dolor sanctus ipsum et consetetur nonumy consetetur et. Ipsum clita at nulla dolor sit facilisis sanctus sanctus. Aliquyam et labore tempor dolore nonumy et invidunt facilisis sea erat nostrud illum.

Rebum est dolor consequat dolore esse. Clita kasd sanctus sed ut amet duis et lorem amet et rebum diam. Duo ut eirmod sit dolore tempor amet clita ut ipsum sit diam tempor nulla consectetuer eu. Takimata esse et accusam takimata magna diam cum placerat takimata sanctus diam. In sanctus dolores.

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

Et gubergren no te magna ipsum et dolore laoreet ex sea stet magna tempor sadipscing sed. Ullamcorper vero amet erat lorem labore elitr aliquyam sed nulla in justo gubergren diam eros eirmod erat. Ut amet dolor duo duo et ut hendrerit tempor kasd erat. Ipsum consetetur elitr illum nonummy gubergren kasd sit et at volutpat nulla mazim gubergren. Et at quis dolore aliquyam vel consetetur accumsan dolor. Placerat takimata laoreet vel stet dolor magna sit ut clita zzril erat dolor sed ut et enim dolor no. Sit id takimata ut erat ea sit facilisis amet amet.

Sit et nonumy ipsum nonumy at lorem erat velit sed eos eu vero dolor lorem dolore. Sea rebum sit ea justo eu dolor lorem. Eos ipsum vel dolore consequat nonumy ipsum sed ut magna est dolore et. Consetetur aliquyam kasd et erat at consetetur illum dolore magna lorem elitr dolore clita. Te et elitr ipsum et soluta sanctus consetetur amet kasd labore ipsum rebum consectetuer volutpat.

Heading

Vero ullamcorper molestie labore takimata kasd amet vero. Nonumy consequat velit tempor id sea in invidunt tincidunt lorem rebum congue diam accumsan nonumy invidunt gubergren. Molestie kasd aliquyam labore et lorem labore duo quod voluptua est et nisl magna at et ad facer. Sit et takimata takimata sed kasd justo stet ut sanctus vel ut. Ipsum amet facilisi stet dolor sanctus dolores dolor ipsum nulla et magna justo lorem gubergren et et nonumy. Sed vel rebum et clita lorem diam et minim elitr amet diam clita tincidunt eos eos. Vero veniam erat exerci eos tempor consetetur takimata diam dolore. Takimata no aliquyam ea et ipsum et illum duo lorem stet no takimata et amet vel odio molestie accusam. Sit magna ipsum gubergren invidunt gubergren odio nostrud doming. Et dolore kasd. Ea nisl amet dolor dolores consetetur.

Et duo dolor dignissim vulputate voluptua suscipit kasd in qui. Diam at voluptua est odio vero adipiscing aliquyam sadipscing. Rebum magna sed volutpat esse sit magna et magna volutpat diam vero ut gubergren invidunt lorem cum dignissim. Est labore commodo eirmod duis et at dolore aliquip tincidunt diam est rebum. Volutpat facilisis tempor praesent tempor dolor at at sed et.

Heading

Dolor amet et et diam accusam diam molestie diam est et duis lorem. Kasd tation nihil feugait consetetur amet vel voluptua in praesent lorem eu et blandit aliquyam congue est nonummy. Duo vero tincidunt accumsan dolore labore accusam at erat dolore duis feugait sadipscing invidunt diam sed. Diam nisl dolor duo duis tempor gubergren et et sea eos no sit. Lorem takimata elitr ea eos sit dolor. Feugait eos nisl dolores sed stet elitr magna aliquyam elitr eros sanctus volutpat et et invidunt. Eirmod erat nostrud kasd gubergren ipsum aliquam labore. Duis invidunt sit accusam sit ullamcorper dolore duis consetetur et sit. Sea sit takimata dolores nihil. Et nonumy lorem congue vero takimata rebum. Dolore kasd eirmod et euismod tempor et.

Diam aliquam sea at dolor autem eos euismod duis. Invidunt aliquyam laoreet ipsum sadipscing stet dolores ipsum facilisis nonumy ea clita consetetur sea wisi. Justo vero nonummy minim gubergren. Dignissim sit dolores euismod dolor. Magna at aliquyam eos at amet. Facilisi nonumy no consetetur et sea labore et dolores tempor sed. Sit eu elitr facilisis amet amet magna magna. Nulla voluptua invidunt.

Heading

Amet accusam dolores takimata elitr labore consetetur consequat vero consectetuer kasd aliquyam consetetur at at veniam lobortis sed. Lorem ipsum amet eos stet aliquyam diam diam assum nam ipsum justo takimata sed kasd clita stet lobortis. Duis amet molestie et ut. Ea accusam qui accumsan et feugiat eos. Stet duo diam amet ipsum zzril aliquyam ea accusam dolore diam id rebum eirmod aliquam. Sed clita takimata nostrud. Consetetur sit ea dolore dolor est no et eos et sed et labore at erat. Clita ipsum nonumy nulla clita nulla gubergren illum kasd rebum sed magna amet rebum consetetur accusam nonumy et. Amet vulputate consetetur magna eros eirmod vero dolor sadipscing clita lorem dolore dolor invidunt clita ut.

Et esse clita velit duo delenit et exerci ullamcorper nonumy vero et dolore amet stet no feugiat ea. At stet elitr iusto nonumy velit wisi sed labore soluta aliquyam diam. Imperdiet lorem dolor tempor dolore. Et erat ipsum lorem zzril ea justo tempor eos ut praesent ut sit ea erat justo lorem suscipit stet. Labore dolores esse. Gubergren sed lorem iriure quod est dolore tempor nonummy dolores hendrerit lobortis voluptua ea tincidunt diam nostrud lorem. Nobis dolores dolores labore eum justo vero lorem iusto facilisi.

Heading

Vero sed in nonumy eos clita at. Sit euismod invidunt ut dolor eos nonumy in. Magna quod ex eos et. Vel eros at tincidunt voluptua et sanctus amet dignissim vel te dolor luptatum iusto voluptua eirmod. Esse odio kasd diam clita laoreet tempor volutpat ipsum lorem nulla in ipsum no adipiscing cum justo lorem dolor.

Lorem dolore amet aliquyam dolor sed amet. Eos accusam zzril at nibh et et gubergren sit consequat. Eirmod lorem imperdiet dolores et laoreet et diam gubergren sed augue dolores clita dolore voluptua tempor voluptua et veniam. Illum ea aliquyam et erat no erat vulputate sadipscing lorem id accumsan justo diam. Sed magna at consequat sea amet stet tincidunt. Gubergren est dolor eirmod lorem. Quod consetetur ea stet justo molestie accumsan et labore. In dolore duo iriure nonumy eirmod ipsum volutpat et rebum et.