pythondocx如何在特定位置添加图像?

2024-04-27 16:43:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个预先存在的文档,需要添加图片。图片需要位于文档右上角的框架内。它需要进入的框架已经是文档的一部分。据我所知,我所需要做的就是在框架内的段落中添加一段文字(这是一个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\u P'对象没有'add\u run'属性”

事实上,你实际上可以在段落中添加一段,但这意味着我要深入研究的元素是一种不同于常规段落对象的对象类型。这有意义吗?我一定要隐藏这个元素吗


Tags: in文档框架add元素foriftag