用Python开发一个PDF转Word的小工具

简介: PDF格式的文档在我们使用的时候比较方便,因为不会因为编辑器和其他原因导致格式不正常,但是有时候我们又需要对这个文档进行修改,这时候我们就需要将PDF解析成word格式的。网上有很多的格式转换的网站和软件,但是大多数只能免费使用几次,后面再使用的话就要升级vip了,那如果我们自己写一个pdf转换的程序,是不是很方便又很niuability呢?

PDF格式的文档在我们使用的时候比较方便,因为不会因为编辑器和其他原因导致格式不正常,但是有时候我们又需要对这个文档进行修改,这时候我们就需要将PDF解析成word格式的。网上有很多的格式转换的网站和软件,但是大多数只能免费使用几次,后面再使用的话就要升级vip了,那如果我们自己写一个pdf转换的程序,是不是很方便又很niuability呢?

这篇文章就说说如何使用python来写一个pdf转换word的小工具。


这里我使用的系统是win10系统,python版本是3.7:


微信截图_20220517192451.png


使用的依赖包是pdfminer3k,可以通过下面的命令进行安装:


pip install pdfminer3k
复制代码


具体代码如下,每行代码的功能都写在了注释中,就不再一一进行赘述:


# author:江夏
# date: 2020-10-31
# description:python将pdf文档转换为word格式
import sys 
import importlib 
importlib.reload(sys) 
from pdfminer.pdfparser import PDFParser,PDFDocument 
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter 
from pdfminer.converter import PDFPageAggregator 
from pdfminer.layout import * 
from pdfminer.pdfinterp import PDFTextExtractionNotAllowed 
# 首先定义一个解析pdf文档的函数 
# 解析pdf文件,获取文件中包含的各种对象 
def parse(pdf_path):
  # 这里以二进制读模式打开pdf文档  
  fp = open(pdf_path, 'rb') 
  # 接着用文件对象来创建一个pdf文档解析
  parser = PDFParser(fp) 
  # 创建一个PDF文档 
  doc = PDFDocument() 
  # 连接分析器 与文档对象 
  parser.set_document(doc) 
  doc.set_parser(parser) 
  doc.initialize() 
  # 检测文档是否提供txt转换,不提供就忽略 
  if not doc.is_extractable: 
    raise PDFTextExtractionNotAllowed 
  else: 
    # 创建PDf 资源管理器 来管理共享资源 
    rsrcmgr = PDFResourceManager() 
    # 创建一个PDF设备对象 
    laparams = LAParams() 
    device = PDFPageAggregator(rsrcmgr, laparams=laparams) 
    # 创建一个PDF解释器对象 
    interpreter = PDFPageInterpreter(rsrcmgr, device) 
    # 用来计数页面,图片,曲线,figure,水平文本框等对象的数量 
    num_page, num_image, num_curve, num_figure, num_TextBoxHorizontal = 0, 0, 0, 0, 0 
    # 循环遍历列表,每次处理一个page的内容
    # doc.get_pages() 获取page列表 
    for page in doc.get_pages(): 
     # 页面加1 
      num_page += 1 
      interpreter.process_page(page) 
      # 接受该页面的LTPage对象 
      layout = device.get_result() 
      for x in layout: 、
       # 图片对象
        if isinstance(x,LTImage): 
          num_image += 1
        # 曲线对象  
        if isinstance(x,LTCurve): 
          num_curve += 1
        # figure对象 
        if isinstance(x,LTFigure):  
          num_figure += 1
         # 获取文本内容  
        if isinstance(x, LTTextBoxHorizontal):
          # 水平文本框对象加1 
          num_TextBoxHorizontal += 1 
          # 保存文本内容,生成doc文件的文件名及路径 
          with open(r'test.doc', 'a',encoding='utf-8') as f:
            results = x.get_text() 
            f.write(results) 
            f.write('\n') 
    # 打印出paf文档的对象情况
    print('对象数量:\n','页面数:%s\n'%num_page,'图片数:%s\n'%num_image,'曲线数:%s\n'%num_curve,'水平文本框:%s\n' 
       %num_TextBoxHorizontal) 
# 执行主函数
if __name__ == '__main__': 
  #读取pdf文件路径及文件名 
  pdf_path = r'C:\Users\Jiang\Desktop\test.pdf'
  #对该路径下的pdf文件执行上面自定义的解析pdf文档的函数
  parse(pdf_path)
复制代码


pdf文档的内容如下:


5f5456fd5af34817824f033ee80847ec~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


执行代码:


6756f4c584f74c3ea4b4c1c29c043470~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


解析出doc文档:


ddfed9bab0b54313901a677ef351df84~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


打开内容如下:


cde6285aa3374608afe7c7f2c01da2b2~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


上面就是python如何使用pdfminer3k将pdf文档转换为doc文本格式,类似的还有将pdf转换为txt、doc转pdf,其实实现方式就差不多了,感兴趣的同学可以自己试试,有任何问题欢迎交流讨论。

目录
相关文章
|
2月前
|
XML 数据格式 Python
从手动编辑到代码生成:Python 助你高效创建 Word 文档
本文介绍如何用Python实现Word文档自动化生成,结合python-docx、openpyxl和matplotlib库,高效完成报告撰写、数据插入与图表生成,大幅提升办公效率,降低格式错误,实现数据驱动的文档管理。
488 2
|
4月前
|
存储 监控 算法
淘宝买家秀 API开发实录Python(2025)
本文讲述了作者在电商开发领域,尤其是对接淘宝买家秀 API 接口过程中所经历的挑战与收获。从申请接入、签名验证、频率限制到数据处理和实时监控,作者分享了多个实战经验与代码示例,帮助开发者更高效地获取和处理买家秀数据,提升开发效率。
|
4月前
|
安全 JavaScript 开发者
Python 自动化办公神器|一键转换所有文档为 PDF
本文介绍一个自动化批量将 Word、Excel、PPT、TXT、HTML 及图片转换为 PDF 的 Python 脚本。支持多格式识别、错误处理与日志记录,适用于文档归档、报告整理等场景,大幅提升办公效率。仅限 Windows 平台,需安装 Office 及相关依赖。
229 0
|
3月前
|
设计模式 人工智能 API
AI智能体开发实战:17种核心架构模式详解与Python代码实现
本文系统解析17种智能体架构设计模式,涵盖多智能体协作、思维树、反思优化与工具调用等核心范式,结合LangChain与LangGraph实现代码工作流,并通过真实案例验证效果,助力构建高效AI系统。
500 7
|
3月前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
846 0
|
4月前
|
程序员 数据安全/隐私保护 Python
1行Python代码,实现PDF的加密、解密
程序员晚枫分享使用python-office库实现PDF批量加密与解密的新方法。只需一行代码,即可完成单个或多个PDF文件的加密、解密操作,支持文件路径与正则筛选,适合自动化办公需求。更新至最新版,适配性更佳,操作更简单。
202 8
1行Python代码,实现PDF的加密、解密
|
3月前
|
小程序
公众号如何添加附传Word、Excel、Pdf、PPT文档
公众号里添加一些文档给公众号粉丝下载,比如课件PPT、申请表Word文档、岗位需求Excel表、大赛入围/获奖名单等。公众号本身是不支持直接上传文件的,但我们可以通过附件小程序“间接”上传文件。
585 0
|
4月前
|
算法 程序员 API
电商程序猿开发实录:淘宝商品python(2)
本文分享了开发者在对接淘宝商品详情API过程中的真实经历,涵盖权限申请、签名验证、限流控制、数据解析及消息订阅等关键环节,提供了实用的Python代码示例,帮助开发者高效调用API,提升系统稳定性与数据处理能力。
|
4月前
|
监控 Linux 数据安全/隐私保护
Python实现Word转PDF全攻略:从入门到实战
在数字化办公中,Python实现Word转PDF自动化,可大幅提升处理效率,解决格式兼容问题。本文详解五种主流方案,包括跨平台的docx2pdf、Windows原生的pywin32、服务器部署首选的LibreOffice命令行、企业级的Aspose.Words,以及轻量级的python-docx+pdfkit组合。每种方案均提供核心代码与适用场景,并涵盖中文字体处理、表格优化、批量进度监控等实用技巧,助力高效办公自动化。
1126 0
|
8月前
|
存储 JSON API
如何将 Swagger 文档导出为 PDF 文件
你会发现自己可能需要将 Swagger 文档导出为 PDF 或文件,以便于共享和存档。在这篇博文中,我们将指导你完成将 Swagger 文档导出为 PDF 格式的过程。

推荐镜像

更多