userzhl
发表于 2009-4-13 18:54:00
[求助]请教高手,如何知道文件中哪些文字样式缺少字体?
请教高手,如何知道文件中哪些文字样式缺少字体?
userzhl
发表于 2009-4-14 16:34:00
这种情况我们经常会遇到,怎么会没人关注呢?
userzhl
发表于 2009-4-15 10:07:00
我是想实现这样的功能
userzhl
发表于 2009-4-15 10:38:00
自动判断文字样式是否缺少字体并进行替换.
liminnet
发表于 2009-4-16 13:14:00
liminnet
发表于 2009-4-16 13:23:00
liminnet
发表于 2009-4-16 13:24:00
liminnet
发表于 2009-4-16 14:09:00
liu_kunlun
发表于 2009-4-16 15:25:00
本帖最后由 作者 于 2009-4-16 15:26:47 编辑 <br /><br /> <p>;;;得到所有TextStyle Name</p><p>;;;从网上得到<br/>(defun GetAllTextStyleNames (/ names)<br/> (or Gb:AcO (setq Gb:AcO (vlax-get-acad-object)))<br/> (or Gb:AcD (setq Gb:AcD (vla-get-ActiveDocument Gb:AcO)))<br/> (vlax-for Sty (vla-get-TextStyles Gb:AcD)<br/> (setq names (cons (vla-get-Name Sty) names))<br/> )<br/> names<br/>)</p><p><br/>;;判断一个style的font是否找得到</p><p>;;对windos字体不完善<br/>(defun IsTextStyleFontOk (sty / f3 f4 )<br/> (and (setq f4 (tblsearch "style" sty)) <br/> (or (findfile (setq f3 (cdrassoc 3 f4)))<br/> (findfile (strcat f3 ".shx"))<br/> (findfile (strcat "C:\\WINDOWS\\Fonts\\" f3))<br/> (and (= f3 "SimSun.ttf")<br/> (findfile "c:/windows/fonts/simsun.ttc")<br/> ) <br/> )<br/> (or (null (setq f4 (cdrassoc 4 f4)))<br/> (= "" f4)<br/> (findfile f4)<br/> (findfile (strcat f4 ".shx"))<br/> )<br/> )<br/>)</p>
userzhl
发表于 2009-4-17 00:48:00
;将不认识的字体自动替换成,自己定义的字体。<br/>(defun ukword (bit kwd msg def / inp)<br/> (if (and<br/> def<br/> (/= def "")<br/> )<br/> (setq msg (strcat "\n" msg "<" def ">:")<br/> bit (* 2 (fix (/ bit 2)))<br/> )<br/> (setq msg (strcat "\n" msg ":"))<br/> )<br/> (initget bit kwd)<br/> (setq inp (getkword msg))<br/> (if inp<br/> inp<br/> def<br/> )<br/>)<br/>(defun c:gps_txt_rep ( / cn elist en enl nm gps_hzstyle);!!!<-字体样式自动替换 <br/> (setq ukw (ukword 2 "Y N" "\n缺少字体自动替换成._txt.shx,hztxt.确认修改?[是(Y)/否(N)]" "Y")) <br/> (if (= "Y" ukw) <br/> (progn <br/> (if (not $gps_hztxt_e) (setq $gps_hztxt_e "_txt.shx")) <br/> (if (not $gps_hztxt) (setq $gps_hztxt "hztxt.shx"))<br/> (setq gps_hzstyle (strcat $gps_hztxt_e "," $gps_hztxt )) <br/> (setq elist (tblnext "STYLE" T)) <br/> (while (/= elist nil) <br/> (setq nm (cdr (assoc 2 elist)) <br/> en (cdr (assoc 3 elist)) <br/> cn (cdr (assoc 4 elist)) <br/> enl (strlen en) <br/> ) <br/> (if (and <br/> (/= en nil) <br/> (= cn nil) <br/> (= (findfile en) nil) <br/> (= (strcase (substr en (- enl 2))) "SHX") <br/> ) <br/> (command "_style" nm $gps_hztxt_e "0.0" "0.7" "" "" "" "") <br/> ) <br/> (if (and <br/> (/= cn nil) <br/> (= (findfile cn) nil) <br/> ) <br/> (command "_style" nm gps_hzstyle "0.0" "0.7" "" "" "" "") <br/> ) <br/> (setq elist (tblnext "STYLE")) <br/> ) <br/> )<br/> )<br/> )