实操练习—批量处理:PDF文件转为word文件

用途:批量提取pdf中的文本信息

主要使用库:pdfplumber、os、docx

第一步:定义函数:输入PDF文件的文件路径,即可获取文本

# 导入PDF所在的文件路径,返回文本信息
import pdfplumber
 
def pdf2txt(pdf_path):
    txt = ''
    with pdfplumber.open(pdf_path) as pdf:
        for page in pdf.pages:
            txt = txt + page.extract_text()
    return txt

第二步:定义函数:获取文件夹中的文件路径,并保存在列表,需输入的是PDF所在文件夹

#获取文件夹中的文件位置
import os

def get_file_paths(folder):
    file_paths = []
    for root, dirs, files in os.walk(folder):
        for file in files:
            file_path = os.path.join(root, file)
            file_paths.append(file_path)
    return file_paths

第三步:填写保存PDF文件的文件夹路径,获取PDF文件路径

# 填写要提取文件路径的文件夹路径
folder_path = r"文件路径"
file_paths = get_file_paths(folder_path)
print(file_paths)

第四步:

# 导入docx库(主要)
from docx import Document
# 其他用于设置字体等信息所需要的库
from docx.shared import Pt  
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT  
from docx.oxml.ns import qn

#通过循环将文件一个个写入word中,并保存在统一文件夹
for pdffile in file_paths:
    pdf_text = pdf2txt(pdffile)
    text_name = pdffile.split('\\')[-1].split('.')[0]  #切割文件路径,获取文件名
    print(pdf_text)
    document = Document()
    paragraph = document.add_paragraph()
    run = paragraph.add_run()
    run.font.name = 'msyh'  # 使用特定的字体 
    run._element.rPr.rFonts.set(qn('w:eastAsia'), 'msyh')  # 针对东亚字符设置字体
    document.add_paragraph(pdf_text)
    document.save(r"文件夹位置\\{}.docx".format(text_name)) 

中途遇到的难题:文字在写入word中时,有些内容字体显示方块(方格)

个人解决方式:变更字体,因此导入了Pt、qn等模块

变更字体的结果:用以上代码只将显示方块的文字修改,但总体可以保留全部文字

后续难题:改变整体的文本字体格式,暂不开展编写

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值