700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Python在word的指定位置插入图片

Python在word的指定位置插入图片

时间:2018-09-22 05:37:39

相关推荐

Python在word的指定位置插入图片

Background

关于python操作word的相关资料还是挺少的,官方文档也是没法看。自己摸索出来记录下,方便以后自己查看,也分享给大家参考哈。这里使用的是python-docx依赖包。老规矩,先放效果图。

原模板文档(箭头处是占位符哈)

插入图片后

1、安装依赖

pip3 install python-docx

2、完整源码

from docx import Documentfrom docx.shared import Inchesfrom docx.oxml.ns import qnfrom docx.enum.text import WD_ALIGN_PARAGRAPHdef center_insert_img(doc, img):"""插入图片"""for paragraph in doc.paragraphs:# 根据文档中的占位符定位图片插入的位置if '<<img1>>' in paragraph.text:# 把占位符去掉paragraph.text = paragraph.text.replace('<<img1>>', '')run = paragraph.add_run('')run.add_break()# 添加图片并指定大小run.add_picture(img, width=Inches(6.2))def save_img_to_doc(img):"""把图片保存到doc文件中的指定位置"""tpl_doc = 'reports/template.docx'res_doc = 'reports/res/-03-11.docx'# 打开模板文件document = Document(tpl_doc)# 插入图片居中center_insert_img(document, img)# 保存结果文件document.save(res_doc)def main():"""主函数"""img = 'imgs/chart.png'save_img_to_doc(img)if __name__ == '__main__':main()

FAQ

占位符问题

<<img1>>这个只是占位符,你可以换成其他任何的,只要能唯一识别到,比如ph_img1。有时无法替换是因为程序中读取doc文件时格式问题没把占位符识别成一个,可能识别成了ph_和img1,这个时候你把占位符选中,剪切掉然后再粘贴,粘贴时选择只粘贴文字就行了。具体验证占位符是否可用可参考这篇【python-docx替换字符串【保存原有样式】】

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。