Bug report on Font.canDisplay

R

Roedy Green

Dear Java Developer,


Thank you for your interest in improving the quality of Java
Technology.


Your report has been assigned an internal review ID of 1249925, which
is NOT visible on the Sun Developer Network (SDN).


Please be aware that the large volume of reports we receive sometimes
prevents us from responding individually to each message.


If the information is determined to be a new Bug or RFE, or a
duplicate of a known Bug or RFE, you will receive a followup email
containing a seven digit bug number. You may search for, view, or
vote for this bug in the Bug Database at http://bugs.sun.
com/.


If you just reported an issue that could have a major impact on your
project and require a timely response, please consider purchasing one
of the support offerings described at
http://developers.sun.com/services/.


The Sun Developer Network (http://developers.sun.com) is a free
service that Sun offers. To join, visit
http://developers.sun.com/global/join_sdn.html.


For a limited time, SDN members can obtain fully licensed Java IDEs
for web and enterprise development. More information is at
http://developers.sun.com/prodtech/javatools/free/.


Thank you for using our bug submit page.


Regards,
Java Developer Bug Report Review Team




---------------------------------------------------------------



Date Created: Fri May 16 09:45:40 MDT 2008
Type: rfe
Customer Name: Roedy Green
Customer Email: xxxxxx
SDN ID: Roedy
status: Waiting
Category: java
Subcategory: classes_awt
Company: Canadian Mind Products
release: 6
hardware: x86
OSversion: windows_vista
priority: 4
Synopsis: Fix Font.canDisplay
Description:
A DESCRIPTION OF THE REQUEST :
Font.canDisplay nearly always returns true, whether the character is
displayable or not. It treats displaying a non-descript blob or box
as displaying.


Font.canDisplay is worse than useless!


JUSTIFICATION :
Even the Dialog fonts on different platforms are not capable of
displaying the same subset of Unicode. I need to chose substitutions
when the proper character will not render, to make my code WORA.


EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
canDisplay should only return true when it can render a reasonable
faximile of the glyph shown on the Unicode website.
see http://mindprod.com/jgloss/unicode.html


ACTUAL -
Font.canDisplay nearly always returns true.


I understand the problem is the fonts LIE. They claim they can render
a character when they can't. You can't very well repair all the fonts
in the world.


HOWEVER, You might be able to do the following:


1.detect the lie. When thousands of codes map to the same glyph,
treat that as canDisplay -> false.


2. for the logical fonts, put in a tweak to bypass what the font says
and use the truth.


3. use the exact same physical font for logical fonts on every
platform so there are no WORA problems. Don't bother fixing
canDisplay.




---------- BEGIN SOURCE ----------
Display in a GUI each of the possible Unicode chars and beside it
Font.canDisplay( thatChar). You will see canDisplay returns true far
too often.


Alternate. Look at http://mindprod.com/applet/unicode.html
Pick any non-displaying character, marked with a blob of some sort.
preferably one in a run of non-displaying characters.


Then on your platform test that char with Font.canDisplay. Chances are
very high it will return true.



---------- END SOURCE ----------


CUSTOMER SUBMITTED WORKAROUND :
Maintain manual tables of which fonts on which platforms can display
which characters. PHHT!
workaround:
 
I

Ian Shef

ACTUAL -
Font.canDisplay nearly always returns true.
CUSTOMER SUBMITTED WORKAROUND :
Maintain manual tables of which fonts on which platforms can display
which characters. PHHT!
workaround:

I suppose that another workaround would be for your code to display each
character someplace (e.g. a BufferedImage) where you could look for the
identical glyphs and use this information for performing your substitutions.

I didn't say that it was a _good_ workaround. :)

Best wishes getting a response, much less a fix in a reasonable period of
time.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,578
Members
45,052
Latest member
LucyCarper

Latest Threads

Top