BTW I have spotted a "Standard Font" option in MS Excel Tools-> Options
[General Tab]. Changing this setting requires restarting excel. After
changes take effect the default column widths are adjusted for new settings.

So default font can be other than arial/12

Wassalam
Tahir
-----Original Message-----
From: Yegor Kozlov [mailto:[EMAIL PROTECTED] 
Sent: Thursday, January 25, 2007 5:30 PM
To: POI Users List
Subject: Re[6]: Autosizing question:


TA> Any other guess while we search for definite answer?

I would stick to "a". Looks most natural choice to me.
Even if it is not "a", the algorithm for width calculation will be
pretty close to Excel.

So the implementation plan gets more concrete:
 - get the number of characters for the default column width (default
 is 8)
 - get the default font (Arial)
 - compute width of the surrogate string "aaaaaaaa" using Java2D classes
 (java.awt.font.TextLayout).
 - derive a coefficient to translate 1/256th units to pixels.

 autosizing:
 - compute max(width) of the column cells using Java2D, translate it to
 1/256th units and resize the column.


Yegor

TA> -----Original Message-----
TA> From: Yegor Kozlov [mailto:[EMAIL PROTECTED] 
TA> Sent: Thursday, January 25, 2007 4:34 PM
TA> To: POI Users List
TA> Subject: Re[4]: Autosizing question:

TA>> I would love if you can elaborate a bit on "units of 1/256th of a
TA> character
TA>> width of the default font". Is the default font is system specific or
TA> same
TA>> across excel versions/platforms?

TA> The default font is workbook-specific.  You can get is as follows:

TA> HSSFFont font = workbook.getFontAt((short)0);
TA> There is always one with index 0. On Windows the default is Arial.

TA>> Is a specific character is used for width
TA>> calculation or we assume fixed width fonts?

TA> I don't know. Arial is default and it is a proportional font and the
glyphs
TA> have different
TA> width. The phrase "1/256th of a character  width of the default font"
TA> is taken from the xls format spec. It says nothing about the
TA> used characters.

TA> Yegor

TA>> Wassalam
TA>> Tahir

TA>> -----Original Message-----
TA>> From: Yegor Kozlov [mailto:[EMAIL PROTECTED] 
TA>> Sent: Thursday, January 25, 2007 3:19 PM
TA>> To: POI Users List
TA>> Subject: Re[2]: Autosizing question:

TA>> Aha! Thank you for the link.

TA>> I think user's DPI is not an issue for autosizing.

TA>> Column width in Excel is expressed in units of 1/256th of a character
TA> width
TA>> of the default font.
TA>> In theory, if you calculate width of text and translate it to the XLS
TA>> units then the column width should not depend on client's DPI.

TA>>  A simple experiment to do: create an xls file, autosize a column and
TA>> try to view it on a system with a different DPI.

TA>> Regards,
TA>> Yegor


TA>>> I guess the issue is not in the font sizes but the screen dpi
TA>> calculation.
TA>>> Net result is if you render some text in "Ariel, 12" it will appear
TA>> smaller
TA>>> on screen as compared to same text & font rendered by windows
natively.
TA>> See
TA>>> this bug report (and related bug 4016591) for details:
TA>>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4168757 . 

TA>>> Wassalam
TA>>> Tahir

TA>>> -----Original Message-----
TA>>> From: Yegor Kozlov [mailto:[EMAIL PROTECTED] 
TA>>> Sent: Thursday, January 25, 2007 2:28 PM
TA>>> To: POI Users List
TA>>> Subject: Re[2]: Autosizing question:

TA>>> Are you sure the Java's font sizes are incompatible with Windows
fonts?
TA>>> Could you point me to the source of this information? I plan to add
TA>>> drawing capabilities to HSLF and this stuff is important to me.

TA>>> Regards,
TA>>> Yegor

ACO>>>> Its actually more compounded than that.  You can basically do this
TA>> with
ACO>>>> Java's AWT Font/FontMetrics classes but the sizes are incompatible
TA>> with
ACO>>>> Windows fonts (let alone Mac et al).  Someone has to record the data
TA>>> for
ACO>>>> Windows fonts and or an API that reads the font files and calculates
TA>>> them.

ACO>>>> -Andy

ACO>>>> Avik Sengupta wrote:
>>>>>> Since VBA have this function to autosize
>>>>>>     
>>>>>>> columns, I wonder if POI have
>>>>>>>       
>>>>>
>>>>> POI is not, and was never meant to be, a replacement for VBA. Its a
TA> file

>>>>> format reader/writer. To do autosizing, one needs a fontmetrics 
>>>>> implementation. We're yet find one that is useful and easy enuf to
use.

>>>>>
>>>>> However, as a frequently requested feature, its a ripe oppurtunity for

>>>>> contribution :)
>>>>>
>>>>> Regards
>>>>> -
>>>>> Avik
>>>>>
>>>>> On Wednesday 24 January 2007 17:36, Adelbert Groebbens wrote:
>>>>>   
>>>>>>> Autosizing question:
>>>>>>>
>>>>>>> Hello, is there a way to autosize the specified column
>>>>>>> in POI? Since VBA have this function to autosize
>>>>>>> columns, I wonder if POI have, if not, I have to
>>>>>>> setsize for each column, I think it would waste a lot
>>>>>>> of resource right? Thanks
>>>>>>>       
>>>>>> I'm facing the same problem.
>>>>>>
>>>>>> Did you find a solution?
>>>>>>
>>>>>> Bret Hart <im2heat <at> yahoo.com> writes:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>>>> Mailing List:     http://jakarta.apache.org/site/mail2.html#poi
>>>>>> The Apache Jakarta Poi Project:  http://jakarta.apache.org/poi/
>>>>>>     
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>>> Mailing List:     http://jakarta.apache.org/site/mail2.html#poi
>>>>> The Apache Jakarta Poi Project:  http://jakarta.apache.org/poi/
>>>>>
>>>>>
>>>>>
>>>>>   


TA>>> ---------------------------------------------------------------------
TA>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
TA>>> Mailing List:     http://jakarta.apache.org/site/mail2.html#poi
TA>>> The Apache Jakarta Poi Project:  http://jakarta.apache.org/poi/




TA>>> ---------------------------------------------------------------------
TA>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
TA>>> Mailing List:     http://jakarta.apache.org/site/mail2.html#poi
TA>>> The Apache Jakarta Poi Project:  http://jakarta.apache.org/poi/


TA>> ---------------------------------------------------------------------
TA>> To unsubscribe, e-mail: [EMAIL PROTECTED]
TA>> Mailing List:     http://jakarta.apache.org/site/mail2.html#poi
TA>> The Apache Jakarta Poi Project:  http://jakarta.apache.org/poi/




TA>> ---------------------------------------------------------------------
TA>> To unsubscribe, e-mail: [EMAIL PROTECTED]
TA>> Mailing List:     http://jakarta.apache.org/site/mail2.html#poi
TA>> The Apache Jakarta Poi Project:  http://jakarta.apache.org/poi/


TA> ---------------------------------------------------------------------
TA> To unsubscribe, e-mail: [EMAIL PROTECTED]
TA> Mailing List:     http://jakarta.apache.org/site/mail2.html#poi
TA> The Apache Jakarta Poi Project:  http://jakarta.apache.org/poi/




TA> ---------------------------------------------------------------------
TA> To unsubscribe, e-mail: [EMAIL PROTECTED]
TA> Mailing List:     http://jakarta.apache.org/site/mail2.html#poi
TA> The Apache Jakarta Poi Project:  http://jakarta.apache.org/poi/


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
Mailing List:     http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta Poi Project:  http://jakarta.apache.org/poi/




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
Mailing List:     http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta Poi Project:  http://jakarta.apache.org/poi/

Reply via email to