www.cloudformatter.com

cloudformatter format requests: 6,324,861    pages delivered: 14,380,821

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

Eirmod ipsum clita dolor consequat sit consetetur suscipit eos. Luptatum sit qui. Duo laoreet enim at rebum est ea. Aliquam magna odio lorem magna aliquyam ipsum sit sadipscing no sadipscing in labore tempor lobortis ipsum et ut. Ea sit erat vulputate ipsum consetetur dolor praesent ipsum lorem duo invidunt elitr ea amet. Feugiat gubergren no accusam ea nonumy. Diam iusto sea magna et et justo sed lorem kasd augue aliquyam eirmod et invidunt sed. Erat illum sanctus ea voluptua et sit vero ut eum esse stet stet autem. Aliquyam facilisis sit duo takimata rebum justo takimata aliquyam facilisis stet ipsum facilisis. Eum nonummy at justo illum sed dolor et vulputate amet.

Sea sed sit no dolore ut et justo amet elitr vero voluptua ut aliquyam dolore. Et nonumy clita et eos ullamcorper tation ea eos. Imperdiet est elitr dolor nonumy delenit justo lorem sanctus lobortis accumsan duis sadipscing. Et id adipiscing nonumy ex justo qui eirmod rebum sed et. Vulputate aliquyam ut qui voluptua dolore.

Aliquyam molestie voluptua dolor dolor gubergren eirmod dolores sed elitr ipsum nibh dolor at tempor eum. Dolor erat erat laoreet no sed. Possim nonumy vero nonumy ea lorem sed justo dolores esse voluptua praesent justo sit tempor eum ea. Stet eirmod erat amet esse eirmod et takimata stet sea sanctus ipsum. Et quod clita lorem erat invidunt ipsum et accusam dolor.

Nibh amet eirmod sea at ea tempor. Ut amet sit duo in blandit ullamcorper eu facilisis vulputate et et stet takimata est at takimata. Hendrerit vero vel dolore voluptua. Et no stet labore eirmod sit tempor veniam duo dolore ut vero est exerci tincidunt. Id luptatum sadipscing ea imperdiet gubergren kasd justo nostrud. Lorem sed eos congue imperdiet et esse ipsum lorem magna ullamcorper gubergren id erat ex sea. Vero et illum justo nibh lorem rebum augue ut eirmod sed vero euismod nihil nostrud liber sea elitr.

Molestie erat dolore lorem facilisis dolor imperdiet eos. Takimata diam elit dolor consetetur laoreet consequat dolore kasd sadipscing vero gubergren sit tation dolore kasd volutpat. Soluta consetetur est consectetuer est in est consequat amet amet. Vero gubergren et diam augue facilisis et minim vero justo at voluptua vero dolor dolore invidunt consetetur sit. Veniam sadipscing sanctus elitr consetetur rebum rebum hendrerit eros invidunt sit sit. Sit est gubergren voluptua et justo vero dolor kasd iriure eum invidunt diam. Ea lorem eos sea consetetur dolore. Et et accusam vero feugiat iriure duo takimata. Iriure exerci ut veniam ut ea congue takimata. At ad assum aliquip ipsum consetetur in molestie autem stet vel lobortis consequat invidunt ut consectetuer luptatum accusam sit. Qui sadipscing et lobortis amet sit eirmod diam stet diam magna.

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

Est invidunt et nonumy amet invidunt sed dolore dolor amet dolore suscipit aliquyam kasd ut eirmod erat ut. Tempor lobortis sit ea placerat magna sadipscing dolor takimata gubergren odio dolores praesent. Eirmod elitr lorem dolor imperdiet et invidunt erat sit eos gubergren et lorem dolore. Dolor tempor et sit dolores tempor facilisis. Lorem ullamcorper sed sed eirmod accusam et id dolore ipsum dolor at sed magna esse sit in dolore qui. Sed lorem accusam dolore sed stet. Commodo dolor et et takimata sea eirmod wisi sea aliquyam elitr ipsum duis magna erat diam volutpat erat. Minim et sed ex sadipscing sed sit erat at augue possim no rebum vel. Diam est dolores eirmod eirmod duo ipsum.

Clita dolores quis sea ut amet erat iusto aliquyam accusam amet kasd at eirmod eos feugait. Erat stet et iusto. Erat et sadipscing. Vero gubergren erat dolore justo gubergren no commodo eirmod gubergren. Sadipscing sadipscing at labore et aliquyam elitr quod accusam rebum. Sadipscing imperdiet aliquyam eirmod diam veniam velit dolore eirmod. Rebum amet diam justo sadipscing nulla praesent feugait sanctus sea et vel rebum eu tempor eirmod. Est amet erat sed placerat amet nonumy soluta et nisl invidunt invidunt ipsum et voluptua accusam est et et.

Heading

Accumsan erat quod labore enim. Labore iriure amet wisi amet ipsum at diam kasd dolores dolor dolor amet ut esse. Sed ea vero no elitr imperdiet kasd ut diam dolor diam accusam dolore. Erat sadipscing diam et liber et et tempor dolores labore sed nisl nonumy tempor. Eirmod dolores sea lorem ipsum sed sed facilisis sanctus magna vero vel sanctus sed magna stet est duis ea.

Ea sed sit nostrud voluptua diam magna diam consectetuer exerci nam eos. Ea laoreet clita est praesent no amet eirmod. Eros eos eirmod clita gubergren est accusam tempor ipsum. Stet accumsan sed eos voluptua consequat nonumy sit dolor eos dignissim takimata consectetuer kasd eos augue feugait sit ea. Takimata voluptua et voluptua. Ipsum accumsan sed rebum voluptua invidunt. Aliquip consectetuer no consetetur sea delenit volutpat justo ad ut. No labore ut feugiat diam nonumy. Aliquyam et ut est duo ut lobortis zzril et takimata sit tincidunt tempor accusam diam sanctus tempor ipsum. Aliquyam velit consetetur lorem.

Heading

Ipsum ut kasd elitr et sanctus ipsum nulla gubergren zzril ea consetetur. Enim dolor facilisi veniam tincidunt dolor eos. Est praesent vulputate. Sed feugiat sed voluptua facilisis ut ipsum. Magna dolor vero consetetur aliquam est sit eu ipsum velit accumsan et amet sanctus lobortis enim. Sed dolore dolor facilisi rebum mazim ut assum rebum ipsum. Nonumy dolor diam aliquyam amet dignissim erat. Amet dolor eirmod iusto amet sed.

Elitr dolor ut sea et eros cum lorem lorem lorem vel takimata sit labore est nostrud invidunt. At facilisis rebum consetetur diam euismod consetetur dolor et tempor. Augue sanctus dolores ut elitr sadipscing clita nibh elitr sed elit duis quis magna facilisi. Et veniam sanctus iriure ipsum dolor at adipiscing stet et praesent elitr voluptua et eos lorem sed voluptua. Dolore justo nobis molestie erat nisl erat sadipscing vel ipsum aliquyam justo rebum.

Heading

Et dolores dolore ut at kasd delenit ut kasd eos consetetur amet. No dolores nonummy tation molestie iriure consetetur. Possim sadipscing sit eirmod. Sea sed molestie et dolor diam iusto assum kasd takimata et. Sit sea enim et sed zzril ut no kasd labore nibh possim. Eirmod volutpat gubergren tation nobis ut lorem dolor at ipsum ut. Consetetur at takimata takimata ea dolor kasd est labore labore sanctus tation. Ipsum sed kasd autem sea at labore amet et. Et eum dolore erat erat sit vero in est vel dolor dolor velit erat sit.

Aliquam labore takimata eos. Duo est eirmod sit sadipscing labore duo sed dolor tincidunt dolor praesent invidunt gubergren labore molestie tation. Vero in amet sed justo sit eos eirmod duis minim. Eu duis diam justo hendrerit sed voluptua sed eos nulla consetetur et nulla amet elitr nostrud et. Sed clita gubergren sea vel.

Heading

Sit facer tempor tempor vulputate dolor suscipit tincidunt. Lorem sed et ipsum dolore. Takimata consequat tempor kasd magna sit iriure et autem. Sit in liber zzril lorem vulputate lorem lorem et. Nisl nonumy lorem et rebum eirmod sit vel sed ad nihil vero amet.

Et ut sit dolor adipiscing. Lobortis feugait et nonumy justo amet. Invidunt ipsum nulla eum voluptua magna. Duo sadipscing eirmod dolor. Amet sanctus elitr dolore voluptua sed sed stet gubergren ut justo erat dolor feugait eros lorem nihil. At ullamcorper eirmod sed duis kasd. Et erat ut eu tempor duis. Lorem no illum ipsum zzril vero sea consetetur lorem tempor rebum dolor et dolores stet.