第三方包:pdf2docx
from pdf2docx import Converterdef convert_pdf_to_docx(pdf_path, docx_path):# 创建一个转换器对象converter = Converter(pdf_path)# 将PDF转换为DOCXconverter.convert(docx_path, start=0, end=None)# 关闭转换器converter.close()# 调用函数进行转换
pdf_path = "input.pdf"
docx_path = "output.docx"
convert_pdf_to_docx(pdf_path, docx_path)
他很容易理解,只需要你定义好文件路径即可完成转换操作。此外,我也不多解释了,因为start参数用于指定转换的起始页码,而end参数用于指定转换的结束页码。你可以根据需要设置这两个参数的值,如果不需要指定起始页码,可以将start参数设置为0;如果不需要指定结束页码,则可以将end参数设置为None。
官方可视化界面
代码很简单,但是如果是自己使用的话,每次都要写一次路径可能会很麻烦。不过你可以使用一个可视化交互界面来简化这个过程,这样会更方便一些。幸运的是,pdf2docx提供了一个简易版的界面,你可以在控制台中直接输入"pdf2docx gui"来启动。在界面中,你只需要选择要转换的PDF文件和一个文件夹作为保存路径,就可以完成转换操作了。这样的话,你就不需要每次都手动输入路径了。非常方便。
简易版可交互界面
但是,如果你对pdf2docx提供的界面不满意,并且觉得界面不够好看,那么可以考虑使用另一个第三方界面库,叫做gradio。我记得你之前在向量数据库中使用过这个库,对后端非常友好。你可以先写一个简单的界面,然后逐步优化它,以满足你的需求。gradio提供了很多功能和自定义选项,你可以根据自己的喜好来设计界面的外观和交互方式。然后慢慢优化吧。
import gradio as gr
from pdf2docx import Converterdef convert_pdf_to_docx_with_display(pdf_file):tmp_file = "./output.docx"# Convert PDF to DOCXcv = Converter(pdf_file)cv.convert(tmp_file)cv.close()return tmp_filedef convert_and_display_pdf_to_docx(pdf_file):docx_file = convert_pdf_to_docx_with_display(pdf_file)return docx_fileiface = gr.Interface(fn=convert_and_display_pdf_to_docx,inputs=["file"],outputs=["file"],title="[努力的小雨] PDF to DOCX Converter",description="上传pdf文件,并将其转化为docx文件",
)iface.launch()