sheoh 发表于 2014-3-9 08:59:39

lisp控制word插入图片问题

如题,主要是函数不会用,lisp接VBA用法还不会,VBA更是没怎么看过。代码如下:
(defun c:tt()
(vl-load-com)
(if (null MW-accept) (jinn-get-word-Lib))
(jinn-get-word-object)
(setq range (MW-get-range lastpgobj))   
(MW-addpicture "c:\\1.jpg"range)
(MW-put-bold range 0)
(setq filename "c:\\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\\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 "office10\\" "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))
)


以上代码是从书上抄袭来的,还算能看懂。
应该是(MW-addpicture "c:\\1.jpg"range)这一句出错了吧,运行时返回 错误: 参数类型错误: VLA-OBJECT "c:\\1.jpg"
请教大神们,这个函数怎么用呢。。。


caddog 发表于 2019-4-1 11:53:14

本帖最后由 caddog 于 2019-4-1 12:43 编辑


(setq v-selection (mswp-get-Selection msw))
(setq v-insertPic (mswp-get-InlineShapes v-selection))
(setq inlineShapeObj (mswm-AddPicturev-insertPic $fn-pic1 :vlax-false :vlax-true));_插入图片
(mswp-put-height inlineShapeObj 594.95);_图片高
(mswp-put-Width inlineShapeObj 841.6);_图片宽
;;;以下设置图片的 版式
(setq inlineShapeObj (mswm-ConvertToShape inlineShapeObj))
(setq inlineShapeObj-format (mswp-get-WrapFormat inlineShapeObj))
(mswp-put-type inlineShapeObj-format 0)

283528149 发表于 2019-3-31 21:16:29

http://bbs.mjtd.com/forum.php?mod=redirect&goto=findpost&ptid=109396&pid=629174&fromuid=238436

283528149 发表于 2019-3-31 21:15:49

如何改变插入JPG的高度?

sheoh 发表于 2014-3-9 10:00:49

VBA函数方法如下

sheoh 发表于 2014-3-9 18:38:35

这。。。等了一天没人回答。。。是太简单了,不屑于吗。。。

xiaxiang 发表于 2014-3-10 09:04:02

从书上抄袭来的,我怎么没有看过这本书?楼主,介绍一下嘛

sheoh 发表于 2014-3-10 09:05:42

本帖最后由 sheoh 于 2014-3-10 09:13 编辑

xiaxiang 发表于 2014-3-10 09:04 static/image/common/back.gif
从书上抄袭来的,我怎么没有看过这本书?楼主,介绍一下嘛
AutoCAD完全应用指南啊。。。论坛里常出现的。。好像是翔虹什么的。。

sheoh 发表于 2014-3-10 09:07:23

xiaxiang 发表于 2014-3-10 09:04 static/image/common/back.gif
从书上抄袭来的,我怎么没有看过这本书?楼主,介绍一下嘛

我这个问题能帮我解答吗。。。

Gu_xl 发表于 2014-3-10 09:44:25

sheoh 发表于 2014-3-10 09:07 static/image/common/back.gif
我这个问题能帮我解答吗。。。

(vlax-invoke (vlax-get-property docobj 'InlineShapes) 'AddPicture "c:\\1.jpg" :vlax-false :vlax-false range)

sheoh 发表于 2014-3-10 09:47:13

Gu_xl 发表于 2014-3-10 09:44 static/image/common/back.gif
(vlax-invoke (vlax-get-property docobj 'InlineShapes) 'AddPicture "c:\\1.jpg" :vlax-false :vlax-fa ...

终于等到G版了!多谢!我对G版的崇拜犹如滔滔江水连绵不断。。。

Gu_xl 发表于 2014-3-10 10:03:56

sheoh 发表于 2014-3-10 09:47 static/image/common/back.gif
终于等到G版了!多谢!我对G版的崇拜犹如滔滔江水连绵不断。。。

函数如何使用,你二楼图片提供的VBA方法已经说明的非常清楚了,只是你要把它转换为Lisp的active写法而已!

sheoh 发表于 2014-3-10 10:19:26

本帖最后由 sheoh 于 2014-3-10 10:30 编辑

Gu_xl 发表于 2014-3-10 10:03 static/image/common/back.gif
函数如何使用,你二楼图片提供的VBA方法已经说明的非常清楚了,只是你要把它转换为Lisp的active写法而已! ...
是的,这个刚接触,还不太懂。。。。多谢指导。。。而且这方面的内容论坛里好像没怎么看到,是不是在其他的哪个版块。。。
页: [1] 2
查看完整版本: lisp控制word插入图片问题