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/>&nbsp;&nbsp; (or Gb:AcO (setq Gb:AcO (vlax-get-acad-object)))<br/>&nbsp;&nbsp; (or Gb:AcD (setq Gb:AcD (vla-get-ActiveDocument Gb:AcO)))<br/>&nbsp;&nbsp; (vlax-for Sty (vla-get-TextStyles Gb:AcD)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq names (cons (vla-get-Name Sty) names))<br/>&nbsp;&nbsp; )<br/>&nbsp;&nbsp; names<br/>)</p><p><br/>;;判断一个style的font是否找得到</p><p>;;对windos字体不完善<br/>(defun IsTextStyleFontOk (sty / f3 f4 )<br/>&nbsp;&nbsp; (and (setq f4 (tblsearch "style"&nbsp; sty))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (or (findfile (setq f3 (cdrassoc 3 f4)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (findfile (strcat f3 ".shx"))<br/>&nbsp;&nbsp;&nbsp;&nbsp; (findfile (strcat "C:\\WINDOWS\\Fonts\\" f3))<br/>&nbsp;&nbsp;&nbsp;&nbsp; (and (= f3 "SimSun.ttf")<br/>&nbsp;&nbsp; (findfile "c:/windows/fonts/simsun.ttc")<br/>&nbsp;&nbsp;&nbsp;&nbsp; )&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (or (null (setq f4 (cdrassoc 4 f4)))<br/>&nbsp;&nbsp;&nbsp;&nbsp; (= "" f4)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (findfile f4)<br/>&nbsp;&nbsp;&nbsp;&nbsp; (findfile (strcat f4 ".shx"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp; )<br/>)</p>

userzhl 发表于 2009-4-17 00:48:00

;将不认识的字体自动替换成,自己定义的字体。<br/>(defun ukword (bit kwd msg def / inp)<br/>&nbsp; (if (and<br/>&nbsp;def<br/>&nbsp;(/= def "")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; (setq msg (strcat "\n" msg "&lt;" def "&gt;:")<br/>&nbsp;&nbsp; bit (* 2 (fix (/ bit 2)))<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; (setq msg (strcat "\n" msg ":"))<br/>&nbsp; )<br/>&nbsp; (initget bit kwd)<br/>&nbsp; (setq inp (getkword msg))<br/>&nbsp; (if inp<br/>&nbsp;&nbsp;&nbsp; inp<br/>&nbsp;&nbsp;&nbsp; def<br/>&nbsp; )<br/>)<br/>(defun c:gps_txt_rep ( / cn elist en enl nm gps_hzstyle);!!!&lt;-字体样式自动替换&nbsp; <br/>&nbsp; (setq ukw (ukword 2 "Y N" "\n缺少字体自动替换成._txt.shx,hztxt.确认修改?[是(Y)/否(N)]" "Y")) <br/>&nbsp; (if (= "Y" ukw) <br/>&nbsp;&nbsp;&nbsp; (progn&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (not $gps_hztxt_e) (setq $gps_hztxt_e "_txt.shx")) <br/>&nbsp; (if (not $gps_hztxt)&nbsp;&nbsp; (setq $gps_hztxt "hztxt.shx"))<br/>&nbsp; (setq gps_hzstyle (strcat $gps_hztxt_e "," $gps_hztxt )) <br/>&nbsp;&nbsp;&nbsp; (setq elist (tblnext "STYLE" T)) <br/>&nbsp;&nbsp;&nbsp; (while (/= elist nil) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq nm (cdr (assoc 2 elist)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; en (cdr (assoc 3 elist)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cn (cdr (assoc 4 elist)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enl (strlen en) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (and <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (/= en nil) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (= cn nil) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (= (findfile en) nil) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (= (strcase (substr en (- enl 2))) "SHX") <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "_style" nm $gps_hztxt_e "0.0" "0.7" "" "" "" "") <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (and <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (/= cn nil) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (= (findfile cn) nil) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "_style" nm&nbsp; gps_hzstyle "0.0" "0.7" "" "" "" "") <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) <br/>&nbsp;&nbsp;&nbsp;&nbsp; (setq elist (tblnext "STYLE")) <br/>&nbsp;&nbsp; ) <br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp;)
页: [1] 2 3 4
查看完整版本: [求助]请教高手,如何知道文件中哪些文字样式缺少字体?