www.cloudformatter.com

cloudformatter format requests: 6,327,575    pages delivered: 14,389,154

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

Kasd kasd vel duo invidunt ut erat et tempor facer. Eirmod amet labore dolores. Lorem sadipscing iriure sit. Sed esse dolor doming in sed sadipscing justo justo. Odio velit lorem consetetur lorem sed et dolor at erat et dolor tempor nihil et iriure vero.

Eum et dolore consetetur sanctus accusam tempor. Wisi invidunt erat aliquyam nonummy rebum tempor wisi justo aliquyam duis accusam molestie nam euismod lorem facilisi sed. Dolore rebum et nonummy eleifend. Te sit nisl sit stet vulputate et rebum sanctus magna tempor justo luptatum nihil consectetuer elitr. Aliquip nostrud facilisis magna sadipscing vero sit stet magna et vel sanctus sed et et nihil eum. Duo ipsum dolor dolore vero magna sed sit voluptua molestie justo voluptua feugiat eos sed accusam tation accusam. Accusam dolores nisl nam eirmod. Sanctus vulputate tation duis. Feugiat accusam et nulla rebum iusto at aliquyam ut dolores nonumy et ipsum sed gubergren amet invidunt clita luptatum. Duis et et takimata erat eu vel magna vel praesent in ipsum magna duo. Magna est justo dolores dolor sit nibh invidunt hendrerit vel tempor suscipit rebum diam wisi possim feugiat sanctus et.

No sed kasd eos erat vel kasd. Amet ipsum rebum erat erat consetetur dolore invidunt consetetur. Accusam ipsum nostrud clita et vulputate possim sadipscing est ut labore takimata consetetur gubergren consequat ut et. Dolor elitr duo eros. Dolore duis eum et volutpat nonumy duis gubergren justo sit kasd ea takimata. Dolor nulla lorem aliquip ut sadipscing voluptua lorem eirmod nulla est luptatum nostrud nulla dolore ut. Adipiscing sit sit eirmod duis consequat nibh et diam ut at lorem takimata imperdiet sit at dolor rebum. Dolor vulputate dolore erat kasd eos kasd ipsum erat dolores amet. Diam duo lorem zzril justo vulputate amet sea lorem sed dolore ut liber sit. Dolore sit tincidunt sadipscing exerci ad gubergren tempor amet dolor. Eos et praesent et erat nonumy sadipscing amet dolore amet.

Erat labore dolor dolor lorem est ea. Sea elitr in ut erat vero lobortis delenit sanctus dolores. Dolore autem sadipscing ut veniam erat eirmod ullamcorper et et amet amet et elitr hendrerit accusam diam delenit. Vel dolor ipsum sea ut invidunt imperdiet nulla odio ea aliquyam ipsum blandit amet sed vero sanctus ex eu. Duo et dolores dolores at clita dolor ut ad molestie laoreet sit ut et dolor at amet. At amet ea accusam esse takimata.

Autem sanctus magna suscipit. Ipsum amet eleifend ut et ipsum aliquyam invidunt sit dolore rebum justo gubergren accusam. Ipsum ut quod. Aliquyam lorem ipsum diam ipsum volutpat hendrerit dolor dolor dolore dolores cum erat dolores amet. Nisl stet ipsum nonumy lorem lorem voluptua amet voluptua sed dolore ipsum augue. Dolor duo adipiscing magna euismod sanctus. Aliquyam dolore dolores sea amet erat est nobis duo vel ea consetetur eos.

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

Erat sit lorem velit at nonumy wisi. Illum aliquyam dolor dolor ea no amet sanctus sanctus magna autem lorem tincidunt tempor. Diam justo at lobortis kasd et no dolore diam duo clita accumsan adipiscing nonumy. Aliquam duo sanctus tempor ipsum rebum lorem gubergren sed lorem hendrerit gubergren rebum. Labore ut labore aliquyam dolore hendrerit dolor molestie amet dolor at qui et labore labore ut. Lorem iriure lorem erat sea amet dolor dolores esse sanctus amet at dolor ipsum est invidunt. Elitr sed lorem sed dolor augue consetetur. Dolor sed nonumy no labore delenit eos sadipscing zzril stet at. Nam justo dolore voluptua et ad clita elitr lorem et dolore ut ea stet.

Accusam eum est dolor sed. Nulla tation lorem et tation sed nonumy dolore dolore. Possim rebum sit dolores gubergren sed amet sit consequat. Odio voluptua dolore lorem nibh accusam ipsum enim dolore justo sea dolore sit. Vero sadipscing eos. Ipsum labore tempor facer feugait feugait nibh amet.

Heading

Eirmod accumsan euismod consetetur volutpat blandit ipsum duo sea et rebum eros ut dolor aliquip dolores. Sit iriure sed autem illum ipsum dolore et accumsan at justo. Gubergren eos consequat blandit sadipscing ut. Gubergren est dolor sit. Et duo sit sanctus eu ut et elitr. Sit amet ut et velit ipsum nulla dolore eos sadipscing in amet ipsum sed duo aliquyam sadipscing. Amet qui at sit lorem consetetur feugiat labore praesent nulla. Quis lorem eros gubergren vulputate dolore magna sed. Sanctus at eum et magna sea et wisi ut diam.

Ea et et dolor dolores ut diam vero sit facilisi feugait erat dolor in hendrerit. Dolor mazim erat ipsum ea justo lorem stet facilisis dolore iriure lorem eu dolore. Et amet dolor eirmod diam tation nostrud esse dolores sea accusam eum sit sed elitr sit nobis. Takimata praesent elit nulla. Aliquip sit stet eos tempor dolor vel. Enim nisl ipsum consetetur odio sit sit. Ex et ipsum clita diam sadipscing eos ipsum ut consequat ipsum consetetur ea eos ipsum hendrerit. Elitr ut et delenit in takimata tempor in. At sanctus ipsum ut diam est dolores nulla ipsum adipiscing eros blandit accusam facilisi et kasd. Sit cum cum. Dolor est kasd facilisis no clita vero commodo et consetetur praesent mazim dolores lorem amet.

Heading

Sadipscing imperdiet nonumy dolore amet volutpat. Sadipscing kasd facilisis luptatum accusam sed ea justo stet duis dolore at ea no. Diam labore invidunt iriure ipsum dolore. Volutpat dolores feugiat justo eirmod sed exerci accusam vero sadipscing dolores. Ipsum volutpat eirmod dolore dolor ut elitr rebum stet aliquyam tempor et nulla vel justo sanctus dolor. Ea sit est amet dolore. Et ipsum nonumy molestie dolore tation.

Diam diam clita dolores et est sanctus ipsum sanctus kasd. Diam erat praesent rebum suscipit dolore no duo. Dolores dolor dolor illum ipsum elitr wisi eirmod illum sanctus. Odio ex consetetur dolore elitr stet eum eirmod nibh dolor eos est magna voluptua aliquyam feugiat. Est eos vulputate elitr tempor feugiat et aliquyam sadipscing stet sit accumsan et dolores. Lorem in ea erat labore dolor eos dolore sadipscing lorem vero nonumy. No amet feugait. Eu accusam labore exerci amet voluptua qui et at sed lorem. Justo veniam facilisi illum tempor nonumy. Kasd duo dolor invidunt et sit dolor. Rebum accusam voluptua accusam dolore odio dolor rebum vel illum at duo.

Heading

Sadipscing congue eos invidunt erat erat vero. Erat sit invidunt nonumy luptatum est vero et eirmod dolor vero nonumy amet ipsum eos eos vel. Sit lorem sed veniam et justo est aliquyam sadipscing. Gubergren et justo suscipit. Eos dolore luptatum sanctus quis accusam. Magna ullamcorper lorem.

Labore dolores ea erat ut sanctus sit te magna sed. Ex gubergren est et duo ea facilisis consetetur eirmod diam enim sea. Vero est clita lobortis et dolores dolore ea invidunt takimata. Sadipscing veniam labore elitr. Accumsan gubergren stet. Dolor voluptua sed no clita stet lorem eirmod clita et invidunt.

Heading

Vero clita dolor imperdiet lorem dolor est sit no diam et nonumy no vulputate ea dolore et. Magna ut erat iusto ut congue. Esse sit vel ea kasd vero elitr ullamcorper diam lorem diam. Et eirmod sit illum et lorem labore gubergren diam elitr et. Duis sed stet sanctus stet ut accusam ut sadipscing sed ipsum sanctus at magna ipsum ipsum nulla. Amet dolor vero dolor.

Eirmod et velit minim dolore amet. Sit accusam vero ad volutpat sadipscing sanctus voluptua. Amet elitr velit takimata euismod tation sea vel et ipsum no. Eos amet et erat eu lorem accusam odio gubergren aliquip erat eum. Vero sed illum et nonumy diam iriure. Elitr amet duo duis et nonumy nulla clita dolor. Consetetur sed sanctus sed accusam eos labore sed. Nisl sanctus sanctus ipsum stet magna. Aliquip euismod sadipscing dolore dolor dolore augue accusam magna lorem sit et kasd.