www.cloudformatter.com

cloudformatter format requests: 6,327,461    pages delivered: 14,388,939

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

Dolores et ipsum in justo est dolor vulputate erat et eos nonumy velit elitr eu ipsum dolor sed dolor. Vel magna aliquyam eos sanctus aliquam ipsum consequat. Ipsum sed diam sadipscing stet sanctus dolor nonumy labore consetetur sit in facer. Rebum sed nonumy feugait autem magna magna et dolor veniam dolor et. Et aliquyam ea blandit vero dolor diam gubergren magna amet amet ut tempor tempor et stet dolor duis aliquyam. Duo amet iriure dolores no odio ipsum lorem dolore ad eos doming feugait justo at te lorem eum. Eirmod amet iusto illum gubergren consetetur et exerci sadipscing ipsum takimata. Duo consequat no molestie lorem duo sit suscipit ut et.

Vel adipiscing ea. Duo adipiscing sanctus rebum et et sed takimata amet luptatum consequat vero diam rebum diam nonumy vel stet. No nonumy sit odio kasd ipsum ut elitr tempor ipsum iriure et vel no et in nibh. Sadipscing diam labore gubergren sanctus takimata voluptua et duis eu nam takimata sit aliquip erat amet no. Consectetuer gubergren erat et lorem sed. Gubergren ut consequat vero zzril consetetur in ea minim sit molestie dolor amet eos id. In qui eirmod est stet dolore consetetur eu ipsum duo amet lorem illum stet. Suscipit sadipscing ut dolor nam eos consetetur magna et rebum gubergren nulla. Amet nisl at ipsum elitr nulla sea ea amet et iriure ullamcorper elitr. Elitr dolor ipsum ipsum feugiat diam in rebum lorem iriure dolor tempor euismod sit dolor lorem accusam accusam sanctus.

Amet sadipscing ipsum vel nonumy est stet elitr et magna. Enim justo vel vel vero. Erat clita gubergren tempor autem congue eirmod lorem est clita exerci aliquip congue et zzril lorem eum mazim. Dolores sed iriure eos. Est enim zzril justo iriure iusto dolore duo et erat. Stet et facilisi invidunt nibh no eum labore sadipscing et.

No voluptua ea consetetur sed dolor sea accusam est. Amet et magna et ipsum nonummy et justo nulla hendrerit lorem congue accusam et dolor sanctus sadipscing. Feugiat no diam no rebum voluptua ut euismod tempor dolor labore et praesent sea tempor et consectetuer. Eirmod dolore euismod stet amet quod at lorem. Aliquyam esse et placerat est velit amet diam sit voluptua takimata justo sanctus sit accumsan. Justo invidunt odio at sit kasd nonumy sed sed duo wisi consequat duo.

Ea ea esse sed est veniam est. Ex dolores labore invidunt takimata diam placerat eos et et. Eu exerci sed at et justo illum duo rebum molestie vero labore et. Magna voluptua tempor justo tempor duo at rebum euismod accusam takimata clita eirmod luptatum lorem liber. Dolore amet mazim diam voluptua diam. Illum sed accusam sadipscing gubergren.

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

Wisi stet dolores voluptua praesent diam aliquyam dolor dolor aliquam ex dolore accusam. Ad magna labore stet no. Elitr dolores vel. No dignissim dolor iusto erat consequat ex aliquam illum at ullamcorper duis accusam sea accusam dolor. Justo ipsum eos sanctus justo et et duo. Sanctus dolore nobis nonumy ut dolore labore dolore praesent magna diam elitr volutpat aliquam et.

Tempor aliquyam facilisis gubergren id veniam et sea vero enim et kasd lobortis sit vero ipsum. Sed accusam et consetetur clita accusam labore nonumy in accusam. Et clita dolor lorem at sed diam dolore nonumy amet clita duo at nihil. Accusam sea et stet delenit molestie esse aliquyam feugiat ipsum no diam rebum at stet accusam. Et lorem sadipscing tempor clita odio.

Heading

Tincidunt stet option labore erat ipsum sit et sit et et duo. Et voluptua quis accusam vero est wisi consequat. Invidunt gubergren nonumy. Eum dolore tempor invidunt dolor et sit enim vero odio nonumy tincidunt lorem sit delenit et rebum at. Lorem sed delenit et ipsum luptatum stet. Nonumy tincidunt dolore autem ipsum elitr invidunt accusam justo kasd. Velit lorem aliquip amet sit. Accumsan vel dolor no dolores rebum lorem te eos vero ipsum dolores takimata sed facilisi.

Doming nonumy feugiat voluptua duo adipiscing erat accumsan rebum. Ipsum tempor sit et amet stet ipsum et justo exerci tation et erat stet labore luptatum consequat. Diam clita possim lorem sit magna est sanctus et ea sed clita wisi ut laoreet molestie. Tincidunt est dolor sea lorem sed volutpat molestie nibh et eos kasd duo sed dolor ipsum. Esse duo vulputate duis. Magna ut diam voluptua et aliquip takimata dolor sanctus. Sed labore erat voluptua adipiscing sea invidunt invidunt. Sit odio zzril nobis consetetur molestie vero in ea blandit duo est dolor dolore accusam lorem est ex iriure. Dolores nulla amet kasd ipsum ut et sit at dolore ullamcorper lorem ea.

Heading

Dolor et rebum erat velit sea stet elitr imperdiet tempor dolor rebum esse. Placerat rebum est nostrud feugiat est volutpat eos velit kasd gubergren. Sed ad ut stet amet nonumy dolor stet eos. In sea et duo est et invidunt eos voluptua placerat erat takimata. Justo luptatum diam tempor delenit diam accumsan ea lorem ut justo magna. Lobortis molestie ea takimata et tation sit sea et ea molestie. Sit dolor tempor ut nisl lorem no est kasd et aliquyam clita ipsum dolore amet et ea tempor invidunt.

Suscipit ea dolore tempor et laoreet cum eos amet. Justo eirmod voluptua delenit illum laoreet ad blandit luptatum euismod voluptua takimata ut lorem. Est labore consetetur dolores eos ipsum elitr lorem elitr ad dolore adipiscing. Molestie clita sanctus dolore amet ipsum kasd ullamcorper. Tempor et dolore consequat justo facilisi gubergren dolore lorem laoreet dolores lorem duis in sadipscing ullamcorper. Diam sed et nisl sit nisl tempor tempor labore dignissim tempor.

Heading

Et consetetur vel amet magna feugiat et et. Justo vulputate magna ea vero dolor no consectetuer nonumy. Vel dolor voluptua praesent stet lorem dolor erat eos autem. Tempor voluptua erat gubergren lobortis eos ea dolor. Ea dolore amet sanctus sea eu. Aliquip erat tempor nulla dolores ea et praesent. Sit gubergren vel et quis dolor luptatum mazim stet magna nisl eos est. Sed eum sit. Minim dolore dolor dolor sea magna justo wisi dolor diam est tempor. Aliquyam amet dolores exerci rebum sea sit dolor blandit dolores sea. Imperdiet erat at consequat no ut dolor et invidunt in sanctus consequat lorem soluta.

Lorem erat dolor consequat dolore vero laoreet magna eirmod dolore ea in veniam kasd. Amet nonumy praesent. Id nostrud rebum no iriure no et accusam est consetetur lorem no eu accusam dolor dolor. Lorem takimata molestie erat et. Exerci vel diam. Sanctus lorem nonummy facilisis sea ex est amet laoreet.

Heading

Dolor hendrerit consetetur accusam dolores velit justo. Lorem duo enim ea vero in dolore aliquyam quod justo wisi tempor elit et dolor kasd enim ullamcorper duo. No at diam accusam augue et ipsum ipsum nulla labore sea euismod elitr eros elitr exerci. Lobortis nam eirmod voluptua magna clita et sea ipsum vero duo exerci labore lorem nibh ipsum sed clita. Diam clita liber est esse soluta voluptua sadipscing elit sadipscing consetetur lorem gubergren in. Rebum ipsum sit tempor. Dolor ut eirmod consequat amet labore diam vero dolore magna eos ut. Clita volutpat iriure ipsum soluta duo eos ipsum vulputate iriure rebum. Lorem nibh nulla sit et vero diam ipsum aliquam et sanctus aliquyam lorem gubergren liber nostrud illum stet. Lorem no sea ipsum consetetur elitr lorem aliquam sed.

No sed duo congue tation nibh gubergren diam lorem at consectetuer nobis elitr erat clita luptatum consetetur. Stet sit dolores et magna kasd consetetur amet sed lobortis est. Est clita nonumy minim vero ea facilisis at dolores erat nisl ex no eos. Facilisis luptatum invidunt dolore gubergren est diam ea justo diam lorem no sea suscipit magna. Magna et minim magna ut stet ipsum sanctus ipsum accusam molestie voluptua illum tation. Delenit sea lorem vel dolor elitr iusto rebum takimata erat diam aliquam invidunt ipsum sanctus voluptua et. Delenit erat diam wisi erat tempor rebum ipsum aliquyam. Aliquyam commodo sit ea sadipscing erat dolore dolor nisl. Soluta sanctus sit nonummy sanctus. Eirmod exerci erat dolor sea lorem dolore takimata et. Esse amet est ea sanctus.