[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Decimal alignment using fo:leader

Subject: Re: Decimal alignment using fo:leader
From: Abel Braaksma <abel.online@xxxxxxxxx>
Date: Thu, 23 Aug 2007 01:42:38 +0200
Re:  Decimal alignment using fo:leader
I'm not sure about xsl-fo possibilities here, but because you are using numbers, you don't need to worry about the widths, as numbers always (?) have the same width for alignment purposes. That said, you could use your xslt preprocess phase to align them properly using position, spaces or similar based on the widest result string (highest precision value).

However, I realize that it is not a pretty solution. But what you should be able to do, is something along the lines of:

<fo:table>
  <fo:table-column text-align="." column-width="auto" />
  ....
  <fo:table-body>
      <fo:table-row>
         <fo:table-cell>52.50000</fo:table-cell>
      </
      <fo:table-row>
         <fo:table-cell>10.38</fo:table-cell>
      </
   </
</

but note that if you use Apache FOP, the text-align="$some-sting" is not supported.

Cheers,
-- Abel Braaksma

PS: your code is not correct (it is not well-formed XML), it is not clear to me what it is supposed to do, but it can't run the way you posted it.


Angela Williams wrote:
I'm sure someone smarter than I am has already solved this....

I'm trying to align data in an fo:table on the decimal point, with the value having the greatest precision right-aligned. All of the examples I have found show fixed width, only.

How do you do this when you don't know the size of the font, or the width of the column?

I've tried to calculate the leader-length, but I'm not having any luck getting it to right align. How could I change this to make it work?

This is what I have:

<fo:table-cell column-number="4" border=".1mm solid black"
    padding-start="5%" padding-before="2pt" padding-end="5%">
    <fo:block text-align="right" font-size="8pt">  52<fo:leader
        leader-pattern="use-content" leader-length="<<$max-precision=5>>* inherited-property-value(font-size)"
        leader-pattern-width="<<$max-precision=5>> * inherited-property-value(font-size)">.50000</fo:leader>
    </fo:block>
</fo:table-cell>

<fo:table-cell column-number="4" border=".1mm solid black"
    padding-start="5%" padding-before="2pt" padding-end="5%">
    <fo:block text-align="right" font-size="8pt">  10<fo:leader
        leader-pattern="use-content"
        leader-length="<<$max-precision=5>> * inherited-property-value(font-size)"
        leader-pattern-width="<<$max-precision=5>> * inherited-property-value(font-size)">.38</fo:leader>
    </fo:block>
</fo:table-cell>

This gives me (assume a border-bottom in the fo:block within the last row):
+-------------------+
|     52.50000      |
|     10.38         |
| ----------------  |
+-------------------+

But I need:
+-------------------+
|         52.50000  |
|         10.38     |
| ----------------  |
+-------------------+

Thanks in advance!
Angela Williams Software Developer
The 401k Company, A Charles Schwab Company
98 San Jacinto Blvd. ~ Suite 1100 ~ Austin, TX 78701 Office: 512.344.1547 ~ Fax: 512.397.6656
Angela.Williams@xxxxxxxxxxxxxxxxxx

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.