当前位置: 首页 > news >正文

Python 读取pdf文件

Python 实现读取pdf文件简单示例。

安装命令

需要安装操作pdf的三方类库,命令如下:

pip install pdfminer3K

安装过程如下:

引入类库

需要引入很多的类库。

示例如下:

import sys
import importlib
importlib.reload(sys)

from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import  PDFPageAggregator
from pdfminer.layout import LTTextBoxHorizontal, LAParams
from pdfminer.pdfinterp import PDFTextExtractionNotAllowed

 

读取pdf实现

实现步骤为:先通过二进制方式打开测试pdf文档,创建pdf文档解析测试文档内容,

最后读取文件内容,保存到另一个文件中。

示例如下:

import sys
import importlib

importlib.reload(sys)

from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LTTextBoxHorizontal, LAParams
from pdfminer.pdfinterp import PDFTextExtractionNotAllowed
import os



def read_pdf(path, toPath):
    # 以二进制方式打开pdf文件
    f = open(path, 'rb')

    # 创建一个pdf文档分析器
    parser = PDFParser(f)
    # 创建pdf文档
    pdfFile = PDFDocument()
    # 链接分析器与文档对象
    parser.set_document(pdfFile)
    pdfFile.set_parser(parser)
    # 提供初始化密码
    pdfFile.initialize()

    # 检测文档是否提供txt转换
    if not pdfFile.is_extractable:
        raise PDFTextExtractionNotAllowed
    else:
        # 解析数据
        # 数据管理器
        manager = PDFResourceManager()
        # 创建一个PDF设备对象
        laparams = LAParams()
        device = PDFPageAggregator(manager, laparams=laparams)
        # 解释器对象
        interpreter = PDFPageInterpreter(manager, device)
        for page in pdfFile.get_pages():
            interpreter.process_page(page)
            layout = device.get_result()
            for x in layout:
                if isinstance(x, LTTextBoxHorizontal):
                    with open(toPath, 'a', encoding='utf-8') as f:
                        print(x.get_text())
                        f.write(x.get_text() + "\n")


path = os.path.join(os.getcwd(), 'test_1.pdf')
toPath = os.path.join(os.getcwd(), 'test_2.txt')
read_pdf(path, toPath)

注意:无法读取中文,貌似需要加载中文字体。还有就是在写入pdf文件,格式不对无法打开暂时没找到原因。

总结

本篇只是使用Python 实现读取pdf文件简单示例,因为时间关系没有做深入的扩展,等之后有时间再做补充。

相关文章:

  • 如何流畅进入Github
  • Spring + Tomcat项目中nacos配置中文乱码问题解决
  • HarmonyOS 鸿蒙 ArkTS ArkUI 页面之间切换转换动画设置
  • 微服务OAuth 2.1认证授权可行性方案(Spring Security 6)
  • [嵌入式系统-14]:常见实时嵌入式操作系统比较:RT-Thread、uC/OS-II和FreeRTOS、Linux
  • uniapp的配置和使用
  • flask+python儿童福利院管理系统pycharm毕业设计项目
  • C++ 关键字小结
  • 使用 Elasticsearch 和 OpenAI 构建生成式 AI 应用程序
  • Java+SpringBoot构建智能捐赠管理平台
  • re:从0开始的CSS之旅 13. 文档流
  • 第十九篇【传奇开心果系列】Python的OpenCV库技术点案例示例:文字识别与OCR
  • 服务器安装Docker (centOS)
  • 《走进科学》灵异事件:Nginx配置改了之后一直报错
  • RabbitMQ交换机
  • 融资项目——获取树形结构的数据
  • MyBatis之Like模糊查询的两种实现方式
  • A股上市以来涨幅排行榜
  • 2024刘谦春晚第二个扑克牌魔术
  • [Python进阶] 识别验证码
  • 魔都眼|石库门里看车展,五一来张园体验城市“漫时光”
  • 马上评|启动最高层级医政调查,维护医学一方净土
  • 万科:一季度营收近380亿元,销售回款率超100%
  • 日本希望再次租借大熊猫,外交部:双方就相关合作保持密切沟通
  • 宁夏民政厅原厅长欧阳艳已任自治区政府副秘书长、办公厅主任
  • 《沙尘暴》:用贴近生活的影像和表演拍摄悬疑剧