携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第23天,点击查看活动详情
前言
Word 文档可以包含图像以显示图表或任何其他类型的额外信息,通常情况下,为文档添加图像有助于阅读者更好的理解文档。
如果我们有在 Word 中插入图片的经验,就会知道正确定位图像在多数情况下十分复杂,因为图像周围的文字等会改变图片的布局。虽然以编程方式定位图像会对这种情况有所改善,但由于需要指定图片具体位置,因此更改周围的段落同样可能会改变图片的呈现方式。
Python 在 Word 文档中插入图片
在本节中,我们将介绍如何使用 python-docx 将图像文件插入到 Word 文档中。
首先,导入 python-docx 模块:
>>> import docx
然后,创建一个新的 Word 文档并在其中添加一些文本。创建一个新文档:
>>> document = docx.Document()
创建一个新的段落,并在其中添加一些文本:
>>> document.add_paragraph('Some classes that are very well separated from the rest:')
<docx.text.paragraph.Paragraph object at 0x7f91bd19a6d0>
从文件系统中选择图片,并将图片添加到 Word 文档中:
>>> image = document.add_picture('12.png')
适当缩放图像以适应页面大小 (14 x 10 cm):
>>> from docx.shared import Cm
>>> image.width = Cm(14)
>>> image.height = Cm(10)
插入图片时可以将其调整为适当大小。默认情况下,按照原始图片大小插入,当图片尺寸过大时可能会导致图像显示并不完整,在调整图像大小时按照图像的比例进行缩放可以得到更好的显示效果,插入图片时也可以使用其他单位。
图像已添加到新段落中。将其设置为中心对齐并添加描述性文本:
>>> paragraph = document.paragraphs[-1]
>>> from docx.enum.text import WD_ALIGN_PARAGRAPH
>>> paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER
>>> paragraph.add_run().add_break()
>>> paragraph.add_run('A picture of Example')
<docx.text.run.Run object at 0x7f91bd19aed0>
插入图像时默认也会创建一个新段落,因此可以设置段落样式来对齐图像或在此段落中添加文本,例如添加文本用于描述图像。可以通过 document.paragraph 属性获得文档中所有段落。使用 document.paragraph[-1] 获取最后一段(即含有图片的段落)并设置段落样式,使其与中心对齐。然后使用换行符添加了一个新行以及一个用于描述图片的文本。
插入图像完成后,在图像后添加一个带有额外文本的新段落,然后保存文档:
>>> document.add_paragraph('It is very common nowadays to deal with labeled datasets.')
<docx.text.paragraph.Paragraph object at 0x7f91be451ad0>
>>> document.save('word_with_pic.docx')
打开保存完成的 Word 文档,检查结果: