4 votes

Comment mettre deux images au même niveau dans un fichier Word (.docx) en python

Je veux mettre le logo et le code-barres sur le même niveau et pas l'un au-dessus de l'autre. Le logo doit rester tout à gauche et le code-barres tout à droite du fichier Word. Voici mon code, merci : 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('Informations.',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')

2voto

Jonah Bishop Points 4040

D'après ce que je vois dans la documentation, python-docx ne prend actuellement en charge que les images en ligne, pas les images flottantes, ce qui signifie que vous ne pouvez obtenir que l'apparence que vous avez actuellement. Selon la documentation :

Au moment de la rédaction, python-docx ne prend en charge que les images en ligne. Les images flottantes peuvent être ajoutées. Si vous avez un cas d'utilisation actif, soumettez une demande de fonctionnalité sur le suivi des problèmes. La méthode Document.add_picture() ajoute une image spécifiée à la fin du document dans un paragraphe séparé.

Sur la base de cette dernière phrase, je pense que ce que vous essayez de faire est actuellement impossible. Une solution de contournement pourrait être d'insérer un tableau avec une rangée et deux colonnes, et d'insérer une image dans chaque cellule.

0voto

dream-blue Points 1

Je peux vous aider avec ça, il suffit d'ajouter une phrase dans votre code

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

ce n'est tout. il suffit d'écrire la phrase une fois de plus. et si vous voulez plus d'images au même niveau, tout ce que vous avez à faire est d'ajouter la phrase. j'ai essayé et ça a fonctionné pour moi.

voici mon code de test

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")

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X