围绕内联图像边框



有没有办法用python docx在内联图像周围放置框架?

我有这样的东西:

from docx import Document
from docx.shared import Mm
document = Document()
table = document.add_table(rows=1, cols=3)
pic_cells = table.rows[0].cells
paragraph = pic_cells[0].paragraphs[0]
run = paragraph.add_run()
run.add_picture('testQR.png', width=Mm(15), height=Mm(15))
document.save('demo.docx')

我需要在图像周围放一个框架来标记这个图像的边界(应该与图像大小相同)。

如何使用python docx package格式化此文件?

docx目前似乎不支持这样的功能。由于您使用的是表格,您可能可以做以下操作:

  1. 创建新的Word模板
  2. 为要放置图像的单元格定义带边框的自定义表格样式
  3. 将Python脚本中的模板与docx一起使用,如下所示:document = Document('template.docx')
  4. 应用您刚刚创建的表格样式

请阅读此帖子了解更多详细信息。

另一种方法可能不那么优雅,但100%有效。在docx中使用图像之前,只需在图像周围创建一个边框。您可以使用PIL(用于python2)或Pillow(用于pyhton3)模块进行图像操作。

from PIL import Image
from PIL import ImageOps
img = Image.open('img.png')
img_with_border = ImageOps.expand(img, border=1, fill='black')
img_with_border.save('img-with-border.png')

此代码将获取您的img.png文件,并创建一个新的img-with-border.png,其轮廓为1px黑色边框。那么,只需在run.add_picture语句中使用img-with-border.png即可。

正如vrs在评论中提到的,最简单的解决方案是:

table = document.add_table(rows=5, cols=2, style="Table Grid")

并将图片添加到"跑步"中。

相关内容

  • 没有找到相关文章

最新更新