python 对于 Word 文件的处理 能否将 Word 中图片设置为浮于文字上方?

这边有一个需求:需要把一个图片插入到 word 文档的指定位置 ,并且图片需要设置成浮于文字上方,不然的话图片会影响整个 word 的布局 。搜索了很多文档,只能处理到指定位置插入一张指定图片 ,但是没办法设置图片的样式 — 浮于文字上方

Jason990420
最佳答案

For your reference

from win32com import client
from pathlib import Path

word = client.Dispatch('Word.Application')
word.Visible = True
doc = word.Documents.Add()
range = doc.Range(0, 0)

range.InsertAfter('由 G.E.M 邓紫棋 作词谱曲抒情新作〈很久之后〉,全曲以清脆'
                  '琴音贯穿,慢板节奏搭配邓紫棋悠然而平稳的唱述,为一段已逝'
                  '的爱恋暗暗增添说不出的伤感。全曲在弦乐团合奏将歌曲带至高'
                  '潮,情感的流泻更加丰沛直接,唤醒每个人内心里的这位「曾经'
                  '」。\n')

range.InsertAfter('〈很久以后〉描述的是一段没有结局的感情。分手后,就算时隔'
                  '许久才与旧情人再度相见,两个人的问候也换了意义。开始一段'
                  '爱情需要两人刚刚好的默契,但只需一个人的转身,就能结束一'
                  '段爱情,这样的分手不容易叫人接受,却仍因必须面对,更为心'
                  '如刀割。当理性凌驾于感性之上时,也许只能像只猫,就算受伤'
                  '也只能偷偷地自行躲在角落舔拭伤口,因为知道怎么做都是无济'
                  '于事,于是只能故作坚强,相信一切都会渐渐变好,如果再见,'
                  '微笑点头。\n')

range.InsertAfter('邓紫棋分享,自己很多时候都是藉由音乐在治疗自己的伤口,其'
                  '中「感情」是最打击她的东西,她也忍不住在新歌发表会上落泪'
                  '坦言,〈很久以后〉这首歌让她想起了一段过去受伤的恋情。「'
                  '录这首歌对我非常不容易,想起了很多过往。」邓紫棋透露,这'
                  '首歌一共花了两天录制,因为录制期间「就一直在哭!」邓紫棋'
                  '不讳言自己面对感情时很像猫,其实受伤了,却不愿意告诉别人'
                  '自己有多受伤,于是在人前欢喜,却暗自不断舔伤,甚至到失去'
                  '对方的时候都还在自我欺骗,告诉自己「这不是什么了不起的事'
                  '情,这点失恋算什么」,但因没有诚实面对伤口,让自己的情绪'
                  '压抑太久,她也笑着自嘲,就是因为这些对世界的感受或是感情'
                  '经历的长久累积,促使自己能在 7 个月内完成《摩天动物园》'
                  '这张专辑。\n')

range.InsertAfter('歌曲〈很久以后〉同为疗愈系畅销作家肆一散文改编电影《可不'
                  '可以,你也刚好喜欢我》主题曲,由亿万编导林孝谦与吕安弦等'
                  '人编剧,台湾新锐导演简学彬执导,集合台湾青春实力派新星曹'
                  '佑宁、陈妤、林映唯等人共同演出的校园纯爱故事,这首歌也为'
                  '电影中甜而微酸的初恋情怀画龙点睛,让影像和音乐做了完美的'
                  '结合。')

paragraphs = doc.Paragraphs

wdWrapMergeInline    = 0
wdWrapMergeSquare    = 1
wdWrapMergeTight     = 2
wdWrapMergeBehind    = 3
wdWrapMergeFront     = 4
wdWrapMergeThrough   = 5
wdWrapMergeTopBottom = 6
# =====================================================
range1 = paragraphs(2).Range
sh = range1.InlineShapes.AddPicture(
    Path('d:/150.jpg'), False, True).ConvertToShape()
sh.WrapFormat.Type = wdWrapMergeTight
# =====================================================
doc.SaveAs('D:/text.docx')
doc.Close()
word.Quit()
4年前 评论
13256969962 (楼主) 4年前
13256969962 (楼主) 4年前
讨论数量: 2
pardon110

若用docx其默认是内联图片,对外提供的是文本层。你可以间接访问图片层,在shape或picture源码内看使用私有方法改变

4年前 评论
13256969962 (楼主) 4年前
Jason990420

For your reference

from win32com import client
from pathlib import Path

word = client.Dispatch('Word.Application')
word.Visible = True
doc = word.Documents.Add()
range = doc.Range(0, 0)

range.InsertAfter('由 G.E.M 邓紫棋 作词谱曲抒情新作〈很久之后〉,全曲以清脆'
                  '琴音贯穿,慢板节奏搭配邓紫棋悠然而平稳的唱述,为一段已逝'
                  '的爱恋暗暗增添说不出的伤感。全曲在弦乐团合奏将歌曲带至高'
                  '潮,情感的流泻更加丰沛直接,唤醒每个人内心里的这位「曾经'
                  '」。\n')

range.InsertAfter('〈很久以后〉描述的是一段没有结局的感情。分手后,就算时隔'
                  '许久才与旧情人再度相见,两个人的问候也换了意义。开始一段'
                  '爱情需要两人刚刚好的默契,但只需一个人的转身,就能结束一'
                  '段爱情,这样的分手不容易叫人接受,却仍因必须面对,更为心'
                  '如刀割。当理性凌驾于感性之上时,也许只能像只猫,就算受伤'
                  '也只能偷偷地自行躲在角落舔拭伤口,因为知道怎么做都是无济'
                  '于事,于是只能故作坚强,相信一切都会渐渐变好,如果再见,'
                  '微笑点头。\n')

range.InsertAfter('邓紫棋分享,自己很多时候都是藉由音乐在治疗自己的伤口,其'
                  '中「感情」是最打击她的东西,她也忍不住在新歌发表会上落泪'
                  '坦言,〈很久以后〉这首歌让她想起了一段过去受伤的恋情。「'
                  '录这首歌对我非常不容易,想起了很多过往。」邓紫棋透露,这'
                  '首歌一共花了两天录制,因为录制期间「就一直在哭!」邓紫棋'
                  '不讳言自己面对感情时很像猫,其实受伤了,却不愿意告诉别人'
                  '自己有多受伤,于是在人前欢喜,却暗自不断舔伤,甚至到失去'
                  '对方的时候都还在自我欺骗,告诉自己「这不是什么了不起的事'
                  '情,这点失恋算什么」,但因没有诚实面对伤口,让自己的情绪'
                  '压抑太久,她也笑着自嘲,就是因为这些对世界的感受或是感情'
                  '经历的长久累积,促使自己能在 7 个月内完成《摩天动物园》'
                  '这张专辑。\n')

range.InsertAfter('歌曲〈很久以后〉同为疗愈系畅销作家肆一散文改编电影《可不'
                  '可以,你也刚好喜欢我》主题曲,由亿万编导林孝谦与吕安弦等'
                  '人编剧,台湾新锐导演简学彬执导,集合台湾青春实力派新星曹'
                  '佑宁、陈妤、林映唯等人共同演出的校园纯爱故事,这首歌也为'
                  '电影中甜而微酸的初恋情怀画龙点睛,让影像和音乐做了完美的'
                  '结合。')

paragraphs = doc.Paragraphs

wdWrapMergeInline    = 0
wdWrapMergeSquare    = 1
wdWrapMergeTight     = 2
wdWrapMergeBehind    = 3
wdWrapMergeFront     = 4
wdWrapMergeThrough   = 5
wdWrapMergeTopBottom = 6
# =====================================================
range1 = paragraphs(2).Range
sh = range1.InlineShapes.AddPicture(
    Path('d:/150.jpg'), False, True).ConvertToShape()
sh.WrapFormat.Type = wdWrapMergeTight
# =====================================================
doc.SaveAs('D:/text.docx')
doc.Close()
word.Quit()
4年前 评论
13256969962 (楼主) 4年前
13256969962 (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!