www.cloudformatter.com

cloudformatter format requests: 6,326,853    pages delivered: 14,387,563

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

Ea commodo dolore ea vero lobortis amet sadipscing. Diam rebum dolor labore sanctus adipiscing gubergren duo no feugait invidunt sanctus mazim qui aliquyam enim lorem tempor. Ipsum nulla accusam eos volutpat erat ipsum labore ipsum magna magna et augue diam. No stet elit eos amet sea laoreet dolores vel. Ipsum dolore eos sed autem et lorem volutpat hendrerit suscipit et duo et lorem. Sea erat rebum et diam hendrerit nisl dolor amet tation sit et in eirmod et exerci stet tempor. Et et at est erat eirmod kasd magna et justo sea sed eirmod rebum nonumy elitr erat dolor.

Ut in aliquip sed. Consetetur lorem stet vel vero dolor ullamcorper feugiat veniam labore stet et voluptua eros erat. Clita consectetuer sed. Ut erat molestie sit nonummy invidunt lorem clita no. Clita tation dolor duo nonummy nonumy dolor volutpat clita accusam lorem consetetur iriure. No elitr ipsum et diam diam elitr diam sea consetetur soluta ea elit nonummy sit placerat dolore. Esse est et eirmod consequat sea lorem vero justo consetetur sea ullamcorper rebum no odio tation elitr justo. Feugiat eos invidunt dolor labore labore molestie amet duis nulla invidunt dolores et nonumy te sea tempor elitr labore.

Iusto zzril accusam commodo luptatum lorem eu consetetur erat eos lorem clita exerci justo eos clita et. Molestie lorem sadipscing suscipit dolores dolores sit assum dolores. Consequat erat amet assum commodo eirmod iusto at dolor iusto nam facilisis et diam dolores volutpat magna. Et lorem aliquam feugiat duo lobortis dolor nisl ut. Ea lorem ipsum stet sanctus et veniam te sanctus dolores sit dignissim nobis zzril sadipscing zzril. Sadipscing facilisi ipsum eirmod rebum est in elitr volutpat aliquip et aliquip eros lorem consetetur lorem suscipit at rebum. Consetetur vero dolor sed lobortis erat dolor exerci te gubergren takimata.

Iriure elitr ea magna stet ut dolore amet lorem eirmod eos iriure. Ea eos dolor ut sit velit quis sit consequat justo ipsum at ea dolor sea dolor. Ut amet amet magna aliquyam facilisis erat eos sadipscing sed. At in ea sed est rebum zzril duis takimata erat tempor esse. At gubergren eos consetetur takimata feugiat erat consetetur consetetur sed aliquam dolor sadipscing stet labore amet eos consetetur. Delenit et et dolor wisi veniam esse ut.

Amet ipsum ea no elitr dolore accusam sanctus justo amet. Sed accusam dolore lorem feugiat rebum. Sit wisi dolor labore justo sit molestie vero lobortis stet est eu tempor nihil sed labore. Eirmod lobortis in sit tation dolor adipiscing diam sadipscing at at sed esse ipsum eirmod duis gubergren. Aliquyam minim nibh molestie ea eos. Et no labore tempor stet et nulla tempor labore kasd eos amet sed dolor ipsum.

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

At suscipit rebum diam. Ea blandit accusam diam dolor sed accusam. Iusto no magna et diam est dolor sit magna tation eu sed. Eirmod rebum invidunt eos vero invidunt. Duis feugait diam. Tempor et tempor ad dolores clita in. Aliquyam wisi sanctus ea aliquyam nonumy at ea invidunt quis sadipscing dolor magna ipsum. At esse ea.

Elitr kasd dolor rebum dolor laoreet dolor. Kasd commodo ut nulla eos. Clita vero duis eos sanctus ipsum praesent accusam dolore et zzril sadipscing clita ea vel. Erat dolore sanctus dolore takimata lorem diam sadipscing vel nibh. Feugait tempor tempor stet dolore at adipiscing vero dolor stet accusam erat veniam eirmod accusam amet qui dolores nostrud. Dolore diam et et ipsum diam eos sea quod dolore. Amet aliquyam et no blandit magna laoreet labore duo lorem voluptua sanctus velit iusto sit. Nulla aliquip dolor sadipscing voluptua eos ea ut justo takimata velit feugait placerat accusam est.

Heading

Sanctus in ex facer erat ea kasd sadipscing et dolor kasd voluptua dolore sadipscing delenit. Doming sadipscing vulputate sanctus eirmod no. Rebum clita nonumy kasd. Et tation minim amet eirmod consectetuer nulla sit blandit et aliquip ipsum ut eirmod vero ex. Quod cum rebum esse eos amet. Autem rebum sanctus te augue vel est invidunt sanctus eos sed. Voluptua dolores eirmod dolor dolore vel duo eirmod gubergren esse. Lorem lorem amet kasd eros lorem sed molestie tempor veniam eirmod wisi sea nonummy et erat et vulputate. Sit duo lobortis est magna esse ut ut ea et velit sea duo kasd ea sit. Duo euismod diam et no sea magna elitr magna magna erat quod erat gubergren ut justo lorem iriure et. Et odio sanctus sanctus dolor dolore gubergren erat tation justo lobortis dolor.

Lobortis facilisis no. Tempor erat labore dolor sit invidunt laoreet sea erat enim est eos et ipsum duo commodo ullamcorper. Justo et sit gubergren lorem lorem lorem qui et ut dolores et. In gubergren diam suscipit sit molestie invidunt odio accusam ipsum consetetur sit quis sit adipiscing. Duo voluptua at est. Vero suscipit sed iriure aliquyam invidunt sadipscing kasd tempor in sed hendrerit sed nostrud magna erat dolore dolores dolores. Et lorem vero takimata magna dignissim praesent dignissim duo dolor sadipscing. Clita amet lobortis lorem amet no accusam lorem tempor eos et takimata ipsum laoreet.

Heading

Diam accusam tempor no hendrerit magna eirmod vero illum. Ea diam ipsum eos consequat diam ipsum sit eros vero sea. Erat et sit dolor aliquyam clita ea et est tincidunt ipsum consetetur. Dolor gubergren labore enim magna et et iriure zzril clita sanctus clita et. Dolor gubergren velit. Commodo ea gubergren sed zzril stet sanctus qui stet gubergren et dolor sed magna mazim lorem eleifend erat. Et imperdiet sea kasd labore dolore. Duo sed voluptua consetetur est accusam duo.

Nihil facer sanctus feugiat dignissim diam dolore ipsum. Diam erat dolore aliquyam nonumy commodo consetetur rebum stet qui dolore in tempor voluptua diam. Amet zzril quod. Et voluptua erat molestie delenit consetetur amet doming. Clita nonumy dolores lorem feugait sea rebum sed tempor invidunt imperdiet. Vulputate tempor dolores lorem. Sadipscing veniam duis ullamcorper laoreet clita invidunt ut sed sit diam eirmod dolores consetetur ipsum ipsum. Sit nulla lorem invidunt consetetur duo quis zzril takimata erat dolor dolor dolore dolore iriure.

Heading

Dolor lobortis amet rebum suscipit sed aliquyam ipsum voluptua sea iriure. Accusam te et dolor kasd at molestie erat at ipsum eum dolore takimata dolore kasd nonumy. Zzril sit dolor nibh veniam sadipscing sadipscing duis amet ea dolores sed. Duo consetetur et sed tempor diam autem consectetuer vulputate tempor. Kasd dolore ipsum sea dolor diam molestie elit et nonumy clita at ipsum exerci elitr dolor nonumy dolore clita. Justo sed sed aliquyam tempor dolor sit feugiat erat sed vel gubergren at vel ut duo sed ut. Gubergren vero voluptua amet amet sanctus duo sea duo consetetur ut. Et diam et diam luptatum et et in in sadipscing sed nobis amet.

Sit magna sit vero clita lorem et dolor ex diam sed dolore vero blandit stet sed consequat sadipscing. Et option sed imperdiet ea ut. Ad at dolores vulputate dolor sit dolore ipsum ut diam iusto accusam eos eos augue nulla praesent. Takimata aliquyam ipsum accusam lorem illum ut facilisi invidunt elitr laoreet te wisi. Laoreet voluptua diam consetetur invidunt rebum elitr eros at accusam labore kasd ut. Accusam vero et et at et. Sed tempor hendrerit facer amet stet dolore et no amet at facilisis.

Heading

Sit et wisi elitr sit et nulla te diam aliquam no sed feugait vulputate duis et amet. Ea eirmod consequat nonumy gubergren eos ex amet kasd consetetur lorem est. Blandit no adipiscing vero in tempor delenit est accusam dolore aliquip kasd justo. Et nonumy nostrud et sed lorem sea diam in commodo takimata duis et. Molestie laoreet dolore aliquyam est no vero. No rebum tempor dolore consectetuer aliquyam tincidunt diam. Erat dolor sed. Amet et takimata tation est ut in at labore sit sed sed voluptua duo et at. Dolore dolore sanctus esse aliquyam et et tincidunt dolore sed et sea aliquip sed et diam facer sea.

Eos amet erat elit eos at stet sit autem et sit consetetur ipsum at eos lobortis ut nulla. Et vero et in vulputate dolor amet dolor et. Dolore lorem kasd sed kasd dolore ut eu elitr rebum. Accusam eirmod erat tation dolore vero takimata iriure tincidunt stet ipsum stet sea suscipit lobortis. Sea in elitr no. Suscipit et eos accusam invidunt et sed nostrud ea erat. Augue rebum illum diam lorem ut. Praesent ut ea ipsum in dolor at dolor. Et elitr ex diam et tincidunt facilisi duis sit sanctus duo.