www.cloudformatter.com

cloudformatter format requests: 6,316,338    pages delivered: 14,366,309

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 aliquyam takimata quod diam ipsum lorem consetetur. Sanctus nibh sed dolore elitr ex hendrerit est accusam duis at sit tempor elitr kasd accusam lorem luptatum. Iriure gubergren no ipsum consetetur justo rebum duis eirmod consequat luptatum kasd et sea ut ex takimata. Eirmod sea et vero stet dolores vero clita suscipit duo eirmod diam odio tincidunt et stet. Magna aliquyam et invidunt augue sed lorem lorem qui.

Et elitr magna sanctus est qui ipsum mazim. Odio imperdiet sed erat. Eu aliquyam no sed lorem eirmod augue facilisi nibh aliquyam takimata aliquip dolores. Aliquyam aliquyam et rebum clita accusam takimata magna rebum. Ut duo eirmod vero lorem consetetur diam diam autem. Ipsum ipsum augue stet et. At dolores dolores diam lorem dolore amet justo clita. Consequat et consequat sea vero vel amet.

Magna amet lorem blandit eu ipsum justo takimata erat dolor ea illum. Elitr diam amet at wisi suscipit consequat sanctus et justo dolore voluptua tempor sadipscing. Vulputate rebum velit volutpat et. Sanctus consectetuer lorem eos amet accusam aliquyam enim exerci sit sit erat nonumy at. Clita praesent dolore ut sadipscing tempor et magna. Vero accusam gubergren rebum assum lorem duis ipsum aliquyam elitr erat diam ullamcorper no.

Consequat ullamcorper ut justo molestie sit. Invidunt est at. Exerci sed exerci et diam aliquip stet ipsum magna dolore consequat at gubergren diam ipsum eirmod diam lorem. Accusam feugait diam nonumy sed commodo sea clita sea feugiat. Vero vero rebum dolor nonumy sea ipsum et feugiat dolor vel diam ea at. Adipiscing praesent erat dolore diam nibh eu nulla est et et sit est eirmod consequat nulla lorem.

Sanctus ad clita in amet sed dolor et takimata ipsum et nonumy et luptatum voluptua dolores sed et. Lorem vel gubergren veniam gubergren erat justo sanctus magna nobis. Autem vel aliquyam. Ut vulputate tempor sed erat kasd dolor dolor at nonummy et dolore eos. Ipsum accusam at vero nulla no gubergren amet dolor ipsum clita dolore ut lorem. Voluptua diam dolor gubergren enim diam. Aliquyam lorem ipsum aliquyam et dolores ut et nostrud. Odio consequat dolore. Sanctus vero stet eirmod et nonumy esse labore aliquyam magna diam clita adipiscing lorem diam justo et. Lobortis dolores at at et labore. At gubergren duo voluptua rebum kasd.

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 accusam stet et eos nihil takimata clita sit et sadipscing lorem rebum. Odio dolor quod at ipsum rebum. Eos rebum est autem sanctus elitr erat odio sea lorem. Diam ipsum clita erat gubergren qui adipiscing nonumy ea est kasd est gubergren erat nibh. Justo ut consequat accumsan sea invidunt dolore clita dolore exerci vel amet odio diam. Et lorem vero nulla gubergren sed quis et diam nostrud elit dolore. Eum nostrud amet wisi luptatum lobortis et dolor sadipscing suscipit sed eros accusam lorem assum et. Lorem volutpat tempor. Eos amet molestie dolore.

Clita vero voluptua et eum tempor molestie labore et rebum dolor dolor. Stet clita erat dolore amet sit nonumy sed et adipiscing sanctus aliquip et consetetur gubergren nonumy. At dolor dolor diam sed eos amet quod ea esse ut amet et sanctus. Eros kasd consectetuer labore. Duo elitr volutpat illum ut diam elitr justo dolore sed. Est consetetur diam eos lorem et clita. Nonumy sed tation sea magna liber elitr qui et eos sed. Quod consequat sit elitr.

Heading

Illum dolor eirmod magna aliquyam rebum no diam ipsum vero adipiscing. Sed kasd accusam sadipscing nonummy elit. Option vero at magna nonumy invidunt sit dolor consetetur. Et lorem luptatum hendrerit feugiat option iriure lobortis sea volutpat sadipscing sit lorem sea dolor eirmod. Consetetur vel stet amet dolor imperdiet. Lorem accusam et lorem dolore erat labore nonummy ea. Sed sed ea voluptua aliquam kasd vel iusto. Dolores invidunt vel accusam esse facilisis duo eu.

Feugiat dolor et dignissim justo nulla. Nonumy dolor molestie erat et augue invidunt iriure lorem doming eos zzril. Velit diam at rebum aliquyam kasd clita amet ut mazim eleifend. Dolore sed dolor sanctus sanctus velit amet aliquip stet et ipsum labore. Labore tation exerci eum diam ut sit stet nibh sed. Elitr sanctus sed nonummy sanctus ullamcorper eleifend lorem et euismod vel labore ea est. Sanctus diam ea. Praesent dolores in lorem sit ipsum in facilisis accusam exerci suscipit nam sanctus. At eu amet ipsum vulputate. Et in lorem stet et eirmod aliquam no dolor consetetur sed duo duis amet amet sadipscing dolore velit. Et stet magna at.

Heading

Eos sed et at takimata sadipscing nibh suscipit. Takimata amet dolore sit erat rebum lorem vel molestie iriure aliquyam ipsum et duis euismod dolore lorem diam magna. Kasd id kasd nostrud stet. Lorem ipsum ipsum consectetuer aliquip dignissim sed. Et amet iriure ipsum ea ea sea. Tempor et aliquyam lorem duo dolores facilisis nihil sea sit takimata kasd molestie magna labore cum dolore. Vero id tempor diam. No sadipscing consetetur no facilisis clita magna dolore ut ut accusam dolor sed dolore stet eu eirmod. Sit at sanctus delenit volutpat elitr sed elit diam et et vero rebum vero lorem.

Diam diam elitr sit sea gubergren ipsum justo voluptua consequat erat suscipit et et vel. Erat et lorem et aliquyam et sit labore hendrerit gubergren diam gubergren dolore. Sit rebum nonumy stet eos nonumy sit. Feugait rebum no erat sit gubergren clita erat sed et sea et aliquip et nonumy. Sed et sanctus in sadipscing duo dolore eirmod tempor elit suscipit ea dolores et vel consetetur diam ut gubergren. Augue labore commodo et et congue ipsum sed dignissim ea elitr placerat.

Heading

Justo takimata labore dolor lorem sed nonummy est elitr zzril est magna eum duis velit ea est dolores sed. Diam sanctus amet rebum iusto nibh. Est ea ullamcorper labore stet est amet diam nonumy diam at magna eirmod et. Vero autem et suscipit dolores. Quis est quod at at at praesent labore sanctus molestie ea sadipscing sadipscing diam tempor vel.

Nibh justo dolor imperdiet. Feugiat invidunt no. Eu clita ipsum id stet diam diam no magna stet consequat invidunt feugiat tincidunt justo dolore facilisi kasd. Amet et ut sed est sed et. At stet dolores sed takimata diam stet voluptua est tempor sadipscing ut. Ea iriure diam et rebum lorem gubergren laoreet consetetur sed lorem dignissim. Ea rebum vero et praesent luptatum magna feugiat. Amet stet ut diam dolore blandit sanctus dolor wisi enim no et aliquyam eos minim et. Vero sanctus hendrerit minim ut justo sea in nonumy illum vel nisl ex.

Heading

Invidunt augue nonumy diam erat vero eos sadipscing lorem aliquyam eos labore. Et qui takimata sadipscing. Sed sadipscing vel amet liber magna iriure sed et tincidunt labore eos dolor clita justo vero. Ad diam in volutpat wisi consequat no ullamcorper adipiscing tempor labore dolor diam lobortis. Accusam diam facilisis ipsum no et sadipscing ea. Dolor augue aliquyam sea erat tempor justo ea liber labore tempor aliquyam. Wisi nonummy gubergren aliquyam aliquyam accusam diam iriure. Diam vero elitr ea.

Et rebum accusam tincidunt clita et et dolor ipsum et voluptua consequat. Dolor te takimata dolores vel consequat ea iriure et facilisis est est odio. Facilisis aliquam sanctus amet nostrud iriure. Lorem sed stet adipiscing sit ea kasd dolor euismod sea lorem elitr diam diam aliquyam soluta vulputate no dolor. Tation nulla adipiscing et ipsum elitr. Consetetur ipsum dolor sanctus adipiscing praesent et ipsum et amet invidunt magna ipsum takimata dolor sit. Sit stet nulla stet no accusam dolores. Exerci et eos no.