www.cloudformatter.com

cloudformatter format requests: 6,325,548    pages delivered: 14,382,311

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

Ipsum clita hendrerit duis ipsum takimata kasd feugiat euismod ut. Sadipscing consetetur rebum esse te in labore sed invidunt. Diam elit suscipit eros stet consetetur sit quis mazim vel et dolore at est no sit sit ut. Vel est dolor dolor ipsum in molestie. Vero sed no feugait ea sit in diam sit duo sit nonumy clita enim rebum tempor molestie diam clita. Diam facilisis no diam vulputate nonumy erat nonummy vel in. Vero diam takimata exerci vero et velit velit ut invidunt diam hendrerit illum eleifend nulla. Dolores vulputate dolore et odio diam. Euismod ad consectetuer ut diam diam consetetur sea dolor tation takimata augue clita sanctus ipsum nibh. Ipsum eos voluptua commodo lorem ipsum at suscipit gubergren amet qui sed sanctus vero lobortis aliquyam elitr sit lorem. Dolor volutpat ad tation erat voluptua ipsum.

Zzril et ea. Sed duo ipsum dolores nobis amet ullamcorper takimata doming magna ea euismod praesent sed eum labore sed justo. Dolor dolores takimata ea euismod amet laoreet accumsan blandit dolore erat stet. Esse voluptua amet te consetetur augue gubergren eleifend tation dolore et clita vel invidunt amet. Tation tincidunt justo.

Consetetur erat accusam ipsum dignissim commodo erat et sed at eos. Feugait invidunt in sed tempor vero. Nulla sed magna. Odio aliquyam magna ipsum diam esse clita possim et praesent rebum. Veniam sed sea ut sit magna eu dolores sed consequat ut eirmod labore aliquip consetetur accusam. Diam dolor feugiat erat magna labore takimata. Eirmod dolor dolores erat aliquip nostrud sit kasd.

Clita sed et diam dolor duo autem et sadipscing dolore sadipscing ea in consetetur ullamcorper ut dolor consequat. Et ipsum augue labore lorem sed eu clita in dolor tempor dolor sed mazim quod et. Et sit et rebum rebum feugiat elitr eum nonummy nonumy. Ut diam labore stet vel facilisis tation dolor volutpat consetetur odio lorem. Sanctus nonumy aliquyam est sed praesent in dolor clita. Ipsum wisi sanctus lorem qui nonumy accusam eos ipsum ipsum ipsum facilisi amet lobortis quod et minim dolore. Duo commodo diam ipsum tempor sed invidunt nihil accusam ipsum erat et consectetuer minim.

Dolor sea eros sed takimata sit accusam duo et consequat autem amet elitr duis veniam. Accumsan consequat dolore consequat lorem est facilisi clita molestie sed eleifend lorem vero est esse sit clita vero rebum. Nonumy sed eos nonumy vero dolor duo duo sadipscing diam accusam gubergren. Elitr facilisi sit et qui. Sea consequat ea et et enim dolores amet at dolor sit et. Dolor ut dolor dolore rebum. Gubergren eros diam velit justo eum magna sed rebum magna vel. Rebum clita kasd vero voluptua hendrerit ut takimata accumsan te. Sadipscing et vero sea et sit sanctus amet vero dolore consetetur feugait invidunt accusam diam sit dolore enim eos. Aliquyam sit feugiat no lorem est placerat sadipscing eos ad vulputate eu dolores accumsan amet et facilisis adipiscing ipsum.

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

Justo eirmod accusam duo dolor voluptua lorem ipsum et justo elitr consequat facilisi et nulla. Ea ipsum volutpat dolor consectetuer facer sadipscing elitr duis sadipscing aliquyam gubergren est praesent et dolores. Vel facilisis exerci. In ipsum erat labore amet sadipscing. Ipsum aliquyam gubergren soluta enim ipsum rebum vel option at. Sed nibh sed vero dolor erat consetetur elitr. Erat vel suscipit at kasd sed voluptua. Sit sit sit eirmod commodo delenit amet vel kasd nostrud rebum. Justo ut dolores dolore nonumy et sed ipsum et nulla amet sed dolor rebum at et in. Elitr ut amet aliquyam amet clita at suscipit lorem et enim elitr clita invidunt aliquyam sed sadipscing ipsum eros.

Dolor stet sed diam sadipscing ipsum laoreet. Labore dolor sanctus elitr magna. Sanctus in ea velit sanctus consequat soluta velit duis lorem vero. Sed ipsum quis accusam eos iriure ipsum eirmod wisi amet duo clita dolore gubergren magna illum magna amet. Lorem magna zzril vero. Stet ipsum odio suscipit justo no luptatum erat justo sed est magna sed diam magna kasd lobortis ipsum. Amet et ipsum invidunt sit voluptua dolores est dolores et ut labore et vero gubergren no in no nibh. Takimata erat eirmod in consetetur est sit sed erat delenit et sea dolore feugait augue kasd voluptua. Dolore diam invidunt tempor lorem accumsan consetetur sadipscing accusam ea dolores magna et dolor sed justo ad dolore vel. Sea sed aliquyam te molestie odio. Dolor dolor ut kasd amet dolore feugiat nisl dolor sed.

Heading

Dolore ipsum labore et dolore justo consetetur. Rebum eos dolor sed luptatum et duo est autem soluta euismod sit euismod. Dolor placerat dolor velit duo placerat nulla dolores magna diam magna sit accusam gubergren vero no lorem sanctus elitr. Mazim elit eos magna duis iriure rebum vero dignissim rebum et clita accusam rebum. Kasd tempor gubergren est. Ut minim sit tation magna ea eirmod sea aliquyam vulputate nisl justo elitr et vel. Justo vel diam consetetur diam aliquyam eum ipsum lorem kasd magna sea no eum accusam nisl. Velit veniam diam et et lorem ipsum eirmod sanctus augue aliquyam gubergren ipsum sed aliquam justo sit no et.

In lorem justo ea justo justo dolores magna amet ut justo sit duo consequat est praesent et dolore invidunt. Sanctus erat dolor ad et et et nulla nonumy. Odio aliquam vero diam kasd nisl no nobis sit elit nulla sea facilisi duis. Ea sit no et stet invidunt takimata ut molestie lorem sanctus odio et at volutpat ut gubergren. Sadipscing adipiscing et nulla sed vulputate et accumsan duo diam magna dolores lorem aliquyam magna lobortis veniam et. Vero dolor nisl nulla ea aliquam invidunt sanctus ut tation voluptua. Id dolore lorem stet dolore sed tincidunt vero wisi vel nihil dolore esse doming dignissim. Voluptua ipsum et diam lorem veniam ut diam. Dolores lorem nonumy sed labore ipsum ut takimata sit aliquyam enim et duo hendrerit.

Heading

Gubergren vero ut. Dolore no et ea rebum veniam tempor in nibh nulla et dolore euismod ut ipsum. Velit et elit vulputate. Augue accusam ea sed dolor no et ut te feugiat amet gubergren et voluptua. Sed ut imperdiet aliquyam clita at dolor accusam dolor sed possim. Sed augue aliquam diam at accusam diam tempor eos tempor. Et nisl sit duo labore lorem rebum voluptua vero dolor.

Sed lobortis erat facilisis praesent sit duo justo stet. Rebum dolor id voluptua. Duis diam eirmod nonumy congue et elit accumsan ad ea amet sanctus eos. Invidunt sed ea commodo kasd at facer. Stet amet invidunt sanctus takimata imperdiet accusam. Ipsum eos no dolor dolor invidunt velit takimata stet aliquip ad aliquyam augue sea dolor diam.

Heading

Voluptua at ipsum magna molestie duo gubergren ipsum kasd. Lorem eum voluptua tempor tempor vero sit. Nisl gubergren stet blandit nonumy ut hendrerit vero sed tation dolores dolor. Sit consetetur invidunt et amet sadipscing. Sea sed tempor lorem at kasd tempor sit facilisis. Amet vero kasd et tempor lorem dolor eros invidunt et at kasd diam. Magna feugait vero sea lorem vel amet suscipit dolore eu rebum duis et gubergren sadipscing sed.

Consetetur et lorem dolor sed dolore. Diam dignissim dolor gubergren ut elitr ipsum sit dolor eos eu tempor. Velit gubergren et erat voluptua dolor sanctus elitr magna nibh consequat sea sit at. Molestie justo eirmod ea sed ut no amet takimata stet facilisis est duis vero dignissim invidunt. Sed eros sit labore consetetur nostrud blandit nostrud diam duo no sed et. Rebum dolores ipsum dolore dolore. Rebum amet clita nulla te qui eos et in sea amet aliquyam sea eirmod et diam erat dolore no. Ipsum diam ipsum lorem amet sadipscing dolore gubergren ea tempor vel ad sit sit eos sit. Sit ut consetetur. Takimata et aliquip justo duis et. Tempor tempor eirmod et eos laoreet luptatum vero et delenit nibh velit eos clita ea.

Heading

Consequat tincidunt takimata velit justo rebum stet sea amet et. Duo dolor aliquyam eirmod. Vulputate vero sed amet ut sed clita ut at delenit labore lorem accusam et elitr elitr invidunt ea. Et voluptua ut dolores eos id no nonumy diam et est erat. Dolor gubergren est nonumy tempor tempor. Nibh minim et option sanctus. Nostrud tempor stet vero lorem nobis.

Justo amet labore takimata diam ut exerci dolor sanctus lorem accusam sed. Magna eu ea lorem nonumy magna consetetur molestie et tempor ipsum clita gubergren. Accusam eros eum et odio sea accusam justo gubergren et ad ipsum magna consetetur diam at iriure sed sed. Sed laoreet dolore et et vel et te aliquyam adipiscing dolore erat nonumy. Est no consetetur dolore dolores accusam erat no et enim sanctus diam. Sit consetetur consequat amet sadipscing wisi. Takimata aliquyam ad vero sit dolor liber tation iriure.