python将pdf文件类型转换为txt、docx、excel

利用python的pdfplumber库可以实现转换,一些常用的方法

.extract_text() 用来提页面中的文本,将页面的所有字符对象整理为的那个字符串

.extract_words() 返回的是所有的单词及其相关信息

.extract_tables() 提取页面的表格

1、pdf转txt

import pdfplumber as pb
 
file_handle=open('out.txt',mode='w',encoding='utf-8')
# 读取PDF文档
pdf = pb.open("需求文档.pdf")
# 绝对路径也可以这么写,下同
#    path = 'D:\\GKProject\\需求文档.pdf'
# 获取页数
a= len(pdf.pages)
print("当前页:",a)
print("-----------------------------------------")
 
i=0
for i in range(0, a):
    first_page = pdf.pages[i]
    print("本页:",first_page.page_number)
    print("-----------------------------------------")
    # 导出当前页文本
    text = first_page.extract_text()
    # print(text)
    file_handle.write(text)
 

2、pdf转word

import pdfplumber as pb
import docx
from docx import Document
 
doc = docx.Document()
paragraph3 = doc.add_paragraph()
# 读取PDF文档
pdf = pb.open("需求文档.pdf")
 
# 获取页数
a= len(pdf.pages)
print("当前页:",a)
print("-----------------------------------------")
 
i=0
for i in range(0, a):
    first_page = pdf.pages[i]
    print("本页:",first_page.page_number)
    print("-----------------------------------------")
 
    # 导出当前页文本
    text = first_page.extract_text()
    paragraph3.add_run(text)
 
doc.save("输出结果.docx")
 

3、pdf转excel

import pdfplumber
import pandas as pd
import xlwt
 
def toEcel():
 
    workbook = xlwt.Workbook()  # 定义workbook
    sheet = workbook.add_sheet('Sheet1')  # 添加sheet
    i = 0  # Excel起始位置
    pdf = pdfplumber.open("需求文档.pdf")
    print('开始读取数据')
 
    for page in pdf.pages[0:20]: #这里的page[0:20]可以根据实际pdf的页数来进行扩大
        # 获取当前页面的全部文本信息,包括表格中的文字
        for table in page.extract_tables():
            # print(table)
            for row in table:
                # print(row)
                for j in range(len(row)):
                    sheet.write(i, j, row[j])
                i += 1
 
    pdf.close()
 
    # 保存Excel表
    workbook.save('输出结果.xls')
    print('写入excel成功')
if __name__ == '__main__':
    print("开始")
    toEcel()

你可能感兴趣的:(python,pdf,excel)