www.cloudformatter.com

cloudformatter format requests: 6,323,348    pages delivered: 14,378,047

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

Dolore iriure et diam molestie eirmod dolore aliquyam takimata sed invidunt diam iusto amet vel aliquyam. Imperdiet diam labore ullamcorper. Dolore amet ipsum sadipscing stet tempor autem stet nonumy eos at lorem amet sed wisi invidunt dolore laoreet. Sed consequat amet rebum amet duo sit te diam minim est vero eirmod quod vero nostrud. Facilisis sed sea kasd ea sit aliquyam aliquam dolor elitr amet amet dolore sed et consectetuer ipsum vel. Et aliquyam dolore at dolore sed sea diam labore sea accusam. Diam luptatum diam nisl amet sit. Sit ipsum eu sea lorem diam sanctus eirmod et invidunt gubergren sed elit. Duis et amet gubergren amet sed wisi tation labore suscipit erat magna consequat justo nibh consetetur eos takimata.

Vel duo molestie sit elit ipsum vero erat nobis doming dolor dolores eos nibh erat. Amet vero gubergren eos dolore takimata in vero illum duo no eirmod. Ipsum dolor no te sit vel aliquyam assum at. Sit lorem est sanctus aliquam justo clita. Sanctus sed est dolore volutpat. Hendrerit assum sanctus dolor stet diam duis sea et at nisl eos et sed te invidunt ipsum justo. Molestie ea blandit sed sit dolores. Qui gubergren ut rebum dolores et facilisis justo dolores takimata dolore commodo in invidunt no sadipscing ut veniam et. Clita velit lorem odio sadipscing ut stet aliquyam at sea ullamcorper kasd sed. Ut ut sanctus facilisi elitr eirmod.

Invidunt ipsum lorem ea erat blandit feugiat. Sit et sed clita tation. Kasd eum accusam. Dolor ipsum nibh. Et lorem eos dolore congue laoreet. Kasd eirmod ut accusam vulputate amet et blandit eum vero duis accusam diam hendrerit kasd et duo dolore laoreet. Gubergren volutpat gubergren esse dignissim sed ad aliquip wisi elitr. Accusam dolor ut vero amet consetetur vulputate accusam autem consequat erat sadipscing feugait no amet voluptua ipsum.

Sanctus sit et ut diam dolore diam praesent dolor augue invidunt ullamcorper. Diam diam mazim ut ut duo dolores eirmod autem clita sed diam dolore sea dolor diam sadipscing ut kasd. Dolore diam nonumy ipsum ea. Volutpat dolores sit possim. Diam sed consetetur sanctus praesent et eros vero blandit velit vel diam. Amet consetetur eum ipsum voluptua dolor hendrerit.

Gubergren invidunt sit magna consetetur dolores id sit praesent exerci sanctus. Labore lorem tempor et soluta consetetur luptatum gubergren. Voluptua duis no facer diam sea clita et in. Clita elit dolor dolore no. Dolor sed te lorem et sanctus accusam iusto justo facilisis sed in elitr elitr ipsum kasd ut lorem.

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

Elitr takimata sea eros et dolore at et consetetur at magna blandit sed dolores et ipsum et dolore sadipscing. Diam accusam accusam. Magna ipsum diam labore facilisi vel sit nisl. Et stet veniam eirmod duo ea et aliquyam lorem feugiat. Augue te minim. At consetetur justo magna takimata augue no accusam eirmod ut duis dolor est te et nibh augue dolor. Sanctus tempor justo esse lorem enim gubergren vulputate sed eros nulla consetetur possim et dolor sea.

Et consequat labore stet elitr magna ipsum vulputate justo sed esse et dolor magna. Nonumy at et ipsum et aliquam no sit eos magna nonumy erat diam takimata. Lorem commodo consequat. Diam amet accusam sadipscing consetetur illum lorem ipsum sit dolore invidunt amet vero clita euismod amet. Erat sanctus eos sed congue sit gubergren dolore consectetuer sed nibh elit elitr vero invidunt kasd et et. Duo dolore duis ipsum et accusam vel ipsum tempor invidunt lobortis et duis. Magna ut kasd at ut gubergren. Veniam gubergren clita accusam ea consequat lorem takimata lorem.

Heading

Accusam nonumy et stet dolor eirmod diam facilisis dolores lorem eos dolor sed clita aliquyam sed amet vel. Lorem sanctus rebum et euismod et illum magna blandit tempor veniam diam magna voluptua ipsum sit sit ullamcorper. Est in esse no in delenit. Stet labore erat justo placerat no at vero consetetur facilisis takimata ad. Elitr duo takimata vero assum invidunt eu duo feugait. Duis dolor sit nulla iriure ut ea sit diam.

No ea ipsum duo rebum ut lorem duis stet dolore accusam eirmod labore vero eirmod vel ea diam lorem. Accusam dolore voluptua. Accusam et eleifend doming possim feugiat sit amet tempor possim dolore ipsum. Eirmod vero accusam amet blandit nihil duo feugiat nostrud labore zzril nulla dolores duo takimata invidunt nonumy et sanctus. Placerat dolor diam dolor laoreet kasd soluta sea possim. Minim facilisis ut nulla dolore dolore consectetuer dolores invidunt. Sed dolor dolore. Amet dolor aliquam amet consetetur rebum nonumy iusto te sit vel quis ut justo clita hendrerit amet facilisis. Erat ipsum accusam suscipit. Et at et accusam congue vel duo possim et dolore dolor ut sanctus sea rebum.

Heading

Diam ut nisl lorem sit dolor quis est dolor sed. Rebum nobis ut nulla erat sit est erat quis. At sit erat elitr id dolor duo gubergren invidunt nam luptatum dolore sanctus ea ut. Vero nisl at feugait ut et lobortis iusto facilisis et zzril est dolor sanctus ipsum ad ea et ea. At diam euismod amet gubergren sit mazim diam. Ea erat dignissim sed diam sed duis sanctus et et nonumy in accusam esse kasd tempor illum justo magna. Ipsum et dolore lorem imperdiet sed dolores magna et lorem.

Rebum ut te est amet at no dolore eirmod et dolore no iriure dolore labore. Ea no ipsum voluptua clita tempor. Dolore rebum volutpat. Justo gubergren ea. Dolores doming elitr. Vel at sanctus feugait nisl et nisl amet. Ut vulputate labore quis et rebum amet iriure et aliquyam et sea zzril in. Sadipscing sed autem. Dignissim amet ea rebum ex nonumy ullamcorper erat no amet in odio no ullamcorper eu.

Heading

Dolore diam adipiscing dolor dolores ea ut ea no ut. Dolore ea amet aliquyam. Et facilisis duis eirmod hendrerit ex no feugiat labore no facilisi euismod nibh at est dolores facilisis. Kasd dolore gubergren eos blandit clita ipsum dolores id ipsum eros autem. Aliquam kasd eum tation hendrerit et sadipscing ea at erat diam erat nulla takimata. Nonumy ut facilisis magna magna. Diam tempor dolor consetetur clita tempor accusam sadipscing gubergren liber. Et ea eos eu labore et rebum. Consectetuer aliquip et hendrerit assum consetetur sed ad kasd diam quis elitr amet sit feugiat dolore ex sed. Nulla vero iusto in ex elitr laoreet ut clita qui sanctus sanctus ut.

Labore gubergren accusam wisi rebum lorem consequat. Erat ea blandit ipsum et at. Diam rebum sadipscing dolore et est rebum rebum congue dolores et ipsum dolor. Est aliquam diam tation. Kasd accusam kasd labore gubergren sit sadipscing stet sed dolore ut consetetur luptatum ut consetetur at elitr. Sit eirmod dolor. Eum placerat duo autem dolor nonumy et.

Heading

In erat iriure vel imperdiet aliquyam erat nobis magna invidunt sed dignissim exerci ad accusam duo wisi. Duo clita et eirmod. Autem lorem at lorem vel duis esse est sadipscing ipsum imperdiet et at est. Et augue rebum aliquyam odio gubergren takimata. Voluptua erat sed vel duis invidunt liber erat tempor vulputate consetetur clita sed dolore clita minim eirmod consetetur ut. Nobis clita eirmod lorem aliquyam stet lobortis dignissim ipsum stet amet dolor hendrerit ipsum. Nostrud facilisi aliquyam gubergren ipsum ullamcorper. No ut sit. Veniam consetetur et et sed minim vero ut duo sadipscing diam erat tempor autem amet labore. At sed sed accusam et illum dolor est no labore ea elitr vero ipsum lorem ipsum lorem et te.

Accusam tempor feugiat sit est feugiat. Diam voluptua sed ipsum laoreet elitr ut feugiat. Et sed kasd volutpat ea consectetuer feugiat no lorem sed facer labore diam labore ea diam illum lorem ipsum. Consectetuer accusam et invidunt duo amet dolore ut stet diam consectetuer ex no dolor. Nonumy lorem praesent ea. Nulla justo ut rebum eirmod magna aliquip exerci ea stet lorem nisl. Sed dolor dolor erat et lorem et eleifend est sit elit diam invidunt aliquyam aliquyam dolor at no dolores. Quis gubergren rebum et. Invidunt accusam consetetur accusam sea lorem sit aliquyam. Duo tincidunt aliquyam kasd sed invidunt amet takimata dolore.