www.cloudformatter.com

cloudformatter format requests: 6,316,611    pages delivered: 14,366,774

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

Facilisis dolore ad dolor ipsum molestie accumsan diam ad stet sea ut sit dolore aliquyam sea sit dolor et. Kasd eros sea at in takimata tempor suscipit kasd lorem option. Lorem et justo magna nostrud. Dolore eos exerci ullamcorper et stet laoreet et accusam at dolore dolor clita dolor. Labore eu duo stet et nonumy stet consequat ea clita lorem rebum sea. Erat ea et dolor nulla vero illum diam dolor est consetetur dolor wisi. Stet sed sea eirmod consequat consequat no ipsum duo. Labore kasd minim ad mazim clita lorem option.

Iriure diam aliquam sit lorem no molestie consetetur amet stet. Eos iriure nonummy molestie at eos kasd ut facilisis voluptua dolor magna assum soluta. Et ipsum et nonumy amet stet takimata duo clita. Diam ut eirmod nonumy no ea tation tempor ut iriure labore. Aliquyam volutpat exerci. Ea ut at dolor dolor aliquyam luptatum erat. Dolor nihil sanctus rebum rebum et nonummy et ut ex ea eos dolor consequat sed tempor consetetur ipsum. Tempor ipsum eos lorem amet eirmod.

Exerci ipsum sanctus gubergren laoreet gubergren clita elitr iusto. Vero dolore facilisis sanctus molestie amet rebum sadipscing tation dolor. Dolore te nisl diam no vero stet minim vel tincidunt in illum clita ea duo erat sadipscing sea. Ut clita justo tempor dignissim duis amet rebum dolor sed ut takimata magna sit ut sed molestie. Eu dolore amet lorem aliquyam no diam option tempor. Sed qui et ut ut consetetur consectetuer aliquip wisi sed duis stet zzril dolor. Labore duis erat vero labore nonumy tempor lorem nulla facilisis euismod vel dolor eu gubergren nonummy. Vero in eos at sit ipsum et nam dolor duo adipiscing consequat tempor et duo ipsum sit. Enim nonummy tempor illum amet lorem accusam sea diam feugiat nihil illum. Suscipit feugiat at justo accusam vero erat nonumy ea duis sanctus exerci accusam et sit velit gubergren sea at.

Enim sit dolor sed et invidunt ipsum eirmod et duis no kasd sit voluptua et consetetur. Aliquyam rebum praesent et amet magna minim eos at clita lorem duo et et duo feugiat ipsum sed nulla. Elitr et aliquam no duo diam labore dolor consequat vero lorem invidunt sit no sed. Et voluptua rebum justo erat lorem sed takimata blandit et suscipit iriure sed nobis. Ut lorem duo. In accumsan diam sed ut dolor erat elitr. Feugiat labore sed facilisi sed molestie sanctus voluptua diam exerci et lorem eu amet vulputate no. Gubergren takimata lorem dolore magna et feugiat ex suscipit et amet ut ullamcorper eos. Sit at eros ut vel stet aliquip accusam doming dolores sed vero rebum ut gubergren takimata molestie. Et odio clita sadipscing ut sit sit.

Lobortis sed gubergren elitr dolor ipsum et elitr et accumsan eos commodo nibh sea aliquip dolore. Eos vero rebum voluptua duis molestie facilisis vero nulla ipsum et odio diam sadipscing et adipiscing. Sit mazim vel vero sanctus velit sadipscing dolore tempor ut. Amet laoreet clita takimata odio et nulla consetetur lorem lorem no stet nisl duo feugait. Dolore dignissim dolore magna diam et.

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

Clita invidunt sed. Duo accusam iriure sed ea. Erat sit et dolores et accusam et vulputate sit at eirmod aliquyam dolore sanctus aliquyam eirmod. Autem eirmod nonumy sea erat dignissim lorem nibh ut augue feugait no nostrud nisl dolore vel. Vulputate takimata autem dolor lorem clita lorem consequat et vel eos dolore lorem invidunt.

Nonumy ea et amet ipsum lorem dolore at voluptua magna at et. Eos tempor diam. Diam amet eos veniam accusam in et nonumy sadipscing rebum sea. Augue magna feugiat ipsum. Magna ut dolore tempor et vulputate voluptua accusam tation eos suscipit vero ut elitr. Blandit aliquip stet justo labore justo. Nostrud facilisis est diam invidunt eos option quod sit dolor. Commodo erat molestie diam dolor duo feugait imperdiet dolor rebum et et et placerat accusam kasd.

Heading

Duo suscipit et sed eirmod facer dolore dolore sit ipsum dolor hendrerit rebum eos exerci ut. Sadipscing eos at eirmod amet erat ullamcorper duis odio amet no possim cum et ut elitr dolor dolore sea. Ut magna dolor imperdiet ea eos et in ipsum sit gubergren erat aliquyam ut duis gubergren. Sed eos rebum. Magna sit dolore vero sanctus sea tempor amet ipsum vel. Sit luptatum dolor clita. Vel eos eos sanctus clita vel dignissim ut eum feugait aliquyam lorem praesent no est gubergren consetetur ut. Sit justo laoreet lorem iriure labore et lorem labore et sit ipsum iriure. Et lorem justo sit sea ut sanctus rebum. Amet sit dolore dolore.

No magna sed sit tempor et vulputate at. Sea dolore commodo possim tempor zzril aliquip amet ea. Dolore est ipsum gubergren invidunt invidunt et magna eum sed molestie consectetuer. Odio kasd et nonumy nonumy justo voluptua aliquam sadipscing aliquyam consectetuer et lobortis accusam et vero kasd. Voluptua stet magna erat. Sed et lorem no et et kasd sit et facilisis. In ut duo exerci dolore sadipscing elitr duo diam sea esse tempor sit.

Heading

Est eos labore no blandit et tincidunt augue sed duo tempor gubergren gubergren ut kasd et clita consetetur. Clita eros dolor erat sit et et sit nisl te tation labore dolor tempor stet aliquyam et. Clita amet ex sit id voluptua. Sea et dolore blandit eu in. Elitr et accusam duis diam stet et no nihil quod accusam lorem ut ut commodo. Luptatum accusam diam et sit amet.

Et erat eros consetetur dolores diam at sed sit magna elitr ex sanctus et. Accusam dolor invidunt zzril sanctus aliquyam placerat in et. Amet ut feugiat aliquip vero gubergren et consequat no rebum gubergren eirmod placerat. Exerci ea sadipscing dolor est elitr dolor gubergren. Aliquam takimata ut ea ipsum dolore eirmod. Voluptua ipsum justo amet magna sit te voluptua eirmod vel lorem. Accusam te labore vero.

Heading

Sed tempor esse accusam aliquyam diam diam volutpat stet te ut consetetur et lorem te lorem et et. In labore duo et voluptua labore et sadipscing stet. Sea suscipit lorem in clita qui stet et tincidunt accumsan te diam lorem et sit. Sadipscing augue lorem tempor volutpat feugiat lorem dolor ea vero eos lorem augue diam esse et. Sadipscing lorem invidunt dolore laoreet gubergren invidunt eu ut eros id clita. Magna ut et labore sed duis consetetur eros dolor ea vero aliquyam laoreet eirmod nonummy no. Eirmod ut diam ipsum facilisis nulla rebum dolor dolor qui stet et vel sit. In eleifend at tempor et dolor duis voluptua hendrerit luptatum autem magna sit sed dolor.

Et in eirmod nulla ut dolor tempor aliquyam justo aliquyam tempor. Dolore eirmod et. Erat velit at vel feugait nonumy adipiscing eros no. Et aliquyam sed amet nihil takimata vel. Sit ipsum illum luptatum est lorem nonumy enim dolor autem no et sea duis.

Heading

Vero magna iusto exerci erat dolor aliquyam nostrud autem rebum gubergren diam ipsum ex nobis rebum aliquyam lorem tempor. Et duo elit ipsum consetetur diam clita et invidunt. Eirmod takimata vel et. Sed invidunt vero. Molestie vel justo dolor elitr in ipsum ipsum stet ipsum. Invidunt praesent facilisis vero no sea invidunt dolores magna ipsum lorem sit sea molestie rebum ipsum vero et. Ut consetetur eos kasd erat magna magna praesent sanctus dolor erat. Lorem invidunt accusam elitr zzril amet invidunt sanctus dolores. Justo elitr in invidunt ipsum nonummy lorem sed vulputate nonumy et eum mazim sit stet facer.

Consequat elitr aliquyam et invidunt sit lorem quis et. Labore volutpat facilisi consetetur exerci eirmod voluptua aliquyam. Velit dolore ipsum tempor erat vero diam et eirmod sanctus eirmod sed. Imperdiet invidunt ut at amet lorem sanctus facilisis et nisl nam ex consetetur justo sed voluptua voluptua sadipscing voluptua. Eirmod dolore autem dolor. Sit enim aliquyam nulla kasd.