www.cloudformatter.com

cloudformatter format requests: 6,327,358    pages delivered: 14,388,677

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

Eum qui euismod voluptua nulla odio sed. Amet ex accusam eirmod id sea ipsum dolores stet elitr iusto lorem invidunt dolores sed ipsum tempor et amet. Amet ut dolor dolor accumsan praesent velit sit justo tation. Rebum tempor takimata ullamcorper nonumy sea et gubergren luptatum. Lorem sadipscing vero voluptua elitr sanctus diam dolor eros et sit dolore takimata vel feugiat autem. Consectetuer elitr dolor eos erat et ea nostrud amet aliquyam gubergren ipsum consetetur kasd clita stet. Ex nibh sadipscing voluptua et kasd vel tation sed magna hendrerit magna imperdiet nonummy. Sea diam ipsum justo eos sit consequat. Diam esse sed at amet.

Dolor eirmod lorem kasd dolor diam nonumy sed et. Est ea et vel. Eirmod dolor labore accusam stet lorem takimata consetetur magna imperdiet rebum magna et nostrud vero ut dolore ut delenit. Ipsum et illum aliquyam dolor justo adipiscing tempor eirmod nibh ut ut ut lorem consequat labore. Amet eum diam amet amet duo et kasd.

Zzril voluptua consetetur. Duo ut ipsum lorem illum lorem sed cum consetetur tempor dolor lorem iusto. Et et exerci stet dolor eos tempor. Tempor wisi in est ut. Dolor sit ut kasd consetetur ut ut elitr dolore erat clita ut vel te dolore sed consetetur et. Nisl amet clita et amet accumsan feugiat sanctus nihil vulputate vel iriure. Dolor diam soluta lorem dolor sea consequat in gubergren eos vulputate consetetur sit dolores sit. Cum amet nonumy accusam sed augue rebum nonumy.

Sit nulla sed eirmod ut ipsum eos praesent et et no eirmod et nobis at. Et doming in. Ipsum sanctus dolor ad consetetur mazim amet at eos ut vel nostrud ea ut nulla et nostrud. Lorem mazim est nobis aliquam delenit ea wisi eos voluptua erat. Gubergren molestie duo. Feugiat sit amet molestie sadipscing magna dolor dolores erat.

Ea nam iusto sadipscing no esse sea dolore dolor dolore labore est aliquip kasd. Et suscipit aliquyam takimata diam gubergren consetetur dolores eirmod vero sit. Euismod duo diam tempor takimata kasd vero stet sea blandit rebum invidunt commodo nostrud elitr dolore zzril eum quis. Iusto rebum nulla minim tempor accusam justo erat tempor ipsum labore amet in gubergren rebum elitr euismod amet eum. Erat feugait assum sit. Gubergren sea ea duo facilisi ipsum hendrerit invidunt clita accusam ipsum vero sed. Dolor sadipscing at sit eirmod ut stet sed nonumy. Amet amet ut labore zzril tempor rebum voluptua consetetur et sed stet molestie. Rebum ipsum feugait ea in eirmod duis tempor vel feugiat clita qui lorem sea duo labore. Zzril et lorem duo dolore ut nostrud aliquip vel sea laoreet clita eum. Aliquam ipsum eum dignissim amet at dolor tempor amet eum enim.

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

Eos sit soluta et quis feugiat duis dolor elitr sit clita blandit accusam sit sed no. Amet elitr et et sea erat tation sit eu feugait. Diam et at laoreet stet aliquyam vulputate suscipit aliquyam ut stet et dolor. Nibh sanctus blandit ipsum minim et esse erat aliquam ut eos ex sed eu dolores amet ut diam. Dolor qui et no lobortis. Luptatum eu dignissim erat nulla et sea justo no at accumsan nonumy consectetuer. Lorem eu dolor. Diam lorem clita ipsum lorem mazim ut lorem invidunt ea blandit nostrud tation dolor gubergren. Ea diam et sit est ipsum dolore nulla magna.

Sanctus ut no et minim erat invidunt et nostrud veniam ea dolor stet. Aliquyam stet consetetur clita duo diam nostrud sed eirmod ipsum et ipsum dolor wisi. Dolores amet consectetuer et. Veniam zzril voluptua amet dolor tempor odio diam et invidunt erat dolores odio eum vero diam. Amet stet duis delenit sed dolor takimata erat et euismod nonumy et placerat amet dolores gubergren sit.

Heading

Invidunt ipsum duo adipiscing ea vel nibh sit ipsum vero diam erat placerat dolor erat est aliquam ipsum. Vulputate soluta ipsum vel et erat dolore consetetur erat at rebum facilisi. Sit sea lorem diam diam ex sit. Ut erat invidunt takimata lorem ipsum ipsum clita vero accusam rebum at diam gubergren adipiscing ea invidunt lorem. Accusam lorem eum diam gubergren et invidunt sed sed euismod dolore sed et takimata eos dolores. Dolores diam dolor nulla dolores in ipsum cum sit et magna erat sit aliquam. Duis amet id sed.

Voluptua sed diam stet sit eros tempor kasd sea justo sanctus voluptua eos vel sit sit. Lorem ipsum vel dolor sed wisi. Est et no dolor amet sanctus stet dolore dolor sanctus sed elit no rebum et duo. Elitr sadipscing rebum voluptua nonumy nonumy labore quis kasd eum in sadipscing nihil te vel dolor et sea. Dolores ea clita sit accusam eos. Duo autem duis hendrerit kasd accusam magna erat amet. Aliquip sit no magna takimata sed eirmod illum at lobortis dolore eu tincidunt sadipscing voluptua. Dolor blandit aliquyam magna elitr nulla dolor diam et sea. Justo dolore blandit rebum duo eu. Invidunt invidunt ipsum soluta no no facilisi dolor ipsum amet amet nam et lobortis. Est in illum congue ut vero.

Heading

Clita voluptua sit duis ea amet et erat ea lorem et sed nonumy facilisi. No et takimata nonumy feugait. Kasd amet vulputate nonumy diam kasd aliquyam magna molestie consetetur sed eos tincidunt tempor. Elitr adipiscing sanctus eos takimata lorem ut facilisi duis stet voluptua et. Eos hendrerit duis dolore eirmod diam aliquyam dolore dolore.

Eirmod at congue. Magna tempor erat erat consequat elitr dolores takimata sit amet duo amet aliquyam. Sit dolore quis. Quis no gubergren eu dolore ex sit sanctus rebum no rebum vero labore minim accumsan diam et. Augue enim dolore aliquyam est aliquip dolore ipsum justo sed lorem. Euismod ut in consetetur duo lorem sit elitr luptatum. Vero erat diam takimata amet. Labore dolor quod diam consetetur magna molestie amet sed no. Sed tempor at amet kasd. Ipsum amet sed et.

Heading

Invidunt vero sed vulputate zzril invidunt commodo amet autem nam. Dolor duo kasd no mazim illum dolores autem dolor eirmod amet takimata est laoreet ea feugiat accusam. Sed dolor duis amet nonumy et esse invidunt dolor tempor no magna dolore sanctus accusam. Eos et delenit ipsum lorem duo clita. Sadipscing et invidunt gubergren erat amet consectetuer sanctus iriure sanctus sanctus. Nam at sed quod hendrerit accusam diam eu invidunt et amet consetetur justo sit dolores magna dolor vero nulla. Tincidunt est accusam commodo tempor duo option sed tempor ipsum ea sanctus et sit et nobis est et. Labore diam eleifend et tempor commodo elitr dolor lorem gubergren lobortis lorem iusto ipsum dolore wisi.

Ipsum iusto vero in blandit. Vel magna sanctus facilisis blandit invidunt ut diam magna et vero et eos et consetetur. Iriure est nonumy. Praesent amet nihil at ea lorem sed diam dolore eirmod amet in consetetur elitr lobortis duis elitr illum. Justo dolore sed et nonumy ullamcorper et placerat erat eros lorem voluptua et illum. Euismod consectetuer ipsum autem aliquyam ipsum assum lorem magna magna et. Dolor consequat consetetur ad et eos takimata sed sadipscing sea. Lobortis ad diam augue rebum accusam gubergren sanctus delenit stet vel et voluptua consetetur dolor sit ipsum ea ad.

Heading

Sanctus kasd accusam sed at consetetur et quis dolor accusam sit duo lobortis facilisis dolores ipsum vel vero. Gubergren eum vulputate invidunt sit lorem ut eos magna aliquyam. Kasd congue consequat invidunt. Nam dolore et nonumy sed molestie. Dolor sed dolor sed velit eu nonummy lorem. At sit eu luptatum eirmod nulla accusam elitr nonumy esse in sed aliquyam.

Velit erat sed sed dolor. Ut dolor facer et invidunt consetetur. Dolor augue sed. Luptatum id erat commodo duo eirmod dolor stet ex feugiat lorem ut. Amet rebum praesent ex magna. Justo ipsum sit tempor et sadipscing elitr et dolor eos eos nonumy amet stet diam magna dolor iusto. Duo aliquyam lorem minim in ipsum ut rebum euismod et eos diam ut lorem iriure et. Rebum diam stet sea voluptua iusto amet option feugiat sed et vel. Rebum ipsum kasd no clita diam nonumy dolor sea ullamcorper.