python将图片插入word文件的指定位置,并转为pdf文件

1、需求说明

        现需要做一份数据报告,报告中只需插入少量图片,其他部分的文字和格式不变,需要将图片插入word文件的指定位置,并最终生成一份pdf报告。注意:是基于已有word文件插入图片,不是创建word文件的同时插入图片。

        本文将图片插入指定位置的方法,是使用“表格定位”法。所使用的第三方库为:python-docx  (操作word文件),win32com(word文件转成pdf),所需自行安装。

2、效果展示

        在word文件中实现任意位置插入图片,同时,可通过设置表格的格式,将插入图片的位置进行居中显示,表格的框线去除等。

 3、代码展示

       以下代码可实现上述所有内容,各位小伙伴可根据自己需求再进行优化。

from win32com.client import constants,gencache
from docx import Document
from docx.shared import Inches,Pt,Cm


# 将图片插入word指定位置
def save_img_to_doc(img):
    loc_doc = 'C:\\Users\\dongjunli\\Desktop\\report.docx' 
    rloc_doc = 'C:\\Users\\dongjunli\\Desktop\\r_report.docx'
    # 打开模板文件
    document = Document(loc_doc)
    document.tables         #搜索word里面所有的表格
    tb1=document.tables[4]  #选好将图片插入的位置,以表格的位置来确定,‘4’代表第5个表格
    tb1.cell(0, 0).paragraphs[0].add_run().add_picture(img)    #在表格(0,0)位置的单元格的第一个段落里添加图像
    # print('图形图像的数量:', len(document.inline_shapes))
    document.inline_shapes[0].height = Cm(10.55)  #指定插入图片的高度
    document.inline_shapes[0].width = Cm(14.55)   #指定插入图片的宽度
    document.save(rloc_doc)  #保存为新的word文件

# word文件转换为pdf文件
def word2pdf(rloc_doc,pdfPath):
    wordPath = rloc_doc
    word = gencache.EnsureDispatch('Word.Application')
    doc = word.Documents.Open(wordPath,ReadOnly=1)
    doc.ExportAsFixedFormat(pdfPath,constants.wdExportFormatPDF)

if __name__ == '__main__':
    img = 'C:\\Users\\dongjunli\\Desktop\\figure.png'
    save_img_to_doc(img)
    rloc_doc = 'C:\\Users\\dongjunli\\Desktop\\r_report.docx'
    pdfPath = 'C:\\Users\\dongjunli\\Desktop\\r_report.pdf'
    word2pdf(rloc_doc,pdfPath)

如有帮到您,还能帮忙点赞以下,谢谢!

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值