您的位置:首页 > 其它

win32 word中加入图片后怎么移动位置?

2013-03-12 19:48 375 查看
word程序:

section = self.doc.Sections(section_index)

pg = section.Range.Paragraphs.Add()

shape = graph_pg.Range.InlineShapes.AddPicture(pic, False, True) ##根据手册上的解释,该函数返回一个InlineShape对象,并加入到InlineShapes集合中

shape.Height,shape.Width = h,w ## 设置图片的大小

shape.Left,shape.Top = l, t ## 想移动图片的位置,失败。提示shape没有Left,Top属性。的确如此,回头看看手册,还真的不能这么设置。

## 在网上查了下资料,弄清楚了大概的原因,原来是因为InlineShapes.AddPicture函数加入的图片是作为内置图片加入的,不可浮动,不可移动。所以这就有了刚才那一幕,可以改变图片的大小,却对它的位置无能为力。

##不过还有,手册给提供了一种解决方案,将变更位置之前加入如下一行代码:

shape = shape.ConvertToShape() ## 这句话将InlineShape对象转变为Shape对象,也就将不可浮动的图片变为可浮动的图片。这样位置我们就可以做手脚了。

总结:InlineShapes.AddPicture加入的图片是不可浮动的,都是沿着当前位置继续往下排列,不会造成覆盖。而Shapes.AddPicture加入的是可浮动图片,也就不会走动下延排列,如果个人不处理好位置关系,会造成图片的重叠。简而言之,前者适用于自动排列,后者适用于人工设置位置。

ppt程序:

相较于word程序,ppt加入图片相当简洁:

slide = pres.Slides[slide_index]

shape = slide.Shapes.AddPicture(pic, False, True, left, top, width, height) ##在插入图片的时候直接指定大小、位置,避免了后续麻烦。

## 当然,如果图片添加完之后需要调整位置,可以通过Shape的Left、Top属性,这也是比word方便的地方。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: