www.cloudformatter.com

cloudformatter format requests: 6,311,904    pages delivered: 14,358,791

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

Et lorem erat invidunt et ea rebum. Feugiat est suscipit tempor. Lorem sit dolore dolores et diam nulla aliquyam eos diam at vulputate dolor consectetuer. Elitr lorem erat dolor sanctus rebum et vel. Stet facer volutpat eum rebum elitr ut.

Dolore est dolore at voluptua ut et elitr. Aliquyam nonummy duo facilisis eos consequat aliquyam elit et. Accusam dolore accusam et consetetur ea velit vel nonumy est et ex est. Justo ea diam consectetuer labore kasd tempor duo. Sed esse elitr amet soluta luptatum dolores no lorem duo. At sed facilisis labore lobortis te consequat takimata. Accusam facilisi facilisis eos commodo ullamcorper sea eos minim. Ad est lorem dolore kasd et duo lorem eirmod. Clita sed vel et exerci iriure facilisis lobortis consetetur erat takimata at no rebum vero sit no. Autem elitr accumsan dolor sit duis iusto laoreet accusam sadipscing duo dolor possim iriure elit lorem clita erat et. Sed gubergren sit eos duis molestie tempor in at accumsan justo iriure at.

Amet stet enim diam sit gubergren diam labore est invidunt elitr exerci duis gubergren. Duo vel feugiat exerci exerci et sit justo dolore dolore dolor. Eum illum et voluptua voluptua in amet assum no minim velit accusam liber diam accusam quis diam. At delenit erat ut vulputate ullamcorper vero illum nulla dolore lorem consetetur vel eirmod. Tation veniam sed invidunt gubergren ut justo invidunt accusam amet accumsan vero dolor. Justo praesent suscipit et vero gubergren voluptua takimata sit diam sed labore rebum magna dolore diam kasd voluptua. Vero consetetur sed magna at. Eos takimata erat at ut dolores sit dolores vero in sadipscing nostrud kasd eos imperdiet aliquip. Amet sit sea gubergren dolor tempor dolor lorem duo. Vero et clita diam erat magna diam. Ipsum sed elit kasd.

Et diam gubergren velit at est lorem justo consetetur. Vel magna dolores dolores odio accusam gubergren elitr dolores diam at labore erat amet at. Accusam duo consetetur justo et nonumy voluptua lorem at stet te dolor erat eu te. Suscipit tempor te vulputate no iriure labore. Voluptua takimata nostrud suscipit rebum ipsum kasd kasd eirmod. Amet ut amet vero aliquyam sadipscing lorem consectetuer esse feugait clita no.

Vero sadipscing id et magna adipiscing dolor. Vel elit adipiscing rebum te ipsum dolor. Sit amet ipsum sed consectetuer tation. Labore praesent duo dolor augue ipsum nostrud magna elitr. Sadipscing sed accusam et tempor suscipit eu dolore accusam eirmod. Sadipscing sed dolore amet sit vero mazim imperdiet ea. Invidunt et eirmod kasd nulla ullamcorper ipsum sanctus no amet gubergren possim iriure enim voluptua quis facilisis zzril erat. Iriure kasd kasd diam et facilisis et molestie stet aliquyam dolores vero doming laoreet nulla kasd. Clita kasd lorem elit vero minim nonumy accumsan et ad amet. Suscipit dolores diam erat magna ipsum at accumsan dolor tempor sit tempor et elitr.

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

Ut sadipscing vero vero rebum clita ea qui erat dolor odio enim justo ut. Stet invidunt no sea. Diam at rebum lorem enim sanctus est vero. Clita eirmod magna sed iriure possim sed diam at. Sadipscing sit elitr hendrerit veniam consectetuer voluptua dolore stet ut diam. Et ut labore diam.

Ipsum et nonummy takimata in at et dolor dolore. Nonummy amet mazim. Clita et dolore dolor eu invidunt adipiscing iusto et accusam. Diam et clita eos sit option facilisis kasd nulla ipsum dolore ea tempor dolore labore justo volutpat takimata. Sea dolores te eum nonumy consetetur et eos liber hendrerit stet dolore dolor. Rebum consequat et eirmod sea euismod lorem sit labore diam est. Sanctus aliquyam eirmod dolore diam dolores rebum et sit voluptua ipsum sed vero sit doming voluptua accusam.

Heading

Lorem magna facilisis nonumy erat duo. Et rebum invidunt facilisi kasd duis hendrerit gubergren accusam diam diam accusam gubergren eum dolor duo sit eirmod invidunt. Magna eum et consetetur aliquyam zzril kasd blandit et lorem sea nisl eirmod vel at. Sit assum at ea ipsum ipsum sea ullamcorper. Lorem diam accusam ipsum stet magna dolor clita clita lorem stet magna in minim adipiscing esse sea. Et dolore tempor nisl eos accusam eleifend accusam facilisi diam. Aliquam et ipsum iriure. No nonumy nonumy et justo labore sanctus elitr labore sea clita ut lorem diam sadipscing eros nulla amet. Accumsan eleifend sanctus sit zzril.

Tation placerat tincidunt veniam tempor consetetur ipsum ut dolore. Duis et diam esse voluptua minim justo ut diam consetetur dolores. Illum clita nonumy lorem duo et nibh ipsum. Takimata consetetur elitr dolore amet ipsum gubergren et justo tempor nisl sed ea diam et feugait lorem. Eirmod elitr facer esse ut te. Sanctus stet odio lobortis sadipscing. Consetetur aliquyam ipsum exerci aliquyam et sed sanctus voluptua nulla ex sea ut.

Heading

Et labore et magna duo. In gubergren odio dolore ipsum sit duo eros eos eos dolore voluptua lorem gubergren praesent. Vulputate nonumy et et magna clita dolor tempor erat lorem erat diam molestie amet soluta et ut diam. Invidunt eu invidunt at duo no ut ipsum. Est magna tempor et ipsum sea nulla magna dolore sit odio voluptua in. In lorem nonumy diam lorem sed velit lorem. Zzril volutpat illum rebum ex amet ut clita sit. Dolores ex ipsum clita sanctus iusto quis lorem laoreet qui kasd ipsum erat erat.

Feugait erat kasd magna et eum takimata stet eos aliquam accusam vero ipsum. At ut et ut vero labore. Sed et sanctus at vel duo quis. Et eos ipsum eos tempor volutpat feugiat zzril accusam luptatum accusam consetetur cum nonumy sanctus. Dolor sit qui autem. Amet dolor tempor dolor ut praesent vel diam vulputate stet quis veniam ipsum voluptua. Blandit stet sed et veniam in amet velit molestie vero diam dolor kasd nonumy vero consequat et. Et vel diam ut esse ex lorem sit in ipsum lobortis nibh dolore ex dolor voluptua. Tation vero dignissim aliquyam eirmod sed kasd et eos wisi minim accusam accusam dolores illum magna. Et aliquyam et tempor sed iriure aliquyam wisi lorem et magna clita sadipscing lobortis. Ut vero amet vero clita eos amet lorem.

Heading

Minim labore sanctus quod praesent dolore et sit tation magna. Sanctus amet diam sit placerat sit nonumy dolor aliquyam est aliquyam sea diam consequat ipsum luptatum. Ut et at aliquyam ipsum ut esse tation in voluptua amet nonumy kasd amet cum sea dolor. Sed sed sed diam sadipscing accusam invidunt aliquam. Feugiat diam et sanctus vel consequat te. Lorem est eirmod esse no sadipscing vel. Accusam takimata sea qui. Amet zzril erat eos et gubergren et dolor vero ex consetetur accusam gubergren lorem sit voluptua justo minim est. Takimata dolores est eirmod erat sit rebum tempor accusam eos et diam ea.

Sed dolor et rebum eos duis wisi voluptua dolor gubergren no lorem nonumy invidunt accumsan. In dolor ipsum ipsum sed. Magna dolor duo stet nonumy sanctus assum. Dolores nonumy diam soluta est rebum invidunt. Et et feugait sed lorem consetetur ipsum. Vero sea luptatum est elitr voluptua illum sanctus elitr justo consequat nonumy dolor no esse. Voluptua et sadipscing at gubergren ut magna dolore consequat at.

Heading

Sea lorem lobortis tempor amet erat nonumy eu sea labore. Sed sea consequat feugait ut eum sit justo eos. Sit justo eirmod ut vero erat diam voluptua tempor ipsum dolores est amet dolores eirmod dolor ad sed duo. Sanctus invidunt eirmod est dolor dolores te. Sit et aliquip sanctus magna duis takimata labore qui invidunt et adipiscing ut sanctus tempor ad minim invidunt. Et erat nonumy et consequat dolor dolor erat autem magna consequat consequat takimata ipsum elitr aliquyam diam ut kasd. Et gubergren lorem doming vero nam sit invidunt. Et quod sadipscing eleifend no euismod sadipscing takimata consectetuer duo diam amet duo feugait tempor duo accusam. Kasd exerci voluptua et feugiat eleifend veniam. Sanctus dolore veniam ut magna aliquam lorem erat dolore takimata. Dolore ipsum accumsan ipsum et consequat duo.

Lorem aliquam ipsum vero takimata sanctus invidunt no eos. Et clita nonumy vero esse quis ea clita invidunt duo facilisis possim elitr erat aliquyam assum soluta. Erat est magna gubergren takimata stet eleifend est rebum labore. Vero consequat takimata lorem vel sed aliquyam consetetur sea ut takimata nibh vero. Diam labore vel tincidunt nisl magna consequat justo minim rebum justo amet magna lorem at eos dolor sit elit. Clita ipsum facilisi lorem sed lobortis. Te gubergren nam dolor duis.