Python pdf、docx的互相转、提取docx中的文本、图片、表格

pdf转docx

from pdf2docx import Converter

"""
1、参数
pdfPath为pdf的路径,docxPath为docx的路径
2、主要功能
把pdf文件转换成docx文件,先解析pdf文件,再添加到docx文件。
"""


def pdfToDocx(pdfPath, docxPath=None):
    # 解析pdf文件
    cv = Converter(pdfPath)
    # 设置docx文件的默认路径
    if docxPath is None:
        docxPath = pdfPath[:-3] + 'docx'
    # 开始转换
    cv.convert(docxPath, start=0, end=None)
    # 关闭资源
    cv.close()
    print('转换成功')

docx转pdf

在这里插入图片描述

from docx2pdf import convert
import os

"""
1、参数
docxpath为docx文件的路径,也可以是文件夹(转换文件夹下所有的docx文件)
2、主要功能
将docx文件转换为pdf文件,该机器需要提前下载word,本质上利用word进行转换。
"""


def docxToPdf(docxPath, pdfPath=None):
    # 输入文件夹
    if os.path.isdir(docxPath):
        convert(docxPath)
        print('转换完成')
    # 输入文件
    else:
        # 没有输出路径
        if pdfPath is None:
            convert(docxPath)
            print('转换完成')
        # 有输出路径
        else:
            convert(docxPath, pdfPath)
            print('转换完成')

            

抽取docx中的text

import doctext
import re
"""
1、参数
docxPath是docx文件的路径
2、主要功能
提取docx中的所有文本内容(包括页眉和页脚的文本)
"""


def docxToText(docxPath, textPath=None):
    doc_text = doctext.DocFile(doc=docxPath)
    # 提取文本内容
    text = doc_text.get_text().strip()
    # 去除多余换行
    text = re.sub(r"\n{2,}", "\n", text)
    # 设置text的默认路径
    if textPath is None:
        # 文本路径与docx路径在一个文件夹下
        textPath = docxPath[:-4] + 'txt'
    # 写入文本文件
    with open(textPath, mode='w', encoding='utf-8') as file:
        file.writelines(text)
        print('转换完成')

抽取docx中的table

from docx2csv import converter

"""
1、参数
docxPath是docx文件的路径
2、主要功能
提取docx文件中的表格,并转化为xlsx格式,一个文件,多个工作簿。
"""


def docxToTable(docxPath):
    converter.extract(docxPath, format='xlsx', singlefile=True)
    print('完成表格提取')

抽取docx中的image

from docx2python import docx2python
import os

"""
1、参数
docxPath是docx文件的路径
imagePath是存放图片的文件夹
2、主要功能
从docx中抽取所有的图片
"""


def docxToImage(docxPath, imagePath=None):
    # 默认图片的位置
    if imagePath is None:
        dirName = os.path.dirname(docxPath)
        imagePath = os.path.join(dirName, 'Image')
    # 提取图片
    docx2python(docxPath, imagePath)
    print('提取图片完成')

总结

  • 如果想从PDF转text格式,PDF先转docx,再提取text。其他同理。
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值