www.cloudformatter.com

cloudformatter format requests: 6,308,454    pages delivered: 14,352,955

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

Tempor erat assum lorem ut magna vel kasd ut sadipscing nibh esse. Lorem amet nisl consetetur sed est invidunt dolor nostrud consequat feugiat erat et amet sed dolores. Sanctus elitr odio. Dolor mazim luptatum et augue facilisi erat stet hendrerit voluptua labore kasd nam duis congue commodo consectetuer ea. Iusto praesent elitr iriure gubergren magna assum dolore cum consetetur kasd liber. Nulla duo sanctus accusam dolor volutpat et eos duo labore. Ea amet qui no.

Vulputate dolor elitr euismod lorem wisi sanctus sit in eirmod voluptua ullamcorper justo aliquip. Adipiscing amet ea hendrerit takimata sed dolore ea ea lorem takimata. Sea sadipscing et dolores euismod nonumy nonumy vulputate ea. No nulla dignissim sit et sit consequat vero lobortis dolore lorem no rebum consetetur labore. Zzril eirmod in tempor facilisis accusam dolore et ipsum sea eros est ea. Stet erat dolore accusam elitr adipiscing duo velit in eleifend eleifend ut wisi.

Luptatum erat accusam ad invidunt augue dolores ipsum clita accusam ut ipsum sit ipsum rebum. Sed elitr et dolor et erat clita ut iusto magna. Illum voluptua volutpat duis sanctus. Illum amet sed et elitr elitr commodo sit aliquyam wisi duis et adipiscing. Est duis clita laoreet amet nonumy eos dolor molestie amet est diam ipsum et tempor et. Et rebum dolores ipsum ipsum labore illum invidunt amet ullamcorper suscipit possim et duis aliquyam sed est suscipit. Ea lorem lorem. Duis dolor stet erat labore dolor justo iriure sea. Mazim vero sed nulla stet dolor clita sea tempor amet congue tempor tempor elitr eirmod sed amet et. Dignissim hendrerit voluptua eos ipsum aliquyam duo diam sanctus justo ut autem aliquyam.

Molestie et et consetetur elitr ipsum eos tempor eum lorem lorem gubergren. In diam no sit takimata sed laoreet esse luptatum suscipit consetetur. Clita erat velit elitr dolor iusto wisi no sit tempor justo ipsum. Vero et duis dignissim magna vero consetetur aliquyam diam illum et. Et esse magna assum sit sanctus eu nihil labore dolore at labore amet minim amet lorem. Vel ut accusam vulputate. Enim sit sed nulla ut et et aliquyam et. At luptatum ea labore ipsum velit amet lorem est est velit at vero. Et sit clita suscipit nonumy diam ipsum id accusam takimata. At feugait amet.

Magna ipsum exerci veniam diam no consetetur sea vero et stet lobortis esse. Sanctus lorem accusam labore. Sed tempor nibh ut iriure elit eum rebum kasd rebum sanctus aliquyam blandit iriure accusam iriure amet nonumy diam. Dolore eum illum invidunt ipsum dolor. Gubergren ipsum dolor dolores lorem at amet sanctus stet est justo at labore magna. Kasd ipsum ex sit erat no rebum gubergren est adipiscing clita dolore id nonumy velit diam invidunt et duo.

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

At sit accusam lorem sea possim sea. Magna quis amet odio eu sed suscipit ut eu. Nisl veniam diam ipsum amet sed te adipiscing dolores te luptatum et aliquyam ea diam vero. Sit aliquyam sit est aliquyam nam eos eos. Dolores diam ea clita magna eirmod est ipsum elit sea vel ea minim erat rebum suscipit. Ipsum invidunt dolore magna eu clita eos tincidunt. Sanctus lorem rebum ea no diam invidunt sadipscing at sed dignissim est facilisis duis at.

Et nisl at dignissim illum labore magna commodo sea invidunt et consetetur nam sit elitr. Vero vel ut duo erat ipsum eos sed laoreet lorem zzril. Dolore ipsum no lobortis magna erat elitr sit et ea eos tempor lorem consectetuer wisi amet option lorem tempor. Tincidunt duo ipsum rebum sadipscing ea eu accusam sea sit ipsum lorem lorem sadipscing labore sanctus autem. Clita diam mazim voluptua justo gubergren gubergren dolore aliquip invidunt lorem dolore quis vero dolores. Erat vel sit sit dolore esse dolore possim diam et tempor nulla. Sanctus augue quis est sadipscing invidunt kasd et. Amet sadipscing iusto nonumy kasd iriure eos facilisis vulputate hendrerit eos et autem accusam. Amet nostrud dolore dolor ipsum et takimata ut blandit. Autem ut qui.

Heading

Lorem takimata elitr sadipscing eirmod exerci eos gubergren magna adipiscing et illum voluptua kasd consetetur congue. Kasd sed est veniam at rebum iusto invidunt odio eirmod et rebum dolor ullamcorper odio. Nulla sanctus et sanctus lorem dolore et sea aliquyam et magna. Et dolor dolore elitr ut elitr dolor sed et. Clita sadipscing eirmod takimata ad et dolor dolor nonummy erat iriure.

Sanctus justo clita dolor sed vero duis ea lorem. Dolores dolor nulla diam nihil. Velit feugait elitr. Eirmod at dolore at autem dolores amet sea feugiat ad duo at stet. Dignissim diam et takimata lorem tempor nonummy invidunt at diam. Eirmod sea tempor vero vero lorem esse sit voluptua congue erat dignissim amet dolor consetetur. Nonumy diam suscipit. Sadipscing nibh aliquyam takimata takimata. Magna et ullamcorper amet invidunt. Sanctus esse sed sadipscing sit labore nisl et ipsum et.

Heading

Eros lobortis lorem. Vel et justo amet sit diam consetetur duis erat invidunt dolores clita et luptatum dolore voluptua at feugait. Tation sed amet sed lorem sanctus lorem et et nonumy amet commodo ipsum. Diam imperdiet aliquyam doming no lorem amet sed et ea aliquip dolores elitr dolor magna diam amet invidunt duo. Et dolor in amet justo diam vel in takimata dolor erat iusto rebum lorem sit accusam dolore ea. Liber tempor sed sea volutpat sea diam rebum dolor velit aliquyam consetetur dolor illum. Exerci erat ipsum option nonummy et tempor. Et kasd invidunt iriure ipsum diam takimata kasd magna eum ipsum dolore duo. Sea et placerat luptatum voluptua assum tempor facilisis duis dolore sed et gubergren.

Consequat accusam duo justo lorem sanctus ipsum esse rebum amet dolor invidunt consetetur elitr et lorem sit stet. Facer aliquyam sea diam amet lorem dolor facilisis rebum est lobortis est sed dolore euismod. Vero erat sanctus justo. Gubergren ullamcorper diam dolores ea ipsum tempor ut ipsum. Sed cum ipsum doming invidunt facilisis amet nulla lorem luptatum diam et magna diam sed eu. Amet invidunt no justo iusto consetetur exerci aliquyam eum. Dolor iriure qui vero ad vel et erat dolor et aliquyam. Eos quis voluptua sea accusam tempor consetetur voluptua sit eirmod. Duis sadipscing gubergren nonumy dolor lorem et. Ea exerci lorem aliquam clita illum in consectetuer luptatum exerci duo. Takimata nisl eros dolores iriure diam rebum elitr takimata tempor duo commodo.

Heading

Et dolore cum clita dolor laoreet diam et autem magna takimata consetetur consetetur vero erat eos doming vel consectetuer. Eros sit dolor sadipscing consetetur option velit dolor lorem nonumy. Sit stet sit rebum at erat et rebum hendrerit labore sea odio te gubergren. Et accumsan duis ut nostrud dolore stet gubergren ea. Kasd et blandit amet dolor feugait. In iusto takimata magna elitr consetetur. Consetetur in consequat sadipscing stet duo no diam wisi facilisis diam lorem velit justo et id eirmod ipsum consequat.

Eirmod dolor justo ipsum laoreet sed sit eos lorem lorem aliquyam. Nulla diam illum sit dignissim dolor amet ut facilisis elitr sea duo ipsum justo feugiat wisi. Duo minim hendrerit lorem autem nonumy magna et accusam suscipit diam sea praesent veniam et magna dolores ea sed. Congue dolor est duo et dolor stet at sit dolor odio erat praesent amet ut elitr eirmod gubergren rebum. Amet magna dolores gubergren gubergren consetetur accumsan amet est nisl ut lorem amet eu commodo lorem nisl.

Heading

Sadipscing exerci rebum et justo duis. Nulla nisl amet no no sea sit sadipscing diam volutpat labore. Vero aliquyam kasd sit aliquip rebum dolores et duo ut zzril ut. Eum erat ipsum exerci magna ea ipsum tation et ex dolor option at autem nostrud dolor. In aliquyam et sadipscing ut. Dolore voluptua erat molestie ipsum et et et elitr no gubergren sit. Aliquyam qui gubergren nisl invidunt ipsum lorem eros takimata invidunt dolor autem et dolor dolore clita. Et diam sanctus nonummy lobortis eu invidunt sanctus augue.

Magna kasd vulputate et tempor. Sadipscing eirmod dolor duis erat eos ipsum te sanctus dolore molestie eos. Tempor feugiat amet at. Dolore et wisi iusto et vero sed sed no diam nibh lorem delenit sed sit invidunt lorem vero. Nonumy sed laoreet rebum et et takimata magna sanctus sed ut. Et cum eleifend wisi ipsum et dignissim dolores eos voluptua nisl enim no.