栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python3-word文档操作(九):给word文档添加一张图片-利用docx库

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python3-word文档操作(九):给word文档添加一张图片-利用docx库

简介:

docx库不仅可以提取word文档中的图片,也可以给文档添加图片。本篇介绍如何添加一张图片到word文档中。

看一下效果图:

 其中,最后的图片是通过代码加进去的。

代码:
# -*- coding: utf-8 -*-
import os
import sys
import re
import time
import docx
from docx.shared import RGBColor
from docx.shared import Pt


def fetch_image(doc_path, desc_path):
    """
    抓取word文件中的图片

    :param doc_path: 文件名称
    :param desc: 目标路径
    :return: 
    """
    doc = docx.Document(doc_path)
    dict_rel = doc.part._rels #rels其实是个目录
    for rel in dict_rel:
        rel = dict_rel[rel]
        print("rel",rel.target_ref)
        if "image" in rel.target_ref:
            # create_dir(desc_path)
            img_name = re.findall("/(.*)", rel.target_ref)[0]  #windos:/
            print("img_name",img_name)
            word_name = os.path.splitext(doc_path)[0]
            print("word_name",word_name)
            if os.sep in word_name:
                new_name = word_name.split('\')[-1]
            else:
                new_name = word_name.split('/')[-1]
            #图片文件
            img_name = f'{new_name}_{img_name}'
            with open(f'{desc_path}/{img_name}', "wb") as f:
                f.write(rel.target_part.blob)

def get_image():
    """
    获取word文档中的图片

    :param:
    :return: 
    """
    doc_name = "念奴娇_赤壁怀古.docx"
    desc_path = sys.argv[1]
    pwd = os.path.dirname(os.path.abspath(desc_path))
    print("[get_image]desc_path",desc_path)
    desc_path = os.path.join(pwd, desc_path) #目标路径
    fetch_image(doc_name,desc_path)


def add_image():
    """
    在weord文档中添加一个图片

    :param:
    :return: 
    """
    doc_name = "念奴娇_赤壁怀古_1654065536.139004.docx"
    doc = docx.Document(doc_name)

    #添加一个图片
    doc.add_picture('念奴娇_赤壁怀古_image1.jpg')

    doc.save('add_image_test.docx')


#创建目录
def create_dir(desc_path):
    if not os.path.exists(desc_path):
        os.makedirs(desc_path)

if __name__ == '__main__':
    #create_doc()
    #fetch_doc()
    #update_doc()
    #create_doc_table()
    #fetch_doc_table()
    #modify_doc_table()
    #get_image()
    add_image()

说明:

1. add_image中,打开word文档的代码:

   

    doc_name = "念奴娇_赤壁怀古_1654065536.139004.docx"
    doc = docx.Document(doc_name)

2.add_image中,添加一张图片的代码:

   

    doc.add_picture('念奴娇_赤壁怀古_image1.jpg'):添加一张图片

3. 保存图片:

       doc.save('add_image_test.docx')

用python操作word文档中的图片,是不是很简单呀!


 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1012716.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号