四、使用python+selenium搭建一个ppt翻译小程序(将ppt中的中文翻译为英文)

该博客介绍了一个Python小程序,用于将PowerPoint(PPT)中的中文文本自动翻译成英文。程序通过selenium库与Chrome浏览器交互,使用百度翻译API进行翻译。它遍历PPT中的每个文本框,将中文内容替换为英文翻译,翻译后的PPT保存在新的文件夹中。需要注意的是,此工具仅处理文本框内容,不支持图片内的文字翻译,并且翻译后的格式可能需要手动调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

本翻译小程序功能为将ppt中的中文翻译称为英文。项目文件结构如下:

1、newppt:转换成英文之后所存的ppt;
2、oldppt:需要转换的ppt;
3、chromedriver:需要自行下载,和电脑当中所使用的Google浏览器版本对应;
4、main.py:主程序;
5、translating.py:翻译的代码。

二、main.py内容:

#coding = utf-8
from translating import get_words
if __name__=='__main__':
    read_path = './oldppt/xiaochen.pptm'  #待翻译ppt的路径
    save_path = './newppt/xiaochen.pptx'  #存放路径
    get_words(read_path, save_path)
    '''
    #----下面一部分是批量翻译ppt当中的内容-----
    path_in = './oldppt' #需要翻译的ppt所在的路径
    path_out = './newppt' #翻译后的ppt需要保存的路径
    for i in os.listdir(path_in):
        read_path = path_in +'/'+i
        save_path = path_out +'/' +i
        get_words(read_path, save_path)
    '''


三、translating.py内容:

from selenium import webdriver
import time
import re
from pptx import Presentation
def Translate(words):
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument('--headless')
    browser = webdriver.Chrome('./chromedriver',options=chrome_options)
    browser.get("https://fanyi.baidu.com/?aldtype=16047#auto/zh")
    browser.find_element_by_css_selector('#baidu_translate_input').send_keys(words)
    time.sleep(3)   #网页跳变时给网页点时间,跳转完成后再提取网页,若直接提取网页则不需要等待
    data = browser.page_source
    dat = re.findall('<div style="display:none;" id="original-output"><p>(.*?)</p></div>',data)
    Eng = dat[0].replace("</p><p>", "\n")
    Eng = Eng.replace("&gt;",">>")
    Eng = Eng.replace("&gt;&gt;", ">>")
    Eng = Eng.replace("&lt;", "<")
    Eng = Eng.replace(">>>>", ">>")
    browser.quit()
    time.sleep(1)
    return Eng
def get_words(read_path,save_path):
    prs = Presentation(read_path)
    ctotal = len(prs.slides)
    num = 1
    for slide in prs.slides:
        # 获取形状shape
        print("总共%d页,正在翻译第%d页..." % (ctotal, num))
        #print(slide.shapes)
        for shape in slide.shapes:
            if shape.has_text_frame:  # 判断是否有文字
                text_frame = shape.text_frame  # 获取文字框
                text_frame.text.strip()
                if text_frame.text != '':
                    try:
                        Eng = Translate(text_frame.text)
                        text_frame.text = Eng
                    except:
                        print('error')
        num +=1
    prs.save(save_path)

四、写在后面

1、本小程序只能翻译ppt中插入的文本框当中的文字,不能翻译图片;
2、翻译完后,格式需要做相应的调整,有特殊字符的也需要做相应的修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小树苗m

您的打赏,是我的动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值