利用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()


————————————————
版权声明:本文为CSDN博主「牧文山」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42750611/article/details/112004816

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐