如何将两张图片放在同一级别的word文件(.docx)python中

时间:2018-11-20 14:10:05

标签: python docx

我想将徽标和条形码放在同一水平上,而不是一个放在另一个顶部。徽标应保留在word文件的最左侧,条形码应位于单词文件的最右侧。这是我的代码,谢谢:enter image description here

import uuid 
import pandas as pd
import pyqrcode 
from docx import Document
from docx.shared import Inches


qr=pyqrcode.create(str(uuid.uuid4()).replace('-',''))
qr.png('somecode.png')

df=pd.DataFrame(pd.read_excel('Komplette- 
GastAccountFHZugangsdatenFertig.xlsx'))

Attributes=['Name', 'Vorname ', 'Geschlecht', 'Adresse (in Marokko)',
       'Telefonnummer', 'E-Mailadresse', 'Studiengang', 'Semester']


document = Document()

document.add_heading('Informationen.',level=0)

document.add_picture('Informatik_Logo.png',height=Inches(1.0))


p = document.add_paragraph()
r = p.add_run()


p_format=p.paragraph_format

p_format.left_indent=Inches(4.5)
r.add_picture('somecode.png',width=Inches(1.0))


table=document.add_table(len(Attributes),2,style='LightGrid-Accent1')


for i in range(len(Attributes)):
        row=table.rows[i]
        row.cells[0].text=Attributes[i]
        Infos=df[Attributes[i]]
        string=str(Infos[49])
        row.cells[1].text=string



document.save('sample.docx')

2 个答案:

答案 0 :(得分:1)

根据我在the documentation中看到的情况,python-docx目前仅支持内联图片,而不支持 floating 图片,这意味着您只能获得您当前的外观。从文档中:

  

在撰写本文时,python-docx仅支持嵌入式图片。可以添加浮动图片。如果您有活跃的用例,请在问题跟踪器上提交功能请求。 Document.add_picture()方法将指定的图片添加到文档末尾的自己的段落中。

根据最后一句话,我认为您目前无法做到。一种解决方法是插入一张具有一行和两列的表,然后在每个单元格中插入一个图像。

答案 1 :(得分:0)

我可以为您提供帮助,只需在代码中添加一句话

r.add_picture('somecode.png',width=Inches(2.0))

仅此而已。只需再写一次该句子即可。如果您想在同一水平上查看更多图片,则只需添加该句子即可。我试过了,对我有用。

有我的测试代码

dc = Document()

run = dc.add_paragraph().add_run()
run.add_picture("./picture/danilise.jpg", width=Inches(1.1))
run.add_picture("./picture/danilise.jpg", width=Inches(1.3))
run.add_picture("./picture/danilise.jpg", width=Inches(1.5))

dc.save("test1.docx")