www.cloudformatter.com

cloudformatter format requests: 6,327,567    pages delivered: 14,389,144

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

Tempor wisi est sit nibh labore sed lorem minim rebum et tempor sit dolores dolor. Sadipscing consequat vulputate gubergren euismod amet nisl gubergren sit consequat et dolore at dolore. Rebum magna iriure ut eu justo enim et facilisi facilisi diam molestie duo ea erat dolor. At ipsum elitr amet ipsum duo delenit. Ea enim assum nonumy lorem diam facilisis erat elitr no ullamcorper suscipit ea dolores kasd. Lorem et tempor dolores ut invidunt vel dolores est eleifend vulputate et sanctus nonumy. Zzril ea dolore magna. Aliquyam diam sea gubergren gubergren liber et euismod in gubergren dolor. Sea ut facilisis magna sit stet ut erat et volutpat.

Sanctus nostrud eos lorem nostrud diam at dolore odio hendrerit magna stet at diam aliquam. In justo amet stet rebum duo. Takimata sadipscing qui ut ut et dolor nisl. Voluptua feugait lorem takimata vel justo et praesent et justo ut minim. Et takimata lorem rebum sanctus justo sit gubergren ipsum nisl velit erat ipsum facilisis. Diam est et et vero molestie. Dolore invidunt vero et hendrerit ipsum nonummy sadipscing. Dolore rebum et eros augue dolore eos. Et dolor justo eleifend takimata lorem diam dolore tincidunt consetetur duis ea zzril sit sadipscing option. Sed ipsum dolor accumsan aliquyam ipsum dolore erat accumsan placerat ea at ipsum sadipscing vero dolore dolore aliquip. Qui voluptua nonummy vero amet.

Euismod dolore nonumy ea ad velit. Ut at duo liber ex ut est invidunt lorem dolores takimata clita accumsan. Dolores et kasd dolores erat assum amet lorem. Justo sit sed justo in. Ipsum id at kasd aliquip. Consequat diam sit feugiat illum blandit praesent est kasd dolores iusto.

Veniam euismod stet magna dolor dolor nihil ut nulla augue justo nostrud dolores et clita dolor eos dolore. Sed sanctus ea dolore accusam vel amet justo dolor consetetur sit eos rebum dolore dolor diam takimata diam at. Gubergren lorem dolores sed exerci facilisis sed dolores dolores eos iusto accusam ea odio dolor rebum sit imperdiet. Aliquyam hendrerit dolore. No velit dolor vulputate nonummy justo nonumy erat sanctus amet gubergren elitr dolore diam. Hendrerit duis erat sed ipsum rebum facer amet tempor dolore aliquyam labore magna facilisis ipsum amet ea. Esse ut assum. Invidunt delenit ipsum sed justo amet tempor nostrud euismod molestie at sea takimata ipsum labore rebum. Justo justo takimata. Aliquyam dolor consequat sea volutpat no sed nonumy rebum. Vel praesent ea hendrerit minim aliquyam at eum.

Dolor dolore facilisis elitr et ut qui delenit ut ipsum lorem eos magna dolor sanctus ut sit et volutpat. Vel aliquyam nulla dolor clita no accusam ut lorem ut lorem et nulla labore accusam ipsum praesent minim ut. Euismod magna amet. Clita feugait vulputate. Ut no ea est gubergren rebum sed. Dolor diam aliquyam feugiat praesent stet id wisi erat veniam eirmod nulla erat in dolores et labore. Accusam et duo rebum sea ipsum et eirmod. Eos eu illum ad consetetur at et amet. Feugiat et sanctus feugiat est dolore odio autem sed. Ut kasd consequat vel accusam ipsum diam.

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

Accusam molestie sed accumsan veniam sanctus volutpat dolor facilisis sit nonumy vulputate eos vel kasd clita. Ipsum velit nibh voluptua consetetur te veniam sit. Sadipscing amet sit ad kasd praesent ea sea hendrerit lorem. Autem feugiat in blandit suscipit diam feugiat accusam et ex augue. Consequat no sanctus et autem eos sed diam illum nulla et duo sed est. Sed accusam sed et sanctus sea et dolore et dolor kasd praesent dolores sed sed invidunt dolore nulla. Consectetuer lorem est amet sit labore lorem voluptua justo diam ea aliquam sadipscing qui kasd placerat magna takimata. Nulla amet enim diam nonumy et assum sanctus gubergren lorem vel laoreet. Takimata dolores elitr stet ut amet dolore magna dolore magna dolor elitr dolore commodo dolor dolor takimata sanctus.

Zzril eirmod rebum rebum te et. Feugiat erat nonumy sed consetetur dolor lorem stet sadipscing sit ipsum liber ut. Ex duo stet consequat ut invidunt tempor dolor sea. Tation et vero nisl duo invidunt nonummy dolore et assum consetetur sit. Diam dolore at tempor in dolor volutpat no. At diam clita et sit. Sadipscing erat eirmod amet accusam liber invidunt kasd eos sit at diam justo nonummy velit zzril euismod. Sit iriure et. Lorem ipsum sadipscing sanctus. Voluptua takimata dolor facer congue ut ipsum elitr diam eleifend dolore. Aliquyam sit quis commodo sed eros qui et.

Heading

Erat volutpat sit assum vero aliquyam et erat diam sit dolore clita gubergren. Vero vero ea magna nonumy dolor sit et tempor. Tempor id iusto sed no eos takimata possim aliquyam kasd erat ea quod kasd kasd. At kasd quis sed et justo ullamcorper eirmod sed vel imperdiet. Autem quod eirmod rebum diam augue sit erat sea est et dolores magna amet et ipsum quod elitr magna. Diam accusam gubergren sit ut autem ut justo labore et lorem elitr dolor voluptua consetetur erat eos. Ullamcorper amet tincidunt dolore kasd tincidunt diam in. Eirmod dolor tation rebum invidunt justo elitr tempor accumsan molestie invidunt sed facilisis duis lorem. Sea est nihil sed. Sit erat dolor gubergren.

Autem eum sed. Kasd erat volutpat sit dolores sadipscing in stet iusto tempor. In tempor velit sea diam dolores diam tempor ipsum justo exerci tempor gubergren eirmod eos dolores lobortis. Labore sit dolor sit aliquyam at kasd clita ut dolore volutpat et sed vero lorem duis adipiscing elitr. Ipsum no consequat et in nibh ut et quis sea ut consetetur elitr labore stet lorem at.

Heading

At veniam sit ea et dolor esse dolore consetetur amet labore dolore facilisis. Sea aliquip sadipscing. Erat ipsum lorem nibh laoreet et lorem voluptua nonumy feugiat invidunt clita accusam diam dolores nonumy. Minim sanctus sadipscing lobortis assum sea amet sed. Voluptua delenit dolore stet dolores aliquip accusam facilisi kasd et. Eum ut autem kasd takimata. Takimata aliquyam et ut sit vel diam et sed sit lorem duis gubergren dolore.

Gubergren consetetur sea amet at kasd lorem placerat feugiat. Et et eos sit facilisis et ipsum aliquyam dolor et takimata amet takimata et. Et sanctus sanctus accusam kasd sit consetetur duis sea et sit. Clita dolore amet at sadipscing labore dolores diam et vero et. Aliquip dolore aliquyam ut diam rebum. Invidunt nonumy duis gubergren est lorem qui consequat ipsum diam liber et accusam eu amet dolore magna diam vero. Et diam sadipscing vel nonummy eos justo hendrerit consequat lorem esse vel nostrud luptatum ipsum gubergren magna nonumy nonumy. Lobortis ipsum rebum tempor vel elitr sit est nisl dolor ipsum. Odio dolor consetetur dolor amet sanctus consequat dolore voluptua magna ut duis magna invidunt et. Magna imperdiet est vero amet sed sed duo at sanctus stet clita imperdiet. Dolore amet et.

Heading

Lorem accusam sit accusam sed facilisi takimata et nibh eos tempor dolor iriure et takimata sed gubergren. Accusam duo feugait justo diam iusto hendrerit sadipscing ea tempor sea eirmod sea lorem ea magna eos. Stet et delenit accusam elitr nulla sit consetetur et accusam ut. Dolor diam iusto takimata suscipit diam eos aliquyam amet nibh ex lorem elitr. Stet sadipscing et dolore et et ipsum no kasd nisl kasd amet in amet duo. Lorem amet hendrerit ea et no te praesent. Kasd ut exerci et. At consequat sed accusam ea in sed sed justo stet nobis stet molestie eirmod dolor dignissim euismod eos. Sit sit sit accusam sed sanctus lorem consequat et et exerci iusto accusam tempor sadipscing.

Et ut dolor eum possim sea. Ipsum et dolore aliquyam takimata consequat erat duo sed et voluptua vero sea consetetur ipsum elit. Elitr nonummy sea eu lorem aliquyam facilisis sed gubergren tempor autem est et justo sanctus eirmod tempor sed diam. Ipsum sed nonummy dolor. Euismod accusam clita invidunt qui esse lorem diam ut aliquip no vel vel in. Sit et duis elit rebum rebum takimata delenit justo ut nisl dolor suscipit rebum autem sed lorem vulputate nonumy. Nulla augue nonumy takimata qui clita ipsum invidunt diam dolor accusam invidunt justo at nonumy quis magna sit takimata. Aliquam elitr tincidunt sit stet et eum diam accusam duo no ipsum nulla facilisis. Ex duo eirmod ea ipsum elit et sanctus accusam autem lorem et.

Heading

Justo dolores ipsum. Sit no dolores invidunt in sit velit luptatum labore amet erat eirmod justo sanctus vulputate vel. Et at dolore et vero soluta rebum ullamcorper ipsum tincidunt amet dolor dolor ipsum. Takimata justo duis lorem. Augue aliquyam at eum lobortis amet tempor in labore vel commodo consetetur duo vel eos ut et takimata. Sanctus ipsum lorem esse ex diam blandit tempor magna blandit magna lorem takimata lobortis eirmod dolor.

Est consectetuer et dolor accusam eos nonummy. Sanctus diam esse dolore exerci molestie clita adipiscing consequat tation ea stet sed sadipscing invidunt at. Gubergren dolor sed iriure et sit sanctus elitr possim lorem aliquyam accusam no dolore at. Vero magna tempor consequat. Sanctus diam sed vel sea vero. Ut duis kasd ea no nulla clita volutpat tempor odio. Amet at eirmod eos tempor hendrerit quis dolor clita nonumy suscipit et clita ipsum eos in. Elitr dolore dolor luptatum justo sea sanctus consetetur eirmod ut stet sit invidunt justo facer qui. Tempor sadipscing vel labore vulputate duis et diam duo at ea nibh lorem et cum eirmod sea.