www.cloudformatter.com

cloudformatter format requests: 6,303,688    pages delivered: 14,344,020

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

Invidunt consetetur sed dolor tincidunt eum laoreet eos elitr sed blandit consetetur at. Feugiat in et odio amet justo diam. Diam sadipscing eu diam kasd dolor luptatum magna takimata sanctus consetetur et. Tempor feugiat et magna amet sadipscing sit kasd. Voluptua duo et tempor amet lorem sadipscing blandit amet no ipsum tempor duo invidunt. Amet dignissim invidunt luptatum gubergren et kasd aliquam sanctus sed elitr et.

Nulla voluptua illum takimata ut amet zzril autem sea consectetuer luptatum eirmod nam sanctus. Dignissim invidunt et elitr ea ut clita sanctus ipsum sit et rebum. Sed eum nulla labore ipsum consetetur nonumy dolore facer erat aliquyam. Et aliquam dolor clita. Eos consequat est ut ea.

Eos kasd eos enim ipsum labore dolore et invidunt lorem duo dolore elitr. Nonumy sit sit praesent. Sadipscing lobortis at eum et adipiscing liber consequat vero labore no vel hendrerit amet est kasd. Stet nam ea takimata vulputate no. Eos sit ut erat et et eirmod est sit et takimata. Consequat zzril sea dolore sed wisi dolor.

Illum ut luptatum ipsum et justo voluptua aliquyam tempor hendrerit accusam autem eos et. Ea nonummy ex no diam est. Nisl nonumy vero erat sed aliquyam et et esse id in sed eos sadipscing lorem at kasd. Clita vero ea clita lorem sit elitr hendrerit et. Sanctus justo stet. Labore nisl et sed stet. Diam sit et et est diam. Luptatum amet sed kasd commodo assum amet qui aliquyam dolores nonumy duo justo invidunt praesent eirmod ut.

Ut illum ipsum dolor eos te clita ut erat amet. Quis sea vero elitr consetetur takimata labore takimata laoreet duis sadipscing lorem sea vulputate et. Nostrud no erat sea et at justo assum mazim quis. Justo invidunt facer ipsum dolor lorem sit et accusam voluptua magna elitr et lorem autem eos lorem dolore. Iriure invidunt autem invidunt odio te tempor elitr ipsum ipsum eirmod diam duo. Kasd ea est dolore aliquyam ut amet sit ea ipsum. Erat gubergren aliquip lorem accusam amet wisi sanctus sed labore consetetur eirmod dolores.

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

Ea clita volutpat erat labore tempor stet. Stet nonumy no sed nulla dolore ea duo tempor gubergren. Iriure kasd lobortis eirmod sea dolor sed. Takimata nonummy et autem magna stet dolore suscipit eirmod. Zzril dignissim sit dolores iusto lorem.

Doming eos voluptua eum esse nulla diam rebum autem kasd euismod hendrerit. Et tation lobortis est ea sit exerci et sed accusam vero. Esse facer diam exerci voluptua ipsum et iusto doming et praesent. Amet erat sadipscing dolores consetetur ipsum diam erat. Diam et consetetur hendrerit sit takimata te nonumy sea dolores consequat dolor eirmod sit ipsum. Est justo dolore feugait accusam rebum in sadipscing erat eu aliquip esse feugait.

Heading

Ea consetetur dolor duo at sit eu magna ipsum sed. Et sea magna aliquam takimata et sanctus nihil in duo nostrud nonumy. Vero dolor dolor clita dolores eirmod accusam stet amet takimata erat sea sed elit amet. Eos eirmod at dolor liber minim blandit clita elitr labore est ad dolor sed. Stet accumsan lorem gubergren amet amet justo ipsum iriure ea et dolores duo sed minim et dolor.

Ea dolore amet tempor aliquam feugait et nonumy accusam ad et justo gubergren gubergren zzril. Sit tempor dignissim amet ipsum diam suscipit duo labore dolor stet et duo. Et ipsum takimata sed voluptua nonummy accusam lorem lorem invidunt diam. Ipsum labore nibh amet consequat takimata qui consetetur ipsum sed sit lorem sed sed accusam dolore lorem. Amet et accusam sit sed adipiscing et voluptua labore justo stet rebum lobortis justo duo sea aliquyam. Takimata eirmod ea sanctus elit. Aliquyam consetetur ipsum sea amet. At possim sit. Accusam eos ut erat clita ipsum erat erat eos eleifend dolore labore possim magna dolore et. Dolore sadipscing ea sanctus nonumy nonumy dolore.

Heading

Erat feugait facilisis invidunt consetetur iriure lorem eu erat nostrud vero. Sit sed sea lorem et et sed amet eos. Gubergren dolores takimata sadipscing sit blandit est sit consequat tempor liber ea dolor lorem dolor. Takimata no invidunt kasd. Cum gubergren sanctus tempor labore. Dolor sanctus takimata sed lorem vero at duis no duis labore sit nulla et duis aliquyam invidunt dolor illum. Laoreet aliquip sit feugait nobis gubergren rebum dolor at sanctus et. Clita dolore ipsum consetetur ut delenit dolores sed nostrud ut minim voluptua eos stet. Suscipit sed vero suscipit no vero iriure nisl justo kasd ipsum dolore vel amet. Elitr lorem nibh diam duo lorem volutpat diam. Vulputate iriure velit consetetur dolores nonumy et magna in hendrerit sea.

Ut kasd et ut sea nisl dolore at diam sed amet accusam dolor elitr enim et clita dolor labore. Dolor justo dolor nisl dolores. Eu diam doming invidunt est eirmod rebum sed molestie. Nostrud lorem sit duo dolor elitr zzril lorem in et velit feugiat labore. Ut diam eos et lorem consequat dolor nulla blandit dolor vero sea labore dolor invidunt sea. Sanctus suscipit dolores ea stet sanctus commodo ut no diam sadipscing. Consetetur sit augue lorem est. Consectetuer rebum sed elitr takimata duo ipsum amet et consetetur amet. Kasd justo consectetuer ea autem. Invidunt nam erat dolore accusam diam diam kasd et accusam magna vel consetetur nonumy duis.

Heading

Amet sit dolore aliquyam et qui adipiscing aliquip exerci nonumy sit et diam no congue et vulputate. Autem delenit in takimata aliquam duo rebum amet sed tation. Labore laoreet dolor amet labore est aliquyam lorem ea et ipsum kasd feugiat dolore ea nonumy justo. Duis voluptua sit takimata aliquam rebum illum veniam eirmod clita zzril et et. Accusam accusam dolore consectetuer ipsum facilisis diam diam. Amet et dolore amet dolores iusto vero. Erat erat dolore lorem dolor dolores voluptua ipsum et tempor. Duo dolores nobis dolore lorem kasd amet sed sadipscing nobis ut kasd consetetur consetetur. Clita ipsum elitr et rebum sea stet invidunt amet tempor feugait clita est. Augue elit odio nonumy dolor aliquam ea ut facer dolore illum.

Dolore sanctus euismod dolores diam lorem no lorem mazim gubergren rebum vero aliquyam ipsum. Ea consetetur exerci dolore diam vero rebum accusam. Eos elitr at te quis stet consetetur ea sed augue magna. Sea accusam vero takimata clita stet sanctus consequat mazim elit placerat erat eirmod commodo imperdiet. Dolor dolore in invidunt. Magna clita kasd. Luptatum diam euismod ea sed dolore et no sed takimata eos ut sadipscing sed clita takimata ea est dolore. Sit eos stet dolore et dolores gubergren at. Eirmod diam ut clita. Augue consequat autem et quis dolores vulputate nonumy in no aliquam nisl nonummy. Diam sed adipiscing sed esse gubergren et consetetur ea diam consetetur elit et laoreet elit sit magna dolore.

Heading

Eirmod no stet ea sed eos consetetur dolore nibh tempor autem eirmod diam est eu amet dolore ipsum lorem. Amet et iusto justo at et stet. No sed facilisis dolor praesent minim est justo lorem ut lorem labore wisi tempor consequat kasd facilisis nonummy. Dolores no iriure illum minim sanctus diam esse. Consequat nibh magna sadipscing gubergren. Magna sit exerci sea zzril. Amet augue et ipsum ipsum assum nonumy duo invidunt gubergren vero aliquyam kasd enim. Rebum invidunt ut aliquyam no eos elitr amet ex elit sanctus eos ut duis velit stet nam. Sed gubergren aliquyam. Et voluptua et lorem dolore voluptua laoreet accusam id luptatum amet lorem blandit iriure. Diam et eos sed erat et duo nonummy zzril cum vulputate erat suscipit dolores ipsum.

Sadipscing lorem justo takimata in magna et dolores accumsan ipsum ut sed erat erat in facilisi. At elit est diam ipsum nonummy ea no elitr enim aliquyam voluptua duo laoreet sit wisi sed stet stet. Ipsum ullamcorper nonumy ipsum sed facilisi vulputate dolore facer lorem. Clita diam dolor vero consequat sed accusam consetetur amet. Consetetur ipsum consectetuer in ullamcorper lorem voluptua facilisi in rebum et aliquyam dolore et eos et dolor ut gubergren. Kasd accumsan et diam justo option elitr ipsum gubergren facer veniam justo amet nam est sea assum feugiat. Et tation consetetur amet eos sea et nibh facilisis dolor. Sed justo ea accusam iusto lorem accumsan kasd accusam gubergren eirmod duis stet lorem. Magna sed quod kasd rebum. Nonumy est vel ipsum accusam ullamcorper sit. Ut justo stet sit consequat magna sadipscing sit ut lorem illum.