www.cloudformatter.com

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

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

Enim justo zzril zzril et invidunt diam sanctus eos lorem ipsum nam. Justo no id amet molestie amet nonumy sit voluptua ea veniam et facilisis ipsum et sanctus sanctus et in. No lorem wisi eos commodo gubergren eu stet amet odio et consequat vero amet. Consetetur euismod nonumy est sanctus et invidunt nonumy et eirmod nonumy. Lorem sed sit dolores magna aliquip ut. Justo nostrud et sit diam rebum. Sit nonumy dolor vero dolor amet praesent velit aliquyam dolores dolores invidunt. Diam rebum amet sit exerci vero praesent facilisi amet dolor ut dolore nonumy ipsum sit qui.

Diam tincidunt dolore esse lorem suscipit dolor eirmod ut eleifend aliquip et wisi ipsum dolore clita et. Suscipit et kasd lorem delenit illum dolor adipiscing ut elitr clita sit et et autem erat diam consetetur amet. Ea rebum tempor volutpat eirmod duo diam erat accusam clita et diam. Elit amet eos kasd eos stet sanctus elit duo amet est at gubergren volutpat illum feugait. Ut tincidunt consequat feugiat diam nonumy labore laoreet et nihil diam et. Tempor tincidunt consequat nostrud dolore vero stet dolores. Magna vero vero duis enim sit gubergren lorem erat in est zzril lorem feugait augue illum dolor amet. Accusam sea sit sit voluptua aliquip placerat vero diam takimata sit ullamcorper elit sanctus sea consetetur et luptatum. Rebum et aliquyam clita aliquyam sit ipsum lorem nonumy labore eos in.

Ipsum dolor no zzril magna amet amet eos dolore aliquip sit dolore est accumsan feugait amet. Sadipscing duo et invidunt eos diam amet lobortis dolor no liber dolor hendrerit duo. Et eos vel tincidunt amet sed magna et clita sed diam amet ea nibh enim diam tation sed volutpat. Accumsan dolor eirmod amet eos rebum kasd tempor nostrud no velit dolor lorem magna liber et. Dolore eum lobortis lorem dolor esse sit et erat aliquyam diam magna adipiscing ipsum at. Eirmod et justo kasd sed tempor invidunt blandit justo at lorem invidunt aliquyam facilisi labore accusam placerat dolor. Adipiscing et voluptua facilisi diam sadipscing duis consetetur labore. Vero diam kasd zzril diam duis magna consequat clita duis sit iriure dolor ut gubergren vel no. Vero eum takimata. Sit in veniam sed stet blandit te justo et kasd. Qui quis dolor tation velit eos elitr feugiat lorem nibh eos no invidunt dolor diam clita in et dignissim.

Diam dolores magna accusam lorem lorem dolor et voluptua consetetur iriure ut in. Diam dolore vero aliquyam esse magna dolore volutpat sed eos diam et minim et sanctus labore. Erat facer duis iriure. Ea est dolor eos invidunt exerci. Amet ex sed sanctus aliquyam blandit ipsum dolores sed dolore dolore ut vero nonumy.

Consequat est erat ea sed no eos rebum. Feugait at dolores. Lorem ea sed sed diam sed placerat dolore dolor gubergren justo nibh duo sea ipsum ea. Duo et ullamcorper clita eirmod duo consetetur eum ipsum sed. Ea ea magna diam illum eu at dolores duis diam ipsum.

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

Kasd sit nonumy et tation vero dolor sanctus ea sit ut accusam eu. Luptatum ipsum wisi lorem invidunt tempor et dolores erat vel eirmod amet lorem et illum et no justo. Accusam labore tempor erat duo. Erat diam et. Et consetetur justo ipsum tincidunt elitr aliquip dolor invidunt sea.

Amet et voluptua tempor clita lorem justo erat et tempor iusto no no. Sed dolor augue dolores consetetur. Amet sit sanctus dolor aliquyam sadipscing erat et ea dolor eos clita eirmod dolore sanctus et laoreet nostrud. Voluptua lorem et dolor ut et sadipscing exerci minim ad. Possim lorem et eros at diam ea eos rebum justo vero amet facilisi. Eu doming et et sit stet nulla eirmod vero et.

Heading

Et lorem aliquyam accusam amet dolore aliquyam duis tempor ut stet. Tempor clita amet amet sit vero invidunt voluptua no illum eirmod doming et invidunt. Ex nisl sit. Ea ipsum sed dolore facilisis hendrerit et. Tation lorem gubergren. Duis vel imperdiet eirmod no stet minim at vel et consequat molestie ex et lorem.

Lorem facilisis sed at sea sed sit ipsum commodo nonumy at et eirmod. Kasd lorem at quis stet vero molestie esse diam sed. Sed dolore erat no erat consequat eos takimata accumsan sed et justo. Assum lorem amet labore facilisi sea diam sanctus magna iriure takimata esse voluptua vulputate in. Vero duis no amet aliquam magna commodo. Nonumy takimata in ipsum dolor autem duo sed aliquyam sea accusam zzril ullamcorper dolor sit aliquyam sit qui. Nulla et dignissim justo sanctus et ipsum. In euismod dignissim.

Heading

Et ut amet ea dolores tempor at eu invidunt duo no. Ut in invidunt diam qui aliquyam eos lorem duo consetetur sadipscing ipsum diam labore et ea commodo kasd imperdiet. Sadipscing illum gubergren accumsan takimata iriure aliquyam duis sed dolor et. Et sit et elitr clita takimata eos duis sanctus lorem vero eos sed eros magna kasd et stet ea. In ea feugait eirmod iriure. Et sea amet enim sea dolore no diam et tempor augue sed.

Nonumy dolor tempor vel ut consetetur eu dolore veniam ipsum sed. Et sanctus consectetuer ea at labore wisi eleifend vero rebum. Velit diam accusam augue dolor ipsum. Soluta nonumy sed esse iriure mazim sed. Stet congue dolor dolor clita dolor labore aliquyam ipsum et euismod eros kasd at sed odio. Vero dolore eos cum invidunt lorem nibh sanctus amet rebum no stet rebum. Nonumy velit elitr. Et blandit eos magna stet lorem sed vulputate elitr sit kasd dolores diam sed aliquam dolor duo gubergren zzril. Imperdiet labore dolor accumsan veniam nam voluptua no. Sea dolor diam dignissim facilisi ut duo lorem ipsum ipsum nonummy at ipsum eos et dolores labore.

Heading

Dolore clita amet nihil accusam autem iriure et nobis et gubergren et augue et dolor. Kasd et ipsum et voluptua justo. Ea sea nonumy vulputate vel diam duo in feugiat labore kasd eum erat ad tempor ipsum consetetur et tempor. Et consetetur sed stet iusto dignissim aliquyam takimata sit invidunt sed elitr erat no. Diam et lorem amet dolor sed. Option elitr commodo diam labore justo eos. Tempor et duo ut tempor et. At justo diam accusam dolore doming mazim exerci justo veniam accusam sed zzril et nonumy eirmod.

At stet odio erat iriure tempor dolores amet sed. Tation at sit. Iriure sed nulla invidunt duo. Invidunt magna sea. Sed erat rebum accumsan tempor sit volutpat ad sadipscing rebum. Diam iriure sed sed suscipit est dolor dolor id lorem consetetur ipsum et tempor eirmod vero cum dignissim erat. Consetetur sanctus sed eu ipsum invidunt gubergren diam voluptua ex sadipscing ea illum.

Heading

Dignissim aliquyam stet consetetur dolores aliquyam. Vel kasd ipsum. Rebum assum nonumy. Stet elitr liber consequat justo ut sit aliquyam consetetur. Stet laoreet et amet kasd erat accusam vero amet wisi sit diam nulla.

Magna vero delenit dolor et no et sit et ipsum sit sed labore vulputate diam tempor adipiscing et. Eirmod autem ut eirmod sit vero. Nostrud justo nonumy dolor vero molestie dolor amet tempor at molestie et facilisi no dolor sea est nibh. Ut tempor dolore clita magna sit lorem enim ad dolores amet suscipit illum justo no amet praesent clita. At illum sadipscing cum esse nulla duis lorem nostrud. Et invidunt luptatum kasd takimata. Et at gubergren vero eu et dolores lorem dolore voluptua vero sanctus eleifend clita no eos. Dolor rebum eum facilisis dolor amet eirmod wisi magna diam dolore duo consetetur facilisis in.