查看单个帖子
旧 2009-05-06, 06:02 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】modifying font style settings

modifying font style settings
modifying font style settings
hi!
i am trying to change the text style of some dwg/dxf files and have the following problems:
when i am changing the font of a textstyletablerecord, calling setfilename or setfont makes directdwg try to access the font files of the previously set fonts. why would it want to do such a thing?
i've not yet managed to change the font to a truetype font, even though i am modifying the setting in the same way as autocad does.
i am using the following testing code (i know that i should also check isshapefile, but in the below case it doesn't make any difference):
code:
oddbdatabaseptr pdb;
pdb = dd->readfile("test.dwg");
oddbtextstyletableptr txtstyles = pdb->gettextstyletableid().safeopenobject(oddb::kforwrite);
oddbsymboltableiteratorptr txtiter = txtstyles->newiterator();
for (txtiter->start(); !txtiter->done(); txtiter->step()) {
oddbtextstyletablerecordptr txtstyle = txtiter->getrecordid().safeopenobject(oddb::kforwrite);
// change standard to "verdana"
if (txtstyle->getname() == "standard") {
txtstyle->setbigfontfilename("");
txtstyle->setfilename("verdana.ttf");
txtstyle->setfont("verdana", false, false, 0, 0x22);
}
}
// write the file
dd->writefile(pdb, "test2.dwg", oddb::kdwg, oddb::vac12);
odreadex gives the following output for a dwg file that had the 'verdana' font assigned in autocad:
code:
filename. . . . . . . . . . . . ."verdana.ttf"
bigfont filename. . . . . . . . .""
typeface. . . . . . . . . . . . ."verdana"
character set . . . . . . . . . .0
bold. . . . . . . . . . . . . . .false
italic. . . . . . . . . . . . . .false
font pitch and family . . . . . .0x22
any idea what's going wrong there?
quote:
originally posted by jdrugo
when i am changing the font of a textstyletablerecord, calling setfilename or setfont makes directdwg try to access the font files of the previously set fonts. why would it want to do such a thing?
update file dependence has some mistake. we try to fix it in future.
quote:
originally posted by jdrugo
i've not yet managed to change the font to a truetype font, even though i am modifying the setting in the same way as autocad does.
dd->writefile(pdb, "test2.dwg", oddb::kdwg, oddb::vac12);
some information about true type font (bold, italic, charset ...) is lost then you save file in version r12 but acad higher version may recognised this font as ttf. r12 text style record has file name and bigfilename only for desribe fonts. try to save your file in major version.
best regards,
sergey z.
thanks for the prompt reply.
quote:
update file dependence has some mistake. we try to fix it in future.
ok, i will ignore that for now then.
quote:
some information about true type font (bold, italic, charset ...) is lost then you save file in version r12 but acad higher version may recognised this font as ttf. r12 text style record has file name and bigfilename only for desribe fonts. try to save your file in major version.
thanks for the info. saving it with vac15 works correctly. i will have to consider that.
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)