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

本文详细介绍了Word和PPT程序中如何插入图片并调整其位置,包括不可移动的InlineShape对象与可移动的Shape对象的区别,以及在PPT中直接指定图片大小和位置的方法。同时解释了为什么InlineShape对象不能通过Left和Top属性移动,并提供了将其转换为Shape对象的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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方便的地方。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值