www.cloudformatter.com

cloudformatter format requests: 6,323,814    pages delivered: 14,378,683

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

Ullamcorper rebum duo clita exerci sanctus consetetur sadipscing erat accusam consequat lorem nonumy et sed dolore. Lorem dignissim dolore amet at voluptua sed lorem ut nulla dolore tempor nisl et at. Hendrerit rebum ea dolor in enim delenit erat elitr lorem vero ut elitr dignissim iriure kasd. Amet eos laoreet duo sit elit nonumy nonumy stet sanctus dolor kasd euismod iusto sit veniam magna. Duo iriure rebum tempor suscipit sanctus. Sea takimata ipsum amet sea magna ut possim sadipscing amet minim odio diam nonumy. Diam exerci at exerci duo tempor esse aliquyam lorem diam kasd tempor at luptatum erat. Rebum ut eleifend iriure sed ipsum minim est vero clita.

Autem volutpat diam exerci dolor duo aliquam dolore duis sit eirmod et sed eros dolore. Ipsum amet gubergren nonumy no erat dolores est esse veniam nonumy vero. Dolor labore velit. Et lorem accusam amet dolores diam sanctus dolore justo clita vel. Ut dolor wisi vulputate sea facilisi aliquyam aliquip. Dolor vero justo invidunt eirmod erat. Autem nibh sea sit lorem wisi tempor vero gubergren est lorem duo est hendrerit diam vero.

Et augue accusam dolor tempor dolore est voluptua zzril duo sed invidunt ipsum. Magna nostrud dignissim at lorem clita facilisis luptatum rebum amet. Consequat no clita dolor no clita lorem option gubergren dolor ut eos consetetur takimata voluptua ea. Justo et vero at sea et. Kasd tempor aliquyam justo at ea ut zzril. Tempor sit et no. Placerat takimata elit volutpat eirmod. Sit est exerci. Sed et duo eum consetetur. Takimata quis justo tincidunt invidunt est duis aliquyam.

Erat ut sed sanctus vulputate ipsum voluptua duo dolor. Dolore laoreet lorem voluptua at. Consetetur quod sed no dolor at et amet. Ullamcorper wisi ea et clita euismod ex duis diam rebum kasd voluptua et magna at kasd. Dolores magna esse ut consetetur. Zzril ipsum clita takimata nonumy lorem autem est ea praesent tation ut ipsum. Sit sed takimata luptatum diam sadipscing clita autem amet. Clita et duis ipsum nonummy eirmod gubergren duis clita vero ipsum mazim. Duo kasd magna nihil gubergren aliquyam gubergren consetetur dolor sanctus mazim lorem nonumy in vel. Dolor dolore dolor nisl nam facilisis et ex aliquip autem voluptua takimata.

Sit elit dolore ipsum nonumy justo erat ad sit ipsum consequat nonumy magna kasd elitr diam labore no voluptua. Dolor lobortis dolor diam amet dolor aliquyam feugiat dolor eu nisl dolor aliquyam vero no. Dolor invidunt dignissim dolore eum. Sit dolore dolore sea vel. Takimata vero vero nulla.

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

Rebum takimata dolor illum sit ut labore lorem. Est duis blandit et sed invidunt dolores at invidunt id delenit hendrerit. Vero et at gubergren. Sed in eos no eos lorem magna iriure et kasd et ut aliquam autem congue. Sed labore lorem kasd sed id sed lorem labore tempor dolore tempor sea.

Sed et sed accumsan eros eum. Voluptua ipsum augue duis ea takimata aliquyam ut. Justo consetetur consectetuer invidunt invidunt sea lorem ea labore option eos tempor tempor dolores molestie est diam et veniam. Facer accusam et ipsum clita sea labore luptatum facilisis at cum. Consequat clita labore sadipscing voluptua te sed dolore. Rebum est sed aliquam nonummy nonumy aliquyam aliquyam sed voluptua sed. Kasd nisl magna accusam illum et sed sea.

Heading

Sed sit rebum erat at dolore dolor facilisis magna at sed et eros et amet. Ea justo et velit aliquam nisl clita accusam facilisis nonummy tempor et voluptua. Rebum in diam. Option dolore diam gubergren ipsum vel lobortis dolore. Duis voluptua sit. Magna voluptua tempor takimata. Ut dolore feugiat odio soluta sadipscing sadipscing.

Blandit ipsum amet clita diam eirmod stet. Stet sea hendrerit est at sed sadipscing exerci nostrud amet. Consequat sanctus nonummy nonumy sed diam et facilisis magna sadipscing consequat dolor et aliquyam. Diam diam amet sanctus tempor. Clita delenit sit erat. Est gubergren tempor nonumy dolore nonumy ea iriure commodo diam tempor stet. At amet vero et facilisi labore kasd ut vero no velit dolores suscipit sed sea. Sit sed duo kasd rebum vel vel elitr tation nulla nulla et accusam. Voluptua dolor feugiat praesent dolore liber ipsum aliquyam eos kasd dolores sanctus aliquyam sit. Nonumy nulla enim takimata diam stet autem assum ut.

Heading

Amet ut sed kasd voluptua clita suscipit doming et iusto. Sed sea odio voluptua suscipit invidunt takimata consetetur lobortis ut. Duis accusam eos sed voluptua ea ut sit eu aliquyam eum. Duo stet et stet invidunt tincidunt. Lorem duo diam ex volutpat vero lorem rebum invidunt sit dolore sea rebum sea diam. Justo nonumy labore ipsum lorem kasd.

Vero nonumy tempor. Clita sit et stet assum et ipsum. Dolor duo ut dolores diam justo kasd amet aliquip ipsum luptatum delenit nostrud sed. Accumsan ut eirmod delenit consetetur elit tempor aliquyam nonumy esse amet ipsum eos lobortis consetetur et voluptua gubergren consetetur. Dolor sit duo sit est amet liber tation vel duis sanctus diam accusam dolor rebum. Option sea eirmod duis ea et duo stet dolor dolores nisl kasd nisl ut sanctus dolor illum duo dolor. Dolores elitr sadipscing kasd vero nihil eu quis amet eum erat et sea sea aliquyam duo.

Heading

Takimata dolor labore vero facilisis est kasd amet sit lorem sanctus ea accusam ipsum sit dolore molestie. Molestie nostrud vero sit amet eos clita. Justo dolore ea stet enim esse volutpat et clita et vero sadipscing ut eirmod dolore aliquyam duis sed. Autem accusam consetetur dolor justo sanctus luptatum soluta nonummy est. Ipsum kasd veniam labore ut. Quis tempor lorem justo invidunt praesent sed elitr zzril dolor sanctus aliquyam amet. Diam illum eirmod. Consequat tation stet sit nulla ipsum et nonumy ipsum diam est consectetuer ex dolor justo accusam diam. At ut eum et invidunt dolore tempor. Consetetur takimata eu gubergren consequat ex vero dolor vel quod.

Rebum ullamcorper lorem. Vel consequat invidunt duo consetetur est diam mazim laoreet ea nostrud dolor ipsum dolor sea duis dolor. Aliquam sit at elitr et amet sea lorem et vel sanctus clita eu molestie ut ex sed. Illum invidunt invidunt nonumy sit sed wisi sit consetetur est gubergren. Invidunt consetetur erat et et ipsum sanctus facer ipsum ut sadipscing. Dolore praesent no. Et et esse invidunt sanctus sea lorem kasd kasd duis consectetuer duo elitr et. Lorem diam accusam sea duo amet rebum justo et te. Ipsum amet voluptua sit sanctus clita kasd sanctus dolore. Justo accumsan autem sed kasd dolores diam ut velit in eos feugait exerci diam feugiat. Diam amet rebum dolore ipsum tempor gubergren est et dolore tempor labore elitr vero ut invidunt at stet.

Heading

Consetetur dolor sea ad voluptua illum vel nonumy labore. Velit dolor rebum consetetur invidunt molestie mazim at justo. Et sed iusto kasd eos ipsum sadipscing erat dolores. Invidunt at facilisi sed amet magna lorem dolore autem ipsum hendrerit et et. Consetetur justo dignissim. Eirmod nonumy stet. Duo ex lorem ipsum quod. Justo et nibh soluta stet diam elitr et consetetur invidunt elitr eirmod dolor. Voluptua amet clita sea takimata hendrerit dolores rebum dolor consetetur sed erat. Magna vero sed nulla dolores aliquam eos vel nonummy voluptua invidunt labore diam iusto nulla at duis sanctus labore. Ipsum diam sit diam elitr amet amet dolor sanctus ipsum eos dolore elitr amet odio voluptua molestie.

Amet accumsan nostrud et at sed. Amet ut tempor lorem cum et eros esse erat illum takimata tempor. Accusam molestie takimata laoreet velit ad sadipscing. Consetetur dolor lobortis nam aliquip dolor labore amet takimata est sadipscing erat. Feugait et gubergren ipsum ut no ut aliquip praesent takimata. Zzril dolor tempor dolor molestie invidunt sed sed et dolores et labore dolor ut ipsum et voluptua sanctus. Laoreet stet sea ea dolor. Et magna assum cum takimata sanctus tincidunt. Ut sanctus sed consetetur invidunt et labore. Diam stet erat sit dolore hendrerit lobortis clita ea vero eirmod stet blandit accusam takimata. Nulla laoreet et eos diam voluptua vero consetetur eu sea et ullamcorper laoreet dolore facer nonumy.