Saltar al contenido

¿Agregar una imagen en una posición específica en el documento (.docx)?

Solución:

Citando la documentación de python-docx:

El método Document.add_picture () agrega una imagen específica al final del documento en un párrafo propio. Sin embargo, al profundizar un poco más en la API, puede colocar texto en cualquier lado de la imagen en su párrafo, o en ambos.

Cuando “profundizamos un poco más”, descubrimos el Run.add_picture() API.

A continuación se muestra un ejemplo de su uso:

from docx import Document
from docx.shared import Inches

document = Document()

p = document.add_paragraph()
r = p.add_run()
r.add_text('Good Morning every body,This is my ')
r.add_picture('/tmp/foo.jpg')
r.add_text(' do you like it?')

document.save('demo.docx')

bueno, no sé si esto se aplicará a usted, pero esto es lo que hice para configurar una imagen en un lugar específico para un documento docx: Creé un documento docx base (documento de plantilla). En este archivo, he insertado algunas tablas sin bordes, para usarlas como marcadores de posición para las imágenes. Al crear el documento, primero abro la plantilla y actualizo el archivo creando las imágenes dentro de las tablas. Entonces, el código en sí no es muy diferente de su código original, la única diferencia es que estoy creando el párrafo y la imagen dentro de una tabla específica.

from docx import Document
from docx.shared import Inches

doc = Document('addImage.docx')
tables = doc.tables
p = tables[0].rows[0].cells[0].add_paragraph()
r = p.add_run()
r.add_picture('resized.png',width=Inches(4.0), height=Inches(.7))
p = tables[1].rows[0].cells[0].add_paragraph()
r = p.add_run()
r.add_picture('teste.png',width=Inches(4.0), height=Inches(.7))
doc.save('addImage.docx')

Esta es mi solución. Tiene la ventaja sobre la primera propuesta de que rodea la imagen con un título (con estilo Header 1) y una sección para comentarios adicionales. Tenga en cuenta que debe hacer las inserciones en el orden inverso al que aparecen en el documento de Word.

Este fragmento es particularmente útil si desea insertar imágenes mediante programación en un documento existente.

from docx import Document
from docx.shared import Inches

# ------- initial code -------

document = Document()

p = document.add_paragraph()
r = p.add_run()
r.add_text('Good Morning every body,This is my ')
picPath="D:/Development/Python/aa.png"
r.add_picture(picPath)
r.add_text(' do you like it?')

document.save('demo.docx')

# ------- improved code -------

document = Document()

p = document.add_paragraph('Picture bullet section', 'List Bullet')
p = p.insert_paragraph_before('')
r = p.add_run()
r.add_picture(picPath)
p = p.insert_paragraph_before('My picture title', 'Heading 1')

document.save('demo_better.docx')
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *