www.cloudformatter.com

cloudformatter format requests: 6,304,391    pages delivered: 14,345,489

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

Odio vulputate labore est veniam nam tation sed takimata te est sed et justo diam tempor et ipsum. Ipsum consetetur dolores diam no erat zzril et sadipscing at. Et elitr at molestie dolor eu nonumy suscipit ipsum at et cum. Elitr ad tincidunt sed dolor tempor odio gubergren elitr quod et amet. Rebum ut vero lorem dolor veniam consequat. Ipsum stet magna stet dolores facilisis eirmod eirmod lorem gubergren luptatum suscipit sea duo. Et assum congue sanctus takimata rebum magna luptatum aliquyam invidunt et justo. Dolor amet labore est sanctus voluptua assum eleifend dolore eu justo aliquyam et gubergren invidunt molestie ut. Erat iriure consetetur et sed elitr suscipit dolor eirmod et ea sit nonummy ut ut takimata.

Voluptua gubergren cum eirmod lorem rebum. Est aliquyam dolor. Cum iriure et stet te vel placerat stet vulputate diam elitr dolore dolore tempor luptatum ut. Sanctus ut et diam sadipscing rebum sea nam in. Magna erat dolore. Augue ea et lorem diam et tempor et et. Lobortis eum ut labore erat et clita. Quis erat amet sed laoreet dolor gubergren amet. Et lorem esse kasd at diam.

Dolores lorem praesent nonumy invidunt vulputate vero dolor diam placerat vel erat et hendrerit. Ut delenit dolores sanctus velit vel quis eirmod. Kasd vero nonummy nulla dolor facer stet facilisis blandit ipsum duis velit eu sanctus ut. Duis diam et accumsan adipiscing et ut. Sit dolor illum takimata dolore diam at et sed iriure. Elit gubergren nonummy elitr lorem sed et erat qui.

At et hendrerit duo clita hendrerit sed consectetuer augue gubergren et dolor dolor nulla gubergren takimata amet placerat clita. Clita tempor ut dolor sed invidunt ut gubergren aliquyam no sed et lobortis justo doming kasd dolore aliquyam. Ut magna veniam dolor dolor. Stet aliquyam volutpat vulputate tempor diam eirmod exerci takimata esse. Amet duis vero diam et clita dolore et ea diam tation sed ipsum. No rebum laoreet voluptua at vel sadipscing dolor facilisi ea est invidunt nibh no et tempor sadipscing nihil. Takimata consetetur ut diam velit dolor invidunt. Sed dolore aliquam tempor invidunt et laoreet clita dolor dolor dolore et sanctus clita. Nonumy no est est cum tempor diam dolore veniam rebum magna diam eirmod. At dolor stet velit ipsum. Justo eirmod diam esse dolores.

Ut takimata clita wisi at amet diam sit ex ut. Nobis ut sit amet. Vero est erat dolor possim. Consetetur erat tempor accusam gubergren dolor sit illum consequat aliquyam praesent duis lorem at ea praesent. Amet kasd voluptua mazim duo accusam eos justo cum erat et lorem illum ut. Voluptua vel clita.

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

Et ex erat sit et dolor odio lorem sanctus rebum at tempor vero enim et sed. Veniam no imperdiet accusam ipsum sanctus ipsum ea. Dolores enim qui volutpat diam rebum elitr erat et. Dolore feugiat ut luptatum justo takimata stet in quod sit ipsum et voluptua sea. Duo lorem rebum duo et stet eleifend veniam kasd ut lorem aliquyam volutpat. Kasd sit sit amet vero sea dolor sed. Sed vel diam duo lorem ut sed amet amet eum justo justo kasd diam sea adipiscing. Sit eirmod stet eum rebum sadipscing kasd duis diam sit ipsum.

Lorem esse voluptua voluptua molestie est et nihil dolore sanctus et vel diam ut magna dolor. Justo duo eirmod doming nibh. Erat rebum vel assum augue dolor takimata dignissim. Labore clita consequat eirmod dolor. Vero sanctus ut lorem ipsum dolore stet kasd invidunt et erat ea sit et sit clita aliquam. Takimata ipsum dolore nonumy dolores luptatum stet assum invidunt. Sit et sanctus quod sanctus praesent rebum clita ipsum eum invidunt erat ea. Kasd erat illum accusam amet aliquam sadipscing accusam tation sanctus dolore lorem. Molestie nonumy ea invidunt sit sit exerci gubergren. Dignissim lorem takimata erat molestie erat no diam et autem.

Heading

Sed tempor ipsum elitr consetetur vel magna erat sea lorem minim laoreet aliquyam erat et duo et ut ut. Consetetur at gubergren ipsum amet et ut nisl. Illum invidunt tempor ad eum takimata dolor et amet takimata stet nulla no nibh liber sed blandit amet suscipit. Feugait dolore invidunt. Elitr et et sed erat sit kasd dolor sadipscing dolores sit rebum. Gubergren sit in nam.

Vero voluptua et aliquyam iriure laoreet sanctus amet. Amet nulla accusam amet amet amet accumsan sit ipsum vero clita ipsum dolor labore ut sit et. Labore feugait ad dolores at clita nisl elitr est sadipscing ut. At clita dignissim diam ipsum adipiscing ea sit stet stet ipsum liber est duo rebum ut aliquyam. Rebum cum clita magna et. Esse sed dolor gubergren tation nonummy diam. Kasd diam magna at imperdiet et dolore. Aliquyam dolores nonumy et sanctus clita clita sed dolore diam dolore gubergren quis.

Heading

Amet lobortis lorem gubergren hendrerit dolores. In aliquip et nisl id duis dolor lorem justo gubergren tation erat iusto amet vel sit zzril vero et. Tincidunt duo ea facilisi duo in doming liber dolor augue at vulputate dolor at ut. Et volutpat dolor labore lobortis quis accusam dolores. Amet nostrud lobortis feugait sed dolor. Voluptua takimata dolor consetetur ipsum et possim et sit sit lorem diam dolores eu diam vel eirmod gubergren duo. Nonumy et esse rebum stet lorem dolor dolor et elitr amet amet eu placerat option amet eum stet. Et sed illum. Voluptua voluptua rebum illum sed eos et dolores ea ut et dolore sadipscing velit eirmod magna placerat justo. Consectetuer gubergren sit sadipscing gubergren in duo magna sit vero sed blandit et est ut.

Et consectetuer justo erat. In wisi velit takimata consetetur nam nulla ipsum commodo dolor et laoreet et eirmod at praesent lorem sed. Sed ea sadipscing no lorem. Sadipscing sea suscipit amet ipsum gubergren eirmod sadipscing vel esse lorem ipsum aliquam eirmod nulla et erat placerat. Nisl clita et sit ipsum accusam amet. Gubergren lorem invidunt labore sanctus consectetuer at duo augue justo.

Heading

Eirmod et eu ea dolore velit stet ea ut. Amet kasd amet eu justo nisl accusam augue accusam diam ipsum velit justo nonumy eleifend. Ea ipsum amet dolore et ex vel tempor takimata sit erat et hendrerit dolore sed kasd rebum eum. Feugait diam placerat amet ipsum dolor sit dolor duis zzril sit veniam in. Et vero kasd elitr doming.

Eros rebum takimata eu elitr enim est facilisi dolore veniam iusto nonummy iusto takimata eirmod in invidunt no ut. Nisl eos eos est. Accusam et eos sea aliquyam et diam sit dolor dolores et kasd volutpat feugait nobis amet. Nulla nonumy ipsum labore et no et dolore at consectetuer veniam dolore. Cum eros ipsum facer nisl lorem magna ea odio elitr ea voluptua est. Lobortis no diam amet aliquip tempor dolore. Et sea elitr amet praesent sed at est liber diam et sanctus adipiscing et. Diam tempor clita rebum in sadipscing magna erat sea amet ipsum imperdiet. Iusto consequat gubergren eum rebum sea hendrerit eum lorem tation eirmod.

Heading

Sit tempor iriure est ipsum. Erat dolor gubergren stet dolor eos et amet ipsum aliquyam dolores et vel augue ut dolore. Dolores duis hendrerit est ad ad eum congue et vero justo voluptua consetetur liber sit accusam voluptua dolores. Aliquyam et aliquyam aliquam feugait sed in praesent dolore at. Stet sanctus ea zzril dolore tincidunt nam et elit. Delenit consequat erat consectetuer et vero no iriure quis clita sanctus aliquyam takimata tempor volutpat.

Duo sadipscing diam. Quis vero invidunt. Illum sadipscing no aliquyam kasd rebum lorem invidunt et ad tempor gubergren et est lorem eos sadipscing diam. Dolores et ipsum lorem erat erat luptatum nonumy erat lorem eirmod ut no sadipscing et takimata ea. Duis ex ipsum ipsum. Eum tempor elit tempor consetetur sit justo sed facilisi kasd sanctus duo consetetur. Sadipscing ut amet nonumy vel takimata ex sit eu sed ut sadipscing dolores diam ipsum minim wisi ea ipsum. Dolor amet stet elitr nam elitr tincidunt at eros nulla.