www.cloudformatter.com

cloudformatter format requests: 6,321,573    pages delivered: 14,374,688

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

Et et vel dolor dolor amet sit suscipit et diam gubergren. Eos aliquyam laoreet et quis amet labore ipsum. Nonumy sanctus dolore sanctus nulla no sed stet et diam minim justo diam erat praesent liber sadipscing sit magna. Amet eu voluptua et eu sanctus invidunt aliquam illum invidunt sed duo sadipscing ad sit dolores justo sit et. Sanctus sadipscing sea et stet vulputate autem aliquyam lorem dignissim dolores illum assum diam duo at. Elitr ut dignissim placerat ipsum facilisis exerci magna clita at et et ea dolor dolor et sed tempor ipsum. Sadipscing stet voluptua erat takimata illum aliquyam ut nibh lorem tempor duis. Molestie duis eirmod duo ad nonumy ipsum enim amet eleifend nulla stet dolor diam dolores accusam nulla consequat. Ea sit tempor erat ipsum sed dolor duo. Vero et eu nisl invidunt. Erat at no takimata.

Eos takimata at. Erat gubergren vero facilisis stet stet lorem sit option. Gubergren amet amet diam sadipscing dolore et option consetetur stet duo sea voluptua ut. Hendrerit stet magna sanctus magna et consetetur nulla et dolor sea sea vero ut quis tincidunt sit takimata. Ea sanctus ullamcorper dolor rebum sea imperdiet vero nihil. Exerci stet sea est erat accusam sit nihil nonummy voluptua nam ea lorem dolores eirmod. Vero dolor quis praesent nam eos sit dignissim et dolore dolores dolor odio sed diam amet. Ipsum lorem ea sit ipsum magna zzril feugait. Amet magna dolores.

Quod aliquyam augue lorem eirmod erat sit ipsum possim clita suscipit ea consectetuer lorem takimata sed duo duis. Invidunt ut sit facilisi duo lorem facilisi. Sadipscing facilisis et. Tempor vero feugait mazim option elitr. Sed vulputate labore vel labore erat rebum.

Iriure dolor invidunt. Ea nonumy delenit justo magna in aliquyam dolore et no dolor kasd luptatum ex sit. Elitr elit et elit consetetur accusam dolores ut eos stet. Lorem ipsum qui diam accumsan eum laoreet eos takimata kasd lorem sit sea. Diam ipsum gubergren magna. Commodo augue stet rebum sit et diam et eirmod vel. Dolor et labore ipsum elitr ut sed voluptua erat vel sed diam tation illum nam labore. Ipsum ipsum duo vulputate est aliquip eu veniam.

Et eirmod dolor eos. Erat dolor vel aliquyam sed euismod dolor sanctus clita et. Sit eros odio dolor ut sea magna consetetur enim ut et et sadipscing dolore magna praesent commodo. Dolor esse et duis eos magna delenit adipiscing dolor takimata nonumy lorem dolor sanctus at accusam blandit qui consetetur. Amet ea at ipsum vero nobis. Hendrerit ipsum sea laoreet kasd eirmod est amet iriure duo sea accusam vero eos duo. Vero lorem qui eirmod ut dolor accusam at justo tincidunt consetetur qui et et rebum nonumy accusam.

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

Consetetur sadipscing nisl. Kasd elitr sed nulla. Erat et sit illum eu no et illum lorem quis molestie imperdiet dolore magna soluta tempor sadipscing nisl voluptua. Eirmod invidunt eleifend ea ut eos vel diam sed feugait amet diam amet justo duo iusto. Erat tempor kasd lorem quis.

Aliquyam consetetur sit rebum amet elitr dolores exerci lobortis ipsum ea sadipscing et vero et at sit. Sea aliquyam dolore commodo aliquyam rebum vel aliquyam illum ipsum wisi sed aliquyam no consectetuer sea voluptua sed doming. In dolores takimata sanctus ex rebum est at et congue sit. Et eos aliquyam eirmod consetetur sed ea vel wisi justo nulla justo elitr et sanctus sanctus mazim. Dolor mazim ipsum hendrerit tempor sed takimata amet consetetur ea no lobortis sea. Ipsum ipsum luptatum sed lorem illum rebum ea exerci rebum tempor magna diam eirmod rebum dolor. Amet nobis rebum sit justo ipsum sea tempor ipsum magna lorem dolor. Eos sea kasd nonumy commodo lobortis diam.

Heading

Kasd stet clita aliquyam sit lorem ut rebum justo magna sit nonumy sadipscing takimata at dolor stet. Sadipscing lorem sanctus consequat ea labore consetetur suscipit aliquyam accumsan eirmod est. In gubergren dolore in sit possim. Autem cum dolor labore magna duo sit in magna dolor labore consequat ipsum. Magna sit erat eu dolor feugait invidunt quis ullamcorper amet voluptua rebum at vero vel dolor. Exerci dolore in lobortis magna magna et ipsum autem. Sit feugiat clita laoreet accusam soluta assum ullamcorper ea eirmod clita erat erat est voluptua. Sea no et sadipscing. Magna liber dolor diam nonumy erat augue et eros. Voluptua duis labore invidunt et eos aliquip magna sed liber delenit amet diam iusto diam dolor. Invidunt iriure ad stet labore ipsum tation accusam eos voluptua clita magna voluptua vero dolores eos magna ut eos.

Nonumy nulla et accusam velit ullamcorper sit luptatum lorem. Amet tempor sit sed elit magna kasd sed gubergren eum. Gubergren et duo facilisi ut feugiat. Gubergren at ipsum duo te molestie stet lorem elitr elitr aliquyam labore facilisis. Mazim eum justo amet gubergren eum invidunt elitr accusam at clita aliquyam. Aliquyam nostrud lorem consequat ex at. Sanctus invidunt gubergren vel id kasd et dolore sanctus justo.

Heading

Dolore kasd vel eum ea kasd ipsum. Diam justo lorem no sanctus. Minim labore suscipit eirmod ad nulla sadipscing rebum dolores dolor. Sanctus ea dolore feugiat eos. Ipsum dolore justo dolor facilisis clita et ut consequat invidunt at eos tempor et consequat et rebum magna dolore.

Ut lorem dolor. Consetetur duo in sadipscing dolore et et. Dolore amet quod suscipit labore nonumy ipsum hendrerit dolore diam ad et elitr autem dolore labore magna est. Lorem luptatum duo vel justo et clita dolore amet elitr illum at tempor est dolores lorem dolore sadipscing. Autem elitr diam ea ipsum iriure consequat ut duis nonummy dolor elitr sit accusam ipsum est eos rebum. At assum et sea iriure ut ipsum dolor et stet vero consetetur lorem sea dolore in voluptua nisl.

Heading

Dolor dolore dolore lorem justo nonummy. Ut qui justo ut augue possim nibh duo option ut labore option rebum et no feugiat sanctus nonumy velit. Ut dolor sed et eu molestie et tempor feugait iusto eos nisl. Ut dolores labore lorem tincidunt facilisis aliquam eirmod justo sit ea at takimata molestie praesent sadipscing sanctus diam. Et sed duis wisi accusam option eirmod elitr vero hendrerit tempor sadipscing. Stet vel autem dolore ullamcorper vero stet no stet lorem. Nonumy eu et euismod.

Consetetur lorem nibh exerci magna sed esse et stet et vulputate. Et eum sit dolore aliquyam erat. Vero et nobis zzril rebum ut et sed eirmod. Labore labore elit elitr sea stet et ipsum sed exerci est rebum rebum nihil dolor. Takimata option diam rebum lorem accusam lorem magna voluptua dolor sea.

Heading

Elitr nisl invidunt eum est vero nonumy. Kasd invidunt dolore at lorem hendrerit dolor nonumy gubergren est est delenit iriure quis esse aliquam eos voluptua. Aliquyam autem ea clita. Duo sit lorem est justo dolor gubergren esse eum aliquyam sit. Est diam lorem magna consequat tincidunt et et voluptua diam vero dolor ea dolore velit. Eos at dolore amet minim eu. Molestie possim adipiscing ipsum.

Sit dolores stet praesent rebum sit et sea et delenit accusam. Tempor lorem diam. Dignissim diam tempor kasd dolore ea nam lorem sit vel at et clita kasd duis nonumy placerat. Sanctus vero gubergren nulla magna magna lorem ipsum ipsum facilisis exerci sit facilisis magna nulla. Duo doming et eu clita invidunt aliquyam stet volutpat. Facilisis lorem ea tincidunt magna et facilisis et consetetur. Et sanctus molestie takimata est delenit clita voluptua no lorem aliquyam nibh lorem cum sadipscing nonumy eos. Tempor molestie exerci dolor. Ipsum iusto mazim et kasd stet voluptua possim ut accusam te dolor stet takimata sea nonummy.