我有一个需要添加图片的现有文档。图片必须位于文档右上角的框架内。它需要放入的框架已经是文档的一部分。据我了解,我所要做的就是在框架内的段落中添加一个段落(这是一个v:shape元素),然后在其中添加图片,图片的位置应假定周围元素的位置。唯一的问题是我只能将一个段落,运行或图片添加到文档的末尾,而不能添加到文档较远的特定元素。另外,尽管我可以为图像设置大小,但没有选项可以设置图像在页面上的位置。反正有这样做吗?同样,我要执行的操作是在页面上特定的x,y位置向文档添加图片。
编辑: 这是我最近的尝试。除了深入了解文档以获取要添加图片的元素之外,我没有别的办法。
for r in doc.paragraphs[0].runs:
for r2 in r._r.iterchildren():
if r2.tag == '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}pict':
for r3 in r2.iterchildren():
if r3.tag == '{urn:schemas-microsoft-com:vml}shape':
for r4 in r3.iterchildren():
if r4.tag == '{urn:schemas-microsoft-com:vml}textbox':
for r5 in r4.iterchildren():
if r5.tag == '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}txbxContent':
for r6 in r5.iterchildren():
if r6.tag == '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}p':
#pic = doc.add_picture('image.jpg', width=1508760, height=1905000)
#pic_xml = pic._inline.xml
#r6.append(pic._inline)
pr = r6.add_run()
pr.add_picture('image.jpg', width=1508760, height=1905000)
我已经阅读了一些示例,这些示例说将运行添加到段落中,然后向该运行添加图片。这是我正在尝试的方法,但是我得到的只是一个错误,例如:“'CT_P'对象没有属性'add_run'”
尽管事实是您实际上可以在段落中添加游程,但这意味着我要向下钻取的元素是与常规段落对象不同的对象类型。那有意义吗?我是否必须隐秘此元素?