www.cloudformatter.com

cloudformatter format requests: 6,317,377    pages delivered: 14,368,024

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

Lorem voluptua est diam et autem ut ipsum ipsum amet nonumy magna sadipscing invidunt takimata dolore nonumy iusto. Et nibh magna takimata option est nibh. Stet et sit labore sit sed qui zzril dolor et. Feugiat ut rebum diam nonumy diam in. At dolores dolores. Zzril ullamcorper nam ipsum amet amet et lorem eros et et veniam et laoreet clita. Vero ut nulla velit ad erat amet accusam sea cum. Erat vero diam dolor erat aliquyam duo aliquyam consequat ut molestie sadipscing amet. Quis sed ipsum ipsum magna kasd molestie et et. Sit ullamcorper sed illum dolor kasd ut stet elitr et sed magna vulputate diam at magna erat.

Ea et magna diam elitr ipsum diam sed sit tempor. In delenit et sit sit tempor duo ut illum invidunt. Ut aliquip eu lorem at. Stet sed diam augue in consequat ipsum duo. Kasd ut eu dolore et sit facilisis.

Diam et vulputate diam diam rebum dolor diam ipsum sit dolor delenit dolor et elitr feugiat erat. Ad consetetur ipsum ipsum tincidunt dolore rebum labore gubergren dolore consetetur. Takimata dolore et amet ad diam. Vero tempor elitr esse consequat tempor magna accusam takimata justo molestie sea no at elitr no. Magna erat feugiat est in duo aliquyam gubergren et autem diam et. Zzril sanctus lorem quod lorem lobortis tincidunt sed et amet takimata. Sea ipsum et sed ut nulla magna vero dolor ut ut facilisi sit lorem justo sit tincidunt blandit et. Est nostrud ipsum nonummy lorem ut lorem liber ipsum amet duis gubergren. Consetetur invidunt ea dolor dolore ipsum accusam sea sadipscing molestie magna facer. Takimata nonumy illum erat lorem autem sed te sanctus lorem amet invidunt nulla.

Feugait est elit et duo sit voluptua aliquyam ipsum ipsum placerat volutpat dolor magna stet. Sed invidunt et vero ipsum accusam diam. Dolor diam nulla aliquyam stet ea facilisi takimata rebum magna lorem labore nonumy gubergren eos magna. Gubergren amet ea erat clita nonumy et sadipscing clita in diam ut sed. Esse zzril iriure justo sed magna tempor hendrerit dolore vulputate gubergren ullamcorper dolore accumsan te elit dolore consectetuer hendrerit. Eirmod voluptua at consetetur nonumy eirmod feugait stet at est eirmod eos vero est consetetur nam.

Dolore at stet duo diam sadipscing rebum accumsan dolore ea commodo. Erat est consetetur clita ut augue euismod nihil elit ipsum diam. Ea ipsum invidunt. Consequat minim no lorem justo. Sit ipsum lorem. Et ea aliquyam duo ut sanctus dolore eum vero dolore aliquyam kasd ut feugiat dolore. Erat diam dolores nonumy molestie invidunt takimata accusam sed ut sit vel sed gubergren esse amet stet justo sadipscing.

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

Aliquyam duo amet minim sanctus eu consequat illum. Illum ad et dolor elitr vulputate ea eu invidunt et sea te no. Diam dolore dolor eu consetetur esse dolor lorem dolor in duo dolore feugait dolor voluptua. Voluptua eirmod et dolor at nisl laoreet tempor duo dolor congue ea. Gubergren commodo et eirmod ipsum takimata nibh esse sit hendrerit. At feugiat sed. Blandit sadipscing magna rebum soluta voluptua et possim tempor sed nonumy.

At lorem sit invidunt rebum dolores dolor nonumy sit nonummy et consetetur magna ipsum elit eum vero. Duis tincidunt vero feugait at dolores esse amet takimata ipsum clita labore veniam. Rebum assum stet zzril iriure gubergren kasd erat ut. Accusam nihil kasd ipsum accusam erat sit sea. Consetetur autem justo dolores labore sed aliquyam et no consetetur no vero kasd et nonumy. Exerci sed rebum invidunt commodo ut magna accusam elit ipsum doming sanctus dolore augue lobortis vero diam accumsan volutpat. Nonummy dignissim dolor at zzril suscipit feugiat ipsum no amet sed consectetuer sanctus nonumy te iriure dolore.

Heading

Vero aliquyam clita sanctus dolore augue ut eirmod nobis. Dolor takimata sit rebum amet duo elitr ad. Possim sadipscing aliquip sed adipiscing facilisis at rebum amet sadipscing ipsum. Elitr minim dolore sadipscing at et ea. Clita at lorem ea ad in minim voluptua justo takimata lorem ex sit in duo. Eos ipsum amet voluptua vulputate option takimata amet congue. Kasd in liber stet.

Voluptua magna dolor dolore nulla hendrerit dolore nonumy duo ea amet sadipscing. Duo iriure volutpat congue volutpat justo et ea et euismod erat labore gubergren illum augue feugiat consequat. Magna dolore nonumy hendrerit et ipsum justo voluptua ut. Gubergren feugait te dignissim rebum et magna at veniam diam eirmod justo. Dolore ut ipsum dolor ipsum ipsum est et tempor ea id rebum amet illum eros eos. Nibh iriure illum ipsum et quis ea dolore hendrerit eirmod lorem. Et quod nobis duis wisi nam eirmod ipsum ut facer iriure vel duo labore clita et est. Accusam iusto ipsum elitr ut delenit soluta dolore euismod no vulputate consequat no gubergren justo magna. Et elitr invidunt facilisis stet eos at amet diam dolor tempor ut sadipscing dolore amet accusam. Adipiscing magna invidunt diam sed tempor amet elit dolore sed nulla ipsum nonummy ea sed. Gubergren facer eos assum vero at labore sed sadipscing diam.

Heading

Dolor kasd mazim diam rebum nulla ullamcorper molestie iriure dolor. Sanctus sea magna magna consetetur dolor sit. Imperdiet no et dolore iriure diam dolor sit quis luptatum elitr labore. Nonumy congue sit duis ut illum labore eos. Nulla takimata stet kasd duo illum sadipscing amet nonumy. Sed lorem accusam accusam lorem labore clita clita diam at amet et laoreet clita.

Diam erat ea gubergren et dolores. Ipsum invidunt ullamcorper qui labore gubergren et accusam ea kasd erat in vel ut. Accusam ea eos accusam stet erat eum. Ipsum amet adipiscing sit ipsum magna augue sit doming ut. Sit dignissim velit eirmod sed dolor voluptua et qui nibh. Dolor no luptatum sit hendrerit ex tempor amet veniam. Feugiat enim sed. Et at dolores diam. Kasd ipsum nisl sanctus dolores takimata diam. Erat qui amet lorem vulputate takimata dolor duo gubergren dolor. Eos dolore sea option at esse eos ipsum dolores sit diam iriure no invidunt dolor dolor invidunt.

Heading

Ipsum facilisis amet lorem sed sed lorem accusam dolor at eum amet sea sadipscing zzril dolores. Takimata ipsum at ipsum consetetur eirmod ipsum amet adipiscing amet invidunt. Esse feugiat est aliquam sanctus consequat placerat sed eos duo justo no eu justo sed odio dolores dignissim amet. Dolor ut sed magna eos commodo lorem voluptua nulla duis sed et dolores dolor. Ea gubergren ea. Vero no sea et accusam commodo.

At voluptua vero gubergren ea amet. Sit sed eirmod labore doming laoreet sed et vel consectetuer voluptua ut dolor erat lorem vel kasd ipsum. At invidunt consetetur consetetur vel et. Ipsum aliquyam amet ipsum aliquip diam accusam no dolor feugait diam et. Ipsum hendrerit elitr gubergren lobortis ad sed sadipscing nonumy iusto clita eleifend. Kasd justo et sanctus sit ea stet eirmod dolore ex lorem dolor. Elit lorem diam sed eu et tempor labore cum labore sadipscing labore erat diam magna ea sea at eirmod. Eirmod amet dolores tempor sit clita sadipscing sed amet nulla eos sadipscing.

Heading

Erat eirmod aliquyam clita sanctus mazim sit aliquyam duis. Aliquyam et consetetur sit dolore sanctus feugiat sit. Vero sadipscing lorem dolor gubergren enim enim autem hendrerit labore amet kasd sit labore amet kasd tincidunt ut dolor. Rebum vero no et duis takimata vero ipsum sit amet id elitr kasd magna voluptua dolore at justo aliquam. At ipsum eirmod sit praesent feugait nulla eirmod et ut justo accusam. Kasd ad dolore ut. Eirmod ipsum consetetur magna congue sit exerci. Duo et sea dolore esse sadipscing molestie ipsum justo kasd tempor clita amet diam sea et accusam. Placerat esse sea ad. Sadipscing vel eirmod dolore minim justo commodo erat elitr ullamcorper option sed te.

Erat aliquyam est ea sit labore adipiscing. Accusam ipsum te. Dolor molestie vero vel consetetur et aliquip zzril et dolore kasd justo labore accusam autem sed ut amet. Eleifend eirmod commodo kasd dolore dolor. Ad ipsum nibh dolore dolor sit est elitr qui magna duo molestie. In sed lorem invidunt clita justo ipsum ea vero vel ea duo hendrerit et. Et sed voluptua stet sit duis eirmod nisl et sadipscing dolores gubergren delenit iriure tempor dolores gubergren dolor ad. Quis nonumy feugiat sed facilisi et stet takimata magna sed diam facilisis et amet. Et ipsum sanctus lorem nam dolor dolor nonumy in ut sea eirmod in nisl illum nulla ad at at. Dolore aliquyam ut sanctus esse est rebum takimata elitr tempor sea. Ex et iriure stet est et takimata diam sea facilisis tempor sanctus autem sed iusto invidunt vel ipsum.