明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3229|回复: 6

怎么样用lisp操作word生也文字的下标?

  [复制链接]
发表于 2012-2-17 09:28:55 | 显示全部楼层 |阅读模式
谁能说说怎么样用lisp操作word生也文字的下标,我对word了解不多
下面的生成word文本的方法

(defun c:tt()
   (vl-load-com)
   (if (null MW-accept)(jinn-get-word-Lib))
   (jinn-get-word-object)
   (MW-put-bold range 1)
   (MW-insertafter range "翔虹AutoCAD 技术中心")
   (MW-put-bold range 0)
   ;(MW-put-Font.Subscript range 1)
   (MW-insertafter range "\nVisual LISP ActiveX太神奇了!")
   (setq filename "c:\\LSPTOOLS\\testdwg\\wordtest1.doc")
   (vlax-invoke-method docobj "Saveas" filename nil nil nil nil nil nil)
)
(defun jinn-get-word-Lib ()
  (setq office:dir "C:\\Program Files (x86)\\Microsoft Office\\")
  (cond
    ((setq mwlib (findfile (strcat office:dir "office\\" "MSWORD8.olb"))))  
    ((setq mwlib (findfile (strcat office:dir "office\\" "MSWORD9.olb"))))
    ((setq mwlib (findfile (strcat office:dir "office\\" "MSWORD.olb"))))
    ((setq mwlib (findfile (strcat office:dir "office11\\" "MSWORD.olb"))))
    ((setq mwlib (findfile (strcat office:dir "office12\\" "MSWORD.olb"))))
    ((setq mwlib (findfile (strcat office:dir "office14\\" "MSWORD.olb"))))   
    (t (setq mwlib nil))
  )
  (if mwlib
    (vlax-import-type-library
        :tlb-filename        mwlib
:methods-prefix  "MW-"
:properties-prefix  "MW-"
:constants-prefix  "MW-"
    )
    (alert "Word typelib 文件不存在")
  )
)

(defun jinn-get-word-object()
   (setq WORDobj (vlax-create-object "WORD.Application"))
   (vla-put-visible WORDobj 1)
   (setq docs(vlax-get-property WORDobj 'documents))
   (setq docobj(vlax-invoke-method docs 'Add))
   (setq pgobj(MW-get-paragraphs docobj))
   (setq lastpgobj (MW-get-last pgobj))
   (setq range (MW-get-range lastpgobj))
)

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2012-2-17 10:34:06 | 显示全部楼层
本帖最后由 snddd2000 于 2012-2-17 10:39 编辑
  1. (setq msw (vlax-get-object "Word.Application"))
  2. (if (equal nil msw)
  3.    (progn
  4.      ; Word is not running. Start it.
  5.      (setq msw (vlax-create-object "Word.Application"))
  6.      (vla-put-visible msw :vlax-true)
  7.    )
  8. )

  9. (setq docs (vla-get-documents msw))
  10. (setq doc (vlax-invoke-method docs 'Add))

  11. (setq range (vlax-invoke-method doc 'Range))
  12. (setq font (vlax-get-property range 'font))
  13. (vlax-put-property range 'Start 0)
  14. (vlax-put-property range 'End 1)
  15. (vlax-put-property range 'Text "A")
  16. (vlax-put-property font 'Subscript 0)

  17. (setq range (vlax-invoke-method doc 'Range))
  18. (setq font (vlax-get-property range 'font))
  19. (vlax-put-property range 'Start 2)
  20. (vlax-put-property range 'End 3)
  21. (vlax-put-property range 'Text "1")
  22. (vlax-put-property font 'Subscript 1)

回复 支持 1 反对 0

使用道具 举报

发表于 2012-2-17 10:28:06 | 显示全部楼层
(vlax-put-property (vlax-get-property Range 'font) 'subscript  :vlax-true)
 楼主| 发表于 2012-2-17 13:22:07 | 显示全部楼层
谢谢,我试试,到我给划帐,
发表于 2012-2-17 16:09:55 | 显示全部楼层
越来越讲究了哈,都在用WORD了
发表于 2012-2-18 20:02:21 | 显示全部楼层
我也不清楚,不过我可以提供一个思路,你先在word中录制宏,然后研究这个宏,慢慢可以找到答案,我以前就是这样做的。
发表于 2018-5-18 18:13:06 | 显示全部楼层
下载学习一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-19 13:03 , Processed in 0.208547 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表