【AI+编程】使用chatGPT AI工具Python语言从0到1完成pdf转docx小工具

昨天运营同学问我一个问题,能不能把一个pdf转换成 docx 。 

我给他提供了2种方式。一是用 PDF Reader PRO软件, 一个是WPS会员(普通用户只能转换3页)。

休息间隙,脑海里冒出一个想法。能不能用python写一个pdf转换docx小工具呢。说干就干。

有了AI工具后,自己变懒了。让chatGPT帮我写。

角色:你是一个python编程高手,请编写  pdf转docx并打包成 mac和windows可执行文件的代码.

将PDF转换为DOCX文件并创建一个可执行程序包是一个复杂的任务,涉及多个步骤。要完成这个任务,先需要编写Python脚本来处理PDF到DOCX的转换。然后,使用PyInstaller或其他类似库将这个Python脚本打包成适用于Mac和Windows的可执行文件。这里是一个基本的Python脚本示例,使用了pdf2docx库来执行转换:首先,安装必要的包:bashpip install pdf2docx pyinstaller以下是转换脚本 pdf_to_docx.py 的一个示例:pythonimport sysfrom pdf2docx import Converter
def convert_pdf_to_docx(pdf_path, docx_path):    cv = Converter(pdf_path)    cv.convert(docx_path, start=0, end=None)    cv.close()    print(f"Converted {pdf_path} to {docx_path}")
if __name__ == '__main__':    if len(sys.argv) < 3:        print("Usage: python pdf_to_docx.py input.pdf output.docx")    else:        pdf_path = sys.argv[1]        docx_path = sys.argv[2]        convert_pdf_to_docx(pdf_path, docx_path)接下来,你可以使用PyInstaller将此脚本打包成可执行文件。对于Windows环境:bashpyinstaller --onefile pdf_to_docx.py对于Mac环境,你可以在Mac中运行相同的命令,但可能还需要适配到Mac运行的环境设置。PyInstaller会在项目目录下的dist文件夹中创建可执行文件。这样,你可以将生成的可执行文件分发给Windows或Mac用户,他们可以不需要安装Python环境就能运行程序进行PDF到DOCX的转换。请注意,生成的可执行文件是平台特定的,也就是说,你需要在Windows上生成Windows的可执行文件,在Mac上生成Mac的可执行文件。此外,可执行文件的打包过程可能会因为你的系统和环境配置的不同而有所差异,例如,如果你使用的Mac系统版本为 Catalina 或更高,你可能需要对 PyInstaller 打包过程做些调整,以解决兼容性问题。在完成上述步骤之后,任何使用这些可执行文件的用户应该能够无需Python环境就能将PDF文件转换为DOCX格式。这个脚本非常简单,不包括错误检查和复杂的命令行接口,对于实际应用,你可能需要添加更多的功能以更好地服务于用户。

请在上面基础上, 添加图形图界面上传pdf,增加loading界面,并下载docx的功能

import tkinter as tkfrom tkinter import filedialog, messageboxfrom pdf2docx import Converterimport threading

def convert_pdf_to_docx(pdf_path, docx_path):    try:        cv = Converter(pdf_path)        cv.convert(docx_path, start=0, end=None)        cv.close()        messagebox.showinfo("成功", f"'{pdf_path}' 被转换为 '{docx_path}'")    except Exception as e:        messagebox.showerror("错误", str(e))    finally:        loading_label.pack_forget()        convert_button['state'] = 'normal'

def thread_convert_pdf_to_docx(pdf_path, docx_path):    threading.Thread(target=convert_pdf_to_docx, args=(pdf_path, docx_path)).start()

def select_pdf():    file_path = filedialog.askopenfilename(filetypes=[("PDF files", "*.pdf")])    if file_path:        pdf_entry.delete(0, tk.END)        pdf_entry.insert(0, file_path)

def save_docx():    file_path = filedialog.asksaveasfilename(defaultextension=".docx", filetypes=[("Word files", "*.docx")])    if file_path:        docx_entry.delete(0, tk.END)        docx_entry.insert(0, file_path)

def convert_button_handler():    pdf_path = pdf_entry.get()    docx_path = docx_entry.get()
    if not pdf_path or not docx_path:        messagebox.showwarning("警告", "请选择PDF文件和DOCX保存位置")        return
    convert_button['state'] = 'disabled'    loading_label.pack()
    thread_convert_pdf_to_docx(pdf_path, docx_path)

# 创建主窗口root = tk.Tk()root.title("PDF to DOCX Converter")
# 设置输入输出文件路径pdf_entry = tk.Entry(root, width=50)pdf_entry.pack(side=tk.LEFT, padx=(10, 0), pady=10)
browse_button = tk.Button(root, text="选择PDF", command=select_pdf)browse_button.pack(side=tk.LEFT, pady=10, padx=(0, 10))
docx_entry = tk.Entry(root, width=50)docx_entry.pack(side=tk.LEFT, padx=(10, 0), pady=10)
save_button = tk.Button(root, text="保存DOCX", command=save_docx)save_button.pack(side=tk.LEFT, pady=10, padx=(0, 10))
# 转换按钮convert_button = tk.Button(root, text="转换", command=convert_button_handler)convert_button.pack(side=tk.LEFT, padx=10, pady=10)
# Loading标签loading_label = tk.Label(root, text="正在转换...")
# 主循环root.mainloop()

由于我是mac 10.15 intel芯片, 安装 pdf2docx耗费了一点时间。下面记录下步骤:

1、pip3 install   pdf2docx ,需要依赖 opencv-python ,  opencv-python-headless。  安装依赖卡住了。看了下原因:依赖的版本 和 mac10.15不兼容。

2、我用的清华源,直接去官网找合适的源。

https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/opencv-python/

https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/opencv-python-headless/

图片

图片

图片

先找安装目录找到cv2文件夹手动删掉, 然后执行pip3 install opencv_python-4.6.0.66-cp36-abi3-macosx_10_15_x86_64.whl

pip3 install opencv_python_headless-4.6.0.66-cp36-abi3-macosx_10_15_x86_64.whl

3、pip3 install pdf2docx 成功安装。

运行效果

python3 pdf2docx_demo.py

图片

符合自己的初步预期,上传解析pdf试了下,效果不错。

最后一步,打包可执行文件

 pip3 install pyinstaller

pyinstaller --onefile pdf2docx_demo.py

原文链接: 【AI+编程】使用chatGPT AI工具Python语言从0到1完成pdf转docx小工具

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/491823.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

免杀对抗-C2远控篇CC++SC转换格式UUID标识MAC物理IPV4地址减少熵值

参考文章&#xff1a; https://github.com/INotGreen/Bypass-AMSI https://mp.weixin.qq.com/s/oJ8eHdX8HGuk6dZv0kmFxg https://kyxiaxiang.github.io/2022/12/14/AMSIandEtw https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell 文章参考&#xff1a; https://www.…

SQLAlchemy模型映射提示declarative_base() takes 0 positional arguments but 1 was given

原码&#xff1a; #SQLAlchemy模型映射表结构. from sqlalchemy import create_engine,Column,Integer,String from sqlalchemy.ext.declarative import declarative_base# 数据库的变量 HOST 127.0.0.1 PORT 3306 DATA_BASE itbz USER root PWD 123456 DB_URL fmysqlpy…

deepspeed chat RLHF个人笔记(待完成)

一、linux配置 # 新的linux配置: 1. 查看linux版本 uname -a 2. linux装软件ubuntu:安装软件:sudo apt install 软件名更新软件源:sudo apt update升级已安装的软件:sudo apt upgrade3. ubuntu 查看终端类型printenv | grep TERM 3. 安装 c编译器 sudo apt-get update sudo ap…

使用Redis位图实现12306分段购票

系列文章目录 文章目录 系列文章目录前言前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 很多编程语言都有位运算符,Java语言也不例外。在Java语言中,提供了7种位…

通信原理QPSK OQPSK MSK 信道编码 GMSK

通信原理 通信QPSKOQPSKMSK信道编码GMSK需要的联系qq&#xff1a;2329738917 通信 QPSK OQPSK MSK 信道编码 GMSK 需要的联系qq&#xff1a;2329738917

小黑开始了芙蓉路岔气恰巧看到芙蓉脱单,假期东方时尚的学车生活,跟尚香骑车去北大微电子学院,在雪天考科目二的leetcode之旅: 43. 字符串相乘

小黑代码1:暴力转换 class Solution:def multiply(self, num1: str, num2: str) -> str:num1 int(num1)num2 int(num2)return str(num1 * num2)小黑代码2:转化为多位数x一位数 class Solution:def multiply(self, num1: str, num2: str) -> str:# 定义多位数x一位数的…

Github简单入门教程

文章目录 使用前提查看项目内容查看项目介绍打包下载项目查看项目作者项目搜索复制项目分支项目创建向项目中添加文件对项目进行评论 使用前提 想要使用Github&#xff0c;首先需要学会科学上网&#xff0c;不然用国内的网在正规情况下是无法访问Github滴~ 查看项目内容 打开…

解决错误LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to

react native pod第三方包或者git clone的时候遇到 OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443两种解决方案 方法一 修改计算机网络配置 由于使用 IPv6 的原因&#xff0c;可能会导致这一问题的出现 系统在解析hostname时使用了ipv6 可以配…

联合体类型

结构体我们已经介绍在 自定义类型&#xff1a;结构体 中&#xff0c;今天我们来介绍另一种 自定义类型&#xff1a;联合体 目录 1.联合体的声明 2.联合体的特点 3.联合体大小的计算 4.联合体的应用 5.联合体的一个练习 1.联合体的声明 联合体与结构体类似&#xff0c;它也…

webpack练习之手写loader

手写一个style-loader来把样式文件插入head里面&#xff0c;准备工作 vue webpack就自己弄了&#xff0c;webpack的一些配置也自己配置好 一、创建index.css文件 .box{width: 100px;height: 100px;background-color: red; }然后在vue的main.js文件中引入它 二、创建自定义l…

深度学习知识【CSPNet网络详解】

CSPNet的贡献 1.增强了CNN的学习能力&#xff0c;能够在轻量化的同时保持准确性。 2.降低计算瓶颈。 3.降低内存成本。 CSPNet介绍 在神经网络推理过程中计算量过高的问题是由于网络优化中的梯度信息重复导致的。CSPNet通过将梯度的变化从头到尾地集成到特征图中&#xff0c…

2024水业大会|水会|水务投资与EOD模式论坛

论坛召集人&#xff1a;邹权 上海大学研究员 丁贞玉 生态环境部环境规划院研究员(拟请) EOD模式&#xff1a;生态环境导向的开发模式 《生态环保金融支持项目储备库入库指南&#xff08;试行&#xff09;》文件精神与上述逻辑并不完全一致。《指南》提出&#xff0c;EOD模…

阿里云服务器 -- 为网站配置域名

思考&#xff1a;小云已经成功的通过云服务器ECS完成了网站的架设和测试工作&#xff0c;那么是否可以让他的网站直接对外提供服务&#xff1f; 小云&#xff1a;我已经成功的通过云服务器ECS完成了网站的架设和测试&#xff0c;那么是不是就可以正式对所有用户开放我的网站了…

MySql实战--行锁功过:怎么减少行锁对性能的影响

在上一篇文章中&#xff0c;我跟你介绍了MySQL的全局锁和表级锁&#xff0c;今天我们就来讲讲MySQL的行锁。 MySQL的行锁是在引擎层由各个引擎自己实现的。但并不是所有的引擎都支持行锁&#xff0c;比如MyISAM引擎就不支持行锁。不支持行锁意味着并发控制只能使用表锁&#xf…

国产半导体公司

1、移远通信---通信模组 物联网解决方案供应商&#xff0c;可提供完备的IoT产品和服务&#xff0c;涵盖蜂窝模组(5G/4G/3G/2G/LPWA)、车载前装模组、智能模组&#xff08;5G/4G/边缘计算&#xff09;、短距离通信模组(Wi-Fi&BT)、GNSS定位模组、卫星通信模组、天线等硬件产…

发送请求- header配置

请求头里是客户端的要求&#xff0c;把你的诉求告诉服务端&#xff0c;服务端按照你的要求返回数据 &#xff0c; 请求header需要严格全配置&#xff0c;把请求header全部传入&#xff0c;不能频繁访问&#xff0c;让后端知道它是正常请求 一般只配置User-Agent和Content Typ…

如何备份和恢复微信、企业微信的数据文件

备份和恢复微信、企业微信的数据文件&#xff0c;特别是聊天记录和微盘中的文件&#xff0c;可以通过以下方式进行&#xff1a; 备份微信个人版数据&#xff1a; 聊天记录备份&#xff1a; 目前微信客户端自身并不直接支持导出聊天记录至电脑查看&#xff0c;但可以通过手机微…

Clip Converter - 视频在线下载方法

Clip Converter - 视频在线下载方法 1. Video URL to Download2. Continue3. StartReferences YT to MP4 & MP3 Converter! https://www.clipconverter.cc/ Clip Converter is a free online media conversion application, which allows you to reocord, convert and do…

Go语言学习Day3:数据类型、运算符与流程控制

名人说&#xff1a;莫愁千里路&#xff0c;自有到来风。 ——钱珝 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 1、数据类型①布尔类型②整型③浮点型④string⑤类型转换 2、运算符①算术运算符②逻辑运算符③关…

FPGA内部资源介绍(1)-逻辑资源块

近期有许多小伙伴私信小编&#xff0c;希望小编出一些FPGA基础知识&#xff0c;能对FPGA有初步的认识。小编立马奋笔疾书&#xff0c;熬夜整理了一些学习FPGA必备的基础知识&#xff0c;双手呈上~~&#xff0c;每天一个干货&#xff0c;一星期带你入门FPGA&#xff01; 敲黑板…