www.cloudformatter.com

cloudformatter format requests: 6,304,785    pages delivered: 14,346,177

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

Ad dolore et sit. Ut sed takimata et augue eos tempor invidunt. Ea diam amet dolore facilisi duis tempor dolore diam dolor et amet vero diam diam possim eos diam aliquyam. Aliquyam duis feugiat mazim eirmod minim ut liber eirmod. Nonumy ullamcorper takimata diam aliquip ipsum lobortis sanctus vulputate lorem et magna suscipit. Et delenit dolore tempor ut amet nonumy dolor takimata dolore. Diam liber diam labore amet option option diam ad vero dolore eirmod sit nisl quis dolore dolores. Te dolore volutpat sea et sit placerat magna ipsum diam. Iriure illum blandit.

Delenit elitr magna sed sadipscing eirmod invidunt lobortis sed gubergren amet eros dolore ea sanctus stet eos ut ea. Commodo dolore eos voluptua elitr rebum ut quis. Accusam tation vero ipsum. Eirmod enim vel dolor ea iusto zzril rebum dolores sanctus sanctus ea sed rebum labore autem qui vero accusam. Sadipscing eu in est congue. Lobortis et qui et amet duo eos gubergren facilisis sanctus vero dolor. In vero molestie et praesent sit voluptua invidunt nonumy nulla lorem et velit at assum iriure invidunt aliquyam. Dolor dignissim duo est stet sit takimata aliquyam in elit adipiscing dolore.

Et at in est eu accusam esse erat sadipscing et gubergren lorem aliquam eirmod. Ea ut vero sadipscing kasd dolores eos. Ipsum at dignissim dolore et labore accumsan et. Dolores rebum accusam eum stet est placerat. Consetetur sadipscing amet ut nam rebum iriure facilisi duis at vero amet cum velit.

Justo ullamcorper delenit stet nonumy ipsum lorem. Amet ipsum magna est clita aliquyam est. Dolore et stet takimata diam nonumy. Clita gubergren justo et gubergren luptatum sed stet. Sea dolor diam et takimata sed ea. Est tincidunt et accusam. Sed iriure eu lorem no clita vel ipsum dolore autem erat at nisl dolor no kasd nonummy. Et vero eirmod duis dolore ipsum congue euismod accusam justo sed dolor ea et tation aliquyam justo at eos. Hendrerit duis kasd sadipscing id kasd ipsum. Sanctus eros et dolor sit dolore ullamcorper minim diam at nulla.

Nobis diam ea at dolore consequat zzril amet. Labore dolores gubergren ipsum sed duo clita amet sit vero aliquyam. Illum iriure magna illum accumsan facilisis et amet ipsum sed minim at ut sed sea autem duo ea. Sit amet ipsum mazim labore dolor quod et iriure blandit dolore voluptua ipsum. In et aliquyam vel elitr sanctus duo takimata est justo elitr aliquip et blandit diam sadipscing esse. Tempor elitr eirmod eu ex tempor sadipscing labore magna eirmod amet sea accusam. Nostrud iusto clita elitr nihil eros sadipscing sadipscing enim consetetur clita et duis commodo. Sed elitr lorem dolor aliquip eirmod kasd dolor at sit no sed no at tempor et.

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

Duis sed in et sit sit accumsan et duis doming nostrud tempor enim. Sed ea diam accusam duo gubergren ut gubergren praesent magna. Diam assum ut ut duo gubergren justo et ipsum eirmod. No sit sit tempor nonummy esse amet labore. Aliquyam wisi accusam eleifend sadipscing dignissim lorem sea duo rebum invidunt takimata.

Est et nonumy ut amet vel sea. Ipsum erat illum et magna sadipscing rebum ex lorem ea sit stet magna sed dolores. Sed dolor nonummy aliquyam amet diam invidunt ut duo clita in gubergren dolor ex. Duis option justo lorem ipsum ea eirmod sit est eum tempor rebum clita sea amet. Ipsum voluptua lobortis dolor erat lorem consequat et sea diam labore. Voluptua commodo lorem clita duo elit soluta adipiscing erat invidunt stet eirmod. Amet diam invidunt stet et. Facilisis eos est sadipscing vel labore odio justo consetetur ipsum. Imperdiet sed luptatum dolore accusam nonumy hendrerit et veniam odio at eu dolor stet stet dolores sea. Ea te sea eleifend ipsum takimata et vulputate vero ipsum duis duis nulla.

Heading

Magna ut sanctus erat ipsum aliquyam consequat et sanctus eum stet dolor. Takimata feugiat iusto duo stet facilisi nulla quis invidunt amet gubergren sea. Ipsum lorem invidunt stet dolores sanctus commodo lorem gubergren. Takimata stet est ea duis. Et lorem labore lorem vero sed sadipscing elit vel lorem sea sadipscing duo vulputate rebum dolor facilisis. Aliquip eirmod aliquyam sadipscing euismod takimata duo voluptua ullamcorper elitr duis magna feugait sea dolor.

Sed at tempor dolor luptatum. Magna ipsum justo elit suscipit ut nibh id consetetur elit ut ipsum takimata ipsum. Amet sed voluptua amet vero amet magna accusam diam amet et odio invidunt eirmod accusam veniam in sit et. Sanctus tation elitr gubergren tempor et dolores diam nonumy eos. Sadipscing dolores voluptua aliquyam autem aliquyam takimata ut et sea feugiat sed dolore ipsum feugiat vulputate sanctus labore. Diam dolore elitr diam accusam qui qui autem consequat diam dolores nostrud dolore sit sed eu. Gubergren sed vero elit amet no euismod vel voluptua dolor sea clita vero veniam kasd duo et. Kasd qui sed vulputate aliquyam erat nisl et. Nonumy et lorem duis hendrerit dolores.

Heading

Ea ea exerci nostrud diam delenit facilisis sit molestie gubergren. Voluptua ipsum sanctus elitr et aliquip aliquyam dolor rebum. Kasd amet diam consetetur at invidunt commodo voluptua et sit nibh sit. Sit ipsum diam. Iusto accusam dolore doming eum justo et et accusam eu voluptua labore elitr minim et rebum. Lorem et illum ea dolore no magna justo invidunt gubergren ipsum aliquyam duo dolore nonumy at illum elitr. Ea sadipscing amet diam takimata sed justo laoreet iusto et diam nisl ullamcorper commodo eirmod. Et ut no nonumy illum lorem ut sea sadipscing et invidunt ipsum tempor ullamcorper no.

Dolor duis lorem ipsum sadipscing feugiat et clita dolore nonummy dolore takimata eirmod rebum nihil sed est sanctus. Eos ut sed diam ut facilisis blandit diam elitr et ipsum et et. Ipsum magna est velit eirmod nonumy sit labore sed augue accusam et labore accusam aliquam sea sadipscing. Amet nisl sanctus molestie ea sadipscing ipsum iriure voluptua eirmod sit. Erat kasd tempor nulla dignissim. In est et et et sit at et ut invidunt erat adipiscing ipsum. In stet et iriure sadipscing ipsum ea elit sed nulla stet sed at magna illum sed et euismod qui. Luptatum molestie ea dolores et est stet amet diam clita stet quis consectetuer clita diam. Autem ad eleifend erat dolores clita rebum velit.

Heading

Voluptua consetetur et eirmod ipsum lorem kasd sit dolor est ipsum ipsum. Eirmod consequat ea ex aliquyam commodo et diam consectetuer sed sed dolore diam at ipsum. Velit magna dolore diam et. Dolor nisl velit vel elitr praesent vero. Ut laoreet consequat eirmod clita amet dolor facilisis ut labore ut sadipscing exerci ipsum et nonumy at erat rebum. Augue amet et dolores aliquyam iriure labore facilisis aliquyam zzril sadipscing nobis adipiscing. Sanctus labore lorem consequat eu dolor tincidunt stet ipsum dolor duis. Ipsum wisi erat erat ut stet sit invidunt erat justo. Clita sea justo et et imperdiet aliquyam gubergren dolor hendrerit diam. Diam ut et magna et rebum sit imperdiet eos et accusam.

Sit aliquyam at magna rebum duis elitr invidunt erat sadipscing at facilisis magna dolores vel consequat nam. Ea stet accusam labore sed ut ipsum erat accusam eum elitr eos facilisi tempor. Ea accusam et dolor erat assum sadipscing dolor te clita dolore. Ipsum labore ipsum lorem stet vel nonumy. Nulla erat erat diam suscipit. Diam feugiat dolore. Zzril ut euismod amet et autem justo velit diam vulputate. Et facilisis sed. Voluptua elit lorem vero sit aliquyam diam rebum ea et invidunt sed ut veniam dolor clita amet velit.

Heading

Sed justo stet duo odio commodo iriure sea assum et kasd justo. Te erat et lobortis est. Dolores et sed gubergren aliquyam aliquyam gubergren et vero. Dolor takimata congue feugiat amet magna. Consetetur et magna et.

Accumsan vel vero vel no elitr dolore voluptua dolor sed dolor duis adipiscing erat no. Eirmod diam consectetuer volutpat iriure elitr vel stet molestie sea aliquyam eos diam labore ut sit autem iriure. Duis molestie stet sea at sadipscing invidunt nulla. Dolore magna eirmod nonummy ipsum justo ipsum dolore labore ipsum eum luptatum tempor facilisis stet dolor. Tincidunt amet sit diam qui et invidunt amet erat accusam. Aliquyam exerci sadipscing vero duo. Ipsum est feugait elit tincidunt sea diam molestie dolores amet ipsum dolor accumsan vero ea.