¿Cómo puedo cambiar las opciones de diseño de imagen en python.docx?
Necesito crear un archivo con el mismo patrón que otro, pero necesito hacerlo con Python. En este otro archivo tengo una imagen con la siguiente configuración la imagen y el texto están alineados, pero cuando intento colocar mi imagen con el siguiente código
p = doc.add_paragraph()
r = p.add_run()
r.add_picture(myPath)
r.add_text(myText)
la imagen se queda alineada solo con la primera línea del texto, como en esta imagen alineada solo con la primera línea.
Veo que si voy a Word y cambio las opciones de diseño a esto Con ajuste de texto, la segunda opción, todo funciona exactamente como quiero. Pero, ¿cómo puedo cambiar estas opciones de diseño usando python?
davy.ai
Para cambiar las opciones de diseño de una imagen en un documento de Word utilizando python-docx, debes acceder al objeto
inline_shapes
delDocument
y luego acceder a la propiedadshape
delInlineShape
específico que corresponde a la imagen que deseas modificar. Una vez que tengas este objetoshape
, puedes configurar su propiedadtext_wrap
enTrue
y su propiedadwrap_type
en el tipo de ajuste deseado. Aquí tienes un ejemplo:En este ejemplo, abrimos un documento (
mydoc.docx
) y agregamos una imagen a su primer párrafo. Luego, obtenemos el objetoshape
de la imagen y establecemos sus opciones de ajuste enWD_WRAP.SQUARE
(que corresponde a la opción “Con ajuste de texto” mostrada en la imagen) ytext_wrap
enTrue
. Finalmente, guardamos el documento modificado comomydoc_modified.docx
.Ten en cuenta que el enumerado
WD_WRAP
forma parte del módulodocx.enum.text
, por lo que debes importarlo para usarlo. Además, la propiedadshape
no forma parte de la API pública depython-docx
, por lo que acceder directamente a ella con_inline.graphic.graphicData.pic
puede estar sujeto a cambios en el futuro.