Chinaunix首页 | 论坛 | 博客
  • 博客访问: 122363
  • 博文数量: 31
  • 博客积分: 2551
  • 博客等级: 少校
  • 技术积分: 435
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-18 15:52
文章分类

全部博文(31)

文章存档

2011年(5)

2010年(4)

2009年(12)

2008年(10)

我的朋友

分类: Python/Ruby

2010-08-18 14:13:55

pywin32 可以在 下载;
搜到1个替换图片的方法

里面的ContentControls是不可用的,本地为office2003
下面是目前知道的一些记录,复杂的还不知如何用,
官网的VBA文档:
%28v=office.11%29.aspx

===============================
import win32com
from win32com import client

w=win32com.client.Dispatch('Word.Application')
w.Visible=1
#doc = w.Documents.Open('e:\\1.doc')
doc = w.Documents.Add()

r=doc.Range()  # 用此可以清空文档中所有内容,Range(x,y)其中x,y为段落或者字符?尚不能确定
r.Text='all clear!'

objsel = w.Selection
objsel.EndKey() #为当前光标所在行的最后,并非文档最后
objsel.TypeText('insert first pic')
objsel.TypeParagraph() # 插入回车

objsel.InsertBreak() # 插入页

objshape = doc.Shapes
p1 = objshape.AddPicture('e:\\1.jpeg') #通过这种doc.shapes的方式,图片插入的位置在文档开头
objsel.TypeParagraph()


dc=w.ActiveDocument.Content #取得当前活动文档的内容句柄
dc.Font.Size=15 # 设置文档的文字大小(影响全文的大小)

newpl = objsel.InlineShapes.AddPicture('e:\\1.jpeg') #而这种通过selection的插入图片方式,插入的位置是在光标位置;
objsel.TypeParagraph()
objsel.TypeText('insert second pic')

# 关于bookmarks
#
if w.ActiveDocument.Bookmarks.Exists('book1'):
    w.ActiveDocument.Bookmarks('book1').Select()
    w.Selection.InlineShapes.AddPicture('e:\\1.jpeg')   # 如果存在对应的bookmark,就替换成图片1.jpeg

# 关于InlineShapes
#
w.ActiveDocument.InlineShapes.Count #得到文中所有图片
#w.ActiveDocument.InlineShapes[0].Delete()
w.ActiveDocument.InlineShapes[0].Select()
w.Selection.InlineShapes.AddPicture('e:\\1.jpeg')  #按序号替换图片

doc.SaveAs('e:\\1.doc')
=================================
阅读(4020) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~