pdf转docx
from pdf2docx import Converter
"""
1、参数
pdfPath为pdf的路径,docxPath为docx的路径
2、主要功能
把pdf文件转换成docx文件,先解析pdf文件,再添加到docx文件。
"""
def pdfToDocx(pdfPath, docxPath=None):
cv = Converter(pdfPath)
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)
if textPath is None:
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。其他同理。