Python六行代码搞定PDF转Word?

内容分享2天前发布
0 7 0

Python六行代码搞定PDF转Word?

信任许多人都遇到过,将PDF转换成Word文档的问题,都需要收费来进行转换。目前给大家分享一个超级简单的Python工具可以将PDF文档快速转换成Word文档。这种方式仅限于文档类型的PDF,对于图片扫描的PDF来讲,虽然也可以进行转换,但是转换完成的结果也是不可编辑的。

实践操作

在Python中想要实现从PDF文档向Word文档的转换可以使用pdf2docx库,这个库就是用来进行PDF到Word的转换操作的。要想使用该库,第一需要确保已经安装了该库。

pip install pdf2docx

然后可以通过如下的代码实现PDF到Word的转换。

from pdf2docx import Converter

def convert_pdf_to_word(pdf_file_path, word_file_path):
    # 创建转换器对象
    cv = Converter(pdf_file_path)
    
    # 将 PDF 转换为 Word
    cv.convert(word_file_path, start=0, end=None)
    
    # 关闭转换器
    cv.close()

# 调用函数并指定输入PDF文件路径和输出Word文件路径
convert_pdf_to_word('input.pdf', 'output.docx')

当然这个代码转换可以完成90%格式的转换,由于Word与PDF本身的文档差异,很难做到100%的转换。

其他方式

当然还有一种超级Low的操作,就是直接进行文档读取。这种方式不涉及格式的变化,用到PyMuPDF库,这个库可以直接对PDF中的内容进行提取,并且直接插入到Word文档中,对于一些文字类的可以使用这种方式来操作。

第一需要安装PyMuPDF库。

pip install pymupdf

代码实现如下所示。

import fitz  # PyMuPDF
from docx import Document

def convert_pdf_to_word(pdf_file_path, word_file_path):
    # 创建一个空的Word文档对象
    doc = Document()
    
    # 打开PDF文件
    pdf_document = fitz.open(pdf_file_path)
    
    # 遍历PDF中的每一页
    for page_number in range(len(pdf_document)):
        # 创建一个新的段落,并将PDF页面的文本插入到段落中
        page_text = pdf_document[page_number].get_text()
        doc.add_paragraph(page_text)
    
    # 保存Word文档
    doc.save(word_file_path)

# 调用函数并指定输入PDF文件路径和输出Word文件路径
convert_pdf_to_word('input.pdf', 'output.docx')

这段代码中,会将PDF文件中的每一页内容进行提取,并且插入到Word文档中,保持原始的格式。

总结

对于一些没有完全按照格式转换的文档,没有简单的Python库可以实现,由于PDF和Word的内部结构和样式信息有所不同,直接做到完全的格式转换是有必定的难度的,即使是一些商业软件都很难做到这一点。当然你也可以尝试使用商业软件,或许会比这种廉价的方式支持更高级的转换操作。

© 版权声明

相关文章

7 条评论

  • 头像
    韭菜坛子 读者

    好啊有转Excel的代码没?

    无记录
    回复
  • 头像
    读者

    识别度不高

    无记录
    回复
  • 头像
    小晶 读者

    有txt转word的吗

    无记录
    回复
  • 头像
    天啊噜啊噜啊噜 投稿者

    缺少dLL库,生成不了

    无记录
    回复
  • 头像
    彤掌柜普洱茶 读者

    厉害了👍

    无记录
    回复
  • 头像
    o小妮软糖o 读者

    💗感谢分享

    无记录
    回复
  • 头像
    美味小熊脆香米 读者

    收藏了,感谢分享

    无记录
    回复