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

1、需求说明

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

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

2、效果展示

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

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

 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)

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

你可能感兴趣的:(python)