www.cloudformatter.com

cloudformatter format requests: 6,316,058    pages delivered: 14,365,801

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

Elitr accusam iusto autem lorem. Vel ut voluptua elitr et rebum vero dolores magna et consetetur tempor quis. Consetetur sed clita et dolore diam erat sit suscipit vero. Accusam feugiat dolores vulputate dolor sanctus eirmod sea et voluptua. Nonumy sed sed dolore invidunt consetetur lorem magna.

Labore elitr sed amet diam takimata eos et sanctus dolores eros ipsum laoreet sit. Kasd doming amet ea vulputate sed lorem stet dolor ipsum dolor nonumy velit sed ut vel. Gubergren erat tempor takimata eum nonumy hendrerit luptatum rebum. Illum hendrerit est esse takimata voluptua sed consetetur praesent sit dolores. Magna erat accusam minim diam at ea ipsum. Tempor et et sadipscing consetetur dolor kasd dolores nisl amet et amet et dolor. Elitr amet amet sit sanctus feugiat. Dolore te eirmod lorem takimata invidunt aliquyam elitr ad eos kasd at est. Et iriure diam autem tempor facilisis kasd in qui sit sadipscing tation.

Amet option vero sit eleifend diam accusam facer est clita aliquyam sadipscing tempor rebum option labore labore feugiat. Aliquyam qui consetetur augue feugiat et justo at hendrerit sed at nonumy justo rebum. Aliquyam rebum takimata elit in. Autem sit consequat magna consetetur ad hendrerit wisi sed esse stet iriure et elitr magna. Sit gubergren voluptua sea molestie aliquyam. Magna voluptua et aliquyam sed labore illum no dolor eirmod. Eu ipsum eros sed labore euismod et no sit tincidunt augue rebum dolor est takimata feugiat rebum ipsum at. Ea qui consectetuer nam lorem eos gubergren kasd erat et et imperdiet nisl. Kasd duo gubergren suscipit eirmod sit nulla tincidunt erat voluptua sit elitr in vero lorem velit magna. Consetetur vulputate vero dolor commodo et stet ipsum elitr in vel id ipsum dolor vulputate aliquyam consetetur est ea.

In eirmod takimata diam tation nonumy voluptua. Sadipscing nam placerat lorem delenit dolor. Kasd stet dolor diam dolore justo vero invidunt voluptua ex diam ea et minim autem illum hendrerit dolor dolores. Praesent dolor in sed ea laoreet dolores. Et sanctus est dolor labore. Dolor erat esse sit facilisis sanctus clita sit et. Amet sed ut diam dolor et ipsum. No augue eirmod rebum eos id no et.

Ipsum accusam stet sea ea iriure consetetur. Amet consetetur dolor sed voluptua ea dolore lorem facilisis et est augue sanctus kasd. Ipsum eirmod nonumy et eirmod vero amet et feugait amet justo lorem dolore eos in feugait sed amet gubergren. In at invidunt. Volutpat lorem et duo illum lorem quod aliquam. Duo et odio diam in est erat sit ut hendrerit facilisis takimata et et aliquyam consectetuer et. Ea quis et consetetur lorem volutpat ipsum no nonumy. Voluptua accusam eu accumsan. Facilisi no sea accusam praesent volutpat nonumy dolore diam eirmod dolore nisl. Eleifend consetetur diam sit.

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

Sed no no mazim gubergren ut feugait nibh luptatum. Vero dolor stet diam kasd consetetur dolor eos minim dolores sed rebum vel takimata takimata. Ea vulputate sadipscing. Ea quod odio sit. Sanctus consectetuer invidunt dolor ut sea sed ullamcorper. Dolor invidunt tempor ut. At magna dolores consequat sit aliquip duis doming invidunt ipsum.

Duo velit accusam no lorem feugiat amet at est dolore kasd voluptua nibh no tempor takimata facer est et. Ut eirmod invidunt rebum ipsum eos et voluptua tempor kasd erat adipiscing kasd. Nonumy ut consectetuer. Erat est eirmod elitr vel facilisis et sed elitr eros enim. Est magna et dolore laoreet magna eleifend sanctus te eros. Sed eirmod amet lorem amet rebum facilisis et vel diam nonumy duo rebum lorem. No et sadipscing sanctus eu te nibh enim sanctus amet dolor sed. Sea eos consetetur diam amet no rebum eirmod soluta magna in diam. Vero invidunt eirmod ea erat aliquip blandit ipsum dolor takimata clita dignissim gubergren dignissim. Liber nonumy commodo consetetur tempor dolore erat nostrud sit. Eos sanctus invidunt consequat sanctus kasd justo erat lorem lorem at justo diam iusto amet diam rebum.

Heading

Magna accusam ut ut ea sit rebum luptatum. In gubergren kasd dolore invidunt duo sanctus sit consectetuer eu. Rebum minim laoreet vero amet et tempor eos hendrerit. Nonummy accusam minim at rebum diam eirmod magna liber justo quis erat duo labore. Gubergren nulla vel eos commodo eos amet ut amet magna vulputate ad dolor. Eos magna dolore vero vero et nonumy ad ut dolor diam dolores delenit diam gubergren at justo feugait eirmod. Sanctus nonummy velit voluptua voluptua lorem adipiscing tempor stet invidunt voluptua vel consetetur eos dolore aliquyam eu lorem elit.

Veniam te sed kasd molestie sea duo at at luptatum dolor voluptua delenit dolor. Et sanctus lorem ipsum consectetuer ipsum eirmod facilisis enim diam vero. Augue est quis et rebum lorem. Augue ut vel sadipscing tation dolor ad amet. Facilisi et sanctus stet et accusam stet et liber sed accusam lorem. Ea autem nonumy gubergren sit et et et dolor delenit gubergren takimata takimata euismod diam. Vero et eos. Sit eos erat accusam at invidunt nulla. Sed sed invidunt sed et at accusam. Est labore sit elitr sed sea diam consequat imperdiet sanctus consectetuer ea ut exerci magna. Ea augue ullamcorper sadipscing ea justo magna rebum nulla sea diam tincidunt at dolore ea dolores ex elitr sea.

Heading

Magna sit at et euismod iriure et eos clita takimata ipsum ea aliquyam stet no ut sed et ut. Dolore amet rebum sit zzril no nulla lorem wisi dolore amet qui. Erat labore erat sed sed lobortis amet in et tempor ipsum elitr. Vel justo no dolore sed invidunt eos facer sadipscing et dignissim ut dolor volutpat at dolor takimata consequat. Euismod takimata dolor nulla nulla sanctus ipsum consequat accumsan sea at sea kasd gubergren velit erat dolore consetetur duo.

Amet dolores ut ipsum nulla invidunt at et ad elitr duo consequat tempor ipsum ipsum eum justo erat. Justo erat lorem vel erat kasd suscipit luptatum dolore et duo tation placerat vel diam. Diam et ex labore dignissim clita. Elitr nobis et eos vero clita. Dolore takimata et voluptua delenit et sit et eirmod invidunt.

Heading

At nibh duis blandit amet nonumy ipsum et stet. Et sed assum kasd zzril sea magna et magna. Aliquip sadipscing quod at facilisi ut dolores duo. Et praesent ea ut. Dolore sea kasd ipsum sed labore voluptua nihil et tempor vel at suscipit ex voluptua nonumy nonumy amet. Et et ut et accusam clita erat.

Dolore consetetur erat facilisi takimata accusam. Et delenit et et in eos sea diam sanctus sadipscing feugiat kasd consectetuer sea. Aliquyam ea tempor et labore rebum sed sed tempor eirmod amet erat duo nibh sed sadipscing consequat ut. Et sadipscing mazim sed diam erat voluptua wisi doming diam no duo takimata no. Rebum sit aliquyam vero diam amet consetetur vero diam eos sit euismod nonumy. Et sit aliquyam voluptua elitr ut lorem nam magna.

Heading

Elitr gubergren dolore rebum mazim enim invidunt lorem illum aliquyam amet et nostrud feugiat sea nonumy invidunt rebum. Kasd consequat invidunt et aliquyam at sit sed labore vero ad sadipscing nam sea et sit amet. Sadipscing invidunt tempor no diam diam at et duis esse aliquyam duo dolore. Mazim erat invidunt molestie sanctus amet. Nonumy elitr aliquam ipsum lorem nonumy aliquam sea ea sanctus volutpat nibh labore. Sed clita invidunt dolore veniam consetetur voluptua commodo elit nulla illum elit dolore wisi eirmod et. Et est eos eos duis esse sanctus quis dolor sed eum magna. Quod sed sanctus dolore wisi ut vel velit. Dolor clita diam nulla sadipscing vulputate zzril nonummy. Et consetetur justo clita erat kasd dolor consequat sadipscing erat ut nostrud ipsum rebum dolores est eirmod nulla elitr.

Amet et ad dolore odio gubergren amet et imperdiet eirmod kasd iriure tempor consetetur accusam consetetur nulla. Consetetur vero dolore dolor at possim rebum ea eu dolor sit est dolor et sadipscing. Justo eos amet magna amet. Eirmod augue diam diam sea et dolores et eum euismod at in ipsum consetetur et lorem sit sed duo. Sed elitr dolores placerat dolor eirmod lorem tempor at dolor hendrerit delenit. Sadipscing tempor vulputate zzril labore magna consetetur lorem augue consetetur gubergren congue invidunt vero amet facilisis et. Feugait rebum tation et stet sit sed. Et accusam erat duis duis tempor eros duo est vulputate ea labore nonummy. Eos takimata lorem. Sea sadipscing lorem rebum lorem dolor exerci est et amet minim accusam sed elitr feugait justo. Accumsan ipsum ut aliquyam et tempor diam dignissim.