添加图片
Word 允许您使用菜单项将图像放置在文档中。通过菜单栏的 Insert
> Photo
> Picture from file
...,以下是 python-docx 如何做到这一点:
document.add_picture('image-filename.png')
此示例使用一个路径,该路径从本地文件系统加载图像文件。您还可以使用类似文件的对象【file-like object】,本质上是任何充当打开文件的对象。如果您从数据库或通过网络检索图像并且不想涉及文件系统,这可能会很方便。
图像尺寸
默认情况下,添加的图像以原始
大小显示。这通常比您想要的要大。原生大小计算为 pixels / dpi
。因此,分辨率为 300 dpi
的 300x300
像素图像出现在一英寸的正方形中。问题是大多数图像不包含 dpi
属性,默认为 72 dpi
。这将使相同的图像在一侧显示为 4.167
英寸,大约是页面的一半。
要获得所需大小的图像,您可以使用方便的单位指定其宽度或高度,例如英寸或厘米:
from docx.shared import Inches
document.add_picture('image-filename.png', width=Inches(1.0))
您可以自由指定宽度和高度,但通常您不想这样做。如果您只指定一个,python-docx则使用它来计算另一个的正确缩放值。这样可以保留纵横比
,并且您的图片看起来不会被拉伸。
提供Inches
和Cm
类以让您以方便的单位指定测量值。在内部,python-docx使用英制公制单位,914400 作为一英寸。所以如果你忘记了,只是放一些东西,width=2
你会得到一个非常小的图像:)。您需要从 docx.shared
子包中导入它们。您可以在算术中使用它们,就像它们是整数一样,实际上它们是。所以像这样的表达就可以了: width = Inches(3) / thing_count