【发布时间】:2016-12-17 15:28:48
【问题描述】:
我正在尝试使用 python-docx 库从 .docx 文件中获取图像索引。我能够提取图像的名称、图像的高度和宽度。但不是它在word文件中的索引
import docx
doc = docx.Document(filename)
for s in doc.inline_shapes:
print (s.height.cm,s.width.cm,s._inline.graphic.graphicData.pic.nvPicPr.cNvPr.name)
输出
21.228 15.920 IMG_20160910_220903848.jpg
事实上,我想知道是否有任何更简单的方法来获取图像名称,例如 s.height.cm 为我获取了以厘米为单位的高度。我的主要要求是了解图像在文档中的位置,因为我需要提取图像并对其进行一些处理,然后再次将图像放回同一位置
【问题讨论】:
-
您可以使用支持完整 MS Word 对象模型的 win32com 轻松完成此操作。 python-docx 库似乎特别有限,在使用或访问 Shape 对象时更是如此。此外,
InlineShapes序列支持索引访问 (read the dox),因此虽然s没有index属性,但您可以将它们视为索引序列。 -
@DavidZemens 您能否详细说明索引序列的概念?
-
这意味着
inline_shapes序列是有序的并且可以通过索引例如doc.inline_shapes[0]等来访问,不是吗? docs.python.org/3/tutorial/… -
好的。我得到它。但我最初的问题是不同的。假设.docx 文件的内容是:这是一个示例文档
。图像位于此语句之前。 所以我需要的是存在的索引或位置,在这种情况下,它在 document 之后和 .the image -
查看该库的 dox,似乎不受支持。使用 win32com 使用所有 Word 对象模型方法/属性来实例化 word 文档,内联形状应该有一个
.range(或.Range,不确定大小写)属性来识别 字符 在文档中的位置。
标签: python python-docx