现在的位置: 首页 > 综合 > 正文

如何用tcl在word文档中插入图片的解决方法

2013年07月03日 ⁄ 综合 ⁄ 共 1530字 ⁄ 字号 评论关闭

 

                             如何用tcl在word文档中插入图片的解决方法

                                                                    作者: makethyme

 

在工作中,常常需要使用Tcl/Tk,或者Python这些脚本语言来自动化生成Microsoft word文件,或者Microsoft Excel文件等。

那么在使用word时,是如何插入图片的呢?一般情况下,选择菜单栏中的[Insert] -> [Picture] -> [From File…],选择所需要插入的图片文件即可。

Tcl/Tk是通过tcom来对Micorsoft word进行操作的,如下:

      packeage require tcom

      set ::application [::tcom::ref createobject “Word.Application”]

      $::application Visible 1

      set ::docs [$::application Documents]

      set ::doc [$::docs Add]

通过

     [::tcom::info interface $::application] name

     [::tcom::info interface $::application] methods

可以得到该object的属性,名称,方法等。

     但是,经过逐步,多层次的搜索,并没有发现用于插入图片的method。而如果只是使用插入文本或文档的方法插入图片文件的话,显示的是一堆乱码,而不是所需要的图片。通过Google遍处寻找,也没有找到插入图片的方法,最后在一新闻组中看到一叫michel salvagniac的人对于Tcl/tk很活跃,发信留言,但是他也没有试过插入图片。但是建议我查看http://www.datagram.hr/download/,查看一下,发现上面这些软件只是能够让人发现该计算机上有那些application,并没有插入图片的方法。后来,一想,VB应该能够对work, excel进行操作,而Tcl也应该有相对应VB的方法。遂遍寻MSDN,果然,找到了插入图片的方法AddPicture。有兴趣的话,可以查看AddPicture的函数原型。在Tcl/tk和通过tcom中寻找到对应的方法,在此不再赘述,。通过tcom可以这样做,

    [$::application Selection] MoveDown 5 1

    [$::application Selection] MoveDown 5 1

    set testShape [$::doc InlineShapes]

    set pos [[$::application Selection] EndKey 6]

    set anchor [[$::application Selection] Range]

插入Encapsulated PostScript(*.eps) 格式文件

$testShape AddPicture d:/testchart.eps false true $anchor

插入jpg格式文件

$testShape AddPicture d:/Samples.jpg false true $anchor

这样,就能顺利的将图片插入到word文档中了。

一般来说,使用tcl/tk自动化生成wordexcel文档后,常常需要自动将其通过邮件发送给某些成员。这就需要通过tcom操作outlook。而通过outlook自动发送邮件,则不可避免会碰到由于安全性的缘故,outlook会拦截自动发送邮件,可以通过VBAscript或者安装一个叫Click Yes的小软件来解决,搜索一下,网上有解决方法。

 

抱歉!评论已关闭.