高级会员
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
|
【转帖】ext Rendering
text rendering
text rendering
hello,
i have a few questions about text rendering in new dwgdirect library.
as i understand, tt font files are searched in <windows>\fonts directory by default and rendered by the library.
can anyone tell me what does the library use, to render tt fonts? does it use freetype library or windows api functions? (i am interested, if tt font rendering works also on unix - with opendwg viewkit this was possible).
as i read this forum, i found out, that i should override method oddbhostappservices::findfile(...), to find correct font file. this works, when library searches for shx files, but at searching for ttf files it seems, like it does not work correctly:
i created dwg file with two texts using fonts arial and times new roman.
in sample application i overrided method findfile, to always return path to arial font. but dwgdirect library rendered first text with times new roman and second with arial font.
how is this possible, if findfile method always returns path to arial font.
does font need to be installed on the system, to be rendered correctly by dwgdirect library?
regads, tomaz
quote:
can anyone tell me what does the library use, to render tt fonts? does it use freetype library or windows api functions?
opendwg uses windows api functions on windows platform and
freetype library on others platforms.
quote:
i created dwg file with two texts using fonts arial and times new roman.
in sample application i overrided method findfile, to always return path to arial font. but dwgdirect library rendered first text with times new roman and second with arial font.how is this possible, if findfile method always returns
path to arial font.
then windows api is used the typeface has priority(in case typeface isn't empty in text style).
freetype library requires full path for font file.
if you need substitute some font you have to override oddbhostappservices::getpreferablefont(...).
default emplementation repeats the acad font maping mechanism and uses oddbhostappservices::getfontmapfilename() for getting name of map file(by default acad uses "acad.fmp").
the alternate font is used if font is not found (oddbhostappservices::getalternatefontname() method).
by default this method return the value of system variable "fontalt" (default in acad simplex.shx).
if alternate font is not found dwddirect substitutes build in font like simplex.
quote:
does font need to be installed on the system, to be rendered correctly by dwgdirect library
tt font must be installed on the windows system (in case windows api is used).
if freetype library is used it is enough if findfile() will return full path for font file and file will be exist.
regads, sergey z.
sergey,
thanks for this quick and very descriptive answer.
regards, tomaz
|