• python替换word文件中的图片


    python替换word文件中的图片

    模拟鼠标键盘,截屏

    import glob
    import os
    import time
    
    import pyautogui
    import pyautogui as p
    from PIL import ImageGrab
    from pynput.keyboard import Controller
    
    # -*- coding:utf-8 -*-
    
    
    directory = './'
    
    directory1 = './output'
    
    for f in glob.glob(os.path.join(directory, '*.docx')):
        os.remove(f)
    
    for f in glob.glob(os.path.join(directory1, '*.png')):
        os.remove(f)
    
    
    def find_and_click(image_path, confidence):
        image_location = pyautogui.locateOnScreen(image_path, grayscale=True, confidence=confidence)
        if image_location:
            time.sleep(0.5)
            position = pyautogui.center(image_location)
            pyautogui.click(position)
        else:
            print(f"{image_path} 未找到指定的图片")
    
    
    time.sleep(1)
    
    # 初始化键盘控制器i
    keyboard = Controller()
    
    find_and_click("./images/01hf.jpg", 0.8)
    time.sleep(1)
    
    find_and_click("./images/02my.jpg", 0.8)
    time.sleep(1)
    
    find_and_click("./images/03bg.jpg", 0.8)
    time.sleep(1)
    
    find_and_click("./images/04cty.jpg", 0.8)
    time.sleep(1)
    
    find_and_click("./images/05zsxx.jpg", 0.8)
    time.sleep(3)
    
    find_and_click("./images/06sj.jpg", 0.8)
    time.sleep(2)
    
    find_and_click("./images/07ss.jpg", 0.8)
    time.sleep(2)
    
    keyboard = Controller()
    
    keyboard.press(key='p')  # 按键按下s
    time.sleep(0.2)
    keyboard.release(key='p')  # 按键松开s
    time.sleep(1)
    
    find_and_click("./images/08sj.jpg", 0.8)
    time.sleep(1)
    
    p.doubleClick(1169, 145, 0.5)
    
    time.sleep(5)
    
    # 定义截图区域的左上角和右下角坐标
    # 这里的坐标应根据你的需求进行调整
    left, top, right, bottom = 992, 217, 1899, 391
    
    # 使用ImageGrab.grab()方法进行截图
    # 参数为截图区域的左上角和右下角坐标
    screenshot = ImageGrab.grab(bbox=(left, top, right, bottom))
    
    # 保存截图图片
    screenshot.save('./output/0test.png')
    
    time.sleep(0.5)
    find_and_click("./images/14ht.jpg", 0.8)
    time.sleep(3)
    
    

    python替换word文件中的图片

    import glob
    import os
    import shutil
    from docx import Document
    
    # -*- coding:utf-8 -*-
    
    # 删除目录下所有的*.docx文件
    directory = './'
    
    for f in glob.glob(os.path.join(directory, '*.docx')):
        os.remove(f)
    
    # 将源文件拷贝到目标目录
    source_file = 'D:\\周报整理\\2024年周报\\2024年4月运维服务报告v06.docx'
    target_directory = './'
    shutil.copy(source_file, target_directory)
    
    # 获取目录下所有文件
    folder_path = r'./'
    
    file_list = os.listdir(folder_path)
    
    # 遍历文件列表,修改xxx.docx改名为test.docx
    for file_name in file_list:
        # 检查文件是否以 .xls 结尾
        if file_name.endswith('.docx'):
            # 构造新文件名
            new_file_name = os.path.join(folder_path, 'test.docx')
            # 重命名文件
            os.rename(os.path.join(folder_path, file_name), new_file_name)
    
    
    def get_image_info(doc):
        for rel in doc.part.rels.values():
            if rel.reltype == 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image':
                print('Image ID:', rel.rId, 'Filename:', rel.target_part.filename)
    
    
    def replace_image_by_id(doc, rId, new_image_path):
        for rel in doc.part.rels.values():
            if rel.reltype == 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image' and rel.rId == rId:
                target_part = rel.target_part
                with open(new_image_path, 'rb') as f:
                    target_part._blob = f.read()
    
    
    document = Document('test.docx')
    
    # 获取图片信息
    get_image_info(document)
    
    # 替换图片
    replace_image_by_id(document, 'rId11', './output/0test.png')
    
    
    # 保存文档
    document.save('output_test.docx')
    
    
  • 相关阅读:
    你看过字符画吗?用 Python 自己实现一个吧
    NoSQL redis 过期key处理
    聊天信息框显示消息
    CRC校验原理及步骤
    Android实时获取摄像头画面传输至PC端
    【数学建模】MATLAB应用实战系列(105)-Logistic回归——二分类(附MATLAB代码)
    HRNet 【demo 复现过程】
    扩展题:删除有序数组中重复元素
    国信证券笔试题总分120分
    数据库知识点整合
  • 原文地址:https://blog.csdn.net/qq_35583325/article/details/139621834