PyPdf不逐行读取pdf文本

2024-01-04

我正在使用 PyPdf 从 pdf 文件中读取文本。然而 pyPDF 不会逐行读取 pdf 中的文本,它以某种随意的方式读取。当 pdf 中不存在新行时,将新行放在某处。

import PyPDF2
pdf_path = r'C:\Users\PDFExample\Desktop\Temp\sample.pdf'
pdfFileObj = open(pdf_path, 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
page_nos = pdfReader.numPages
for i in range(page_nos):
        # Creating a page object
        pageObj = pdfReader.getPage(i)
        # Printing Page Number
        print("Page No: ",i)
        # Extracting text from page
        # And splitting it into chunks of lines
        text = pageObj.extractText().split("  ")
        # Finally the lines are stored into list
        # For iterating over list a loop is used
        for i in range(len(text)):
                # Printing the line
                # Lines are seprated using "\n"
                print(text[i],end="\n\n")
        print()

这给我的内容是

Our Ref :
21
1
8
88
1
11
5 
 
Name: 
S
ky Blue
 
 
Ref 1 :
1
2
-
34
-
56789
-
2021/2 
 
Ref 2:
F2021004
444
 

Amount: 
$
1
00
.
11
... 

而预期的是

Our Ref :2118881115 Name: Sky Blue Ref 1 :12-34-56789-2021/2 Ref 2:F2021004444
Amount: $100.11 Total Paid:$0.00 Balance: $100.11 Date of A/C: 01/08/2021 Date Received: 10/12/2021
Last Paid: Amt Last Paid: A/C Status: CLOSED Collector : Sunny Jane

这是 pdf 文件的链接https://pdfhost.io/v/eCiktZR2d_sample2 https://pdfhost.io/v/eCiktZR2d_sample2


我尝试了一个名为 pdfplumber 的不同包。它能够按照我想要的方式逐行阅读 pdf。

1.安装pdfplumber包

pip install pdfplumber

2. 获取文本并将其存储在某个容器中

import pdfplumber 
pdf_text = None 
with pdfplumber.open(pdf_path) as pdf:
    first_page = pdf.pages[0]
    pdf_text  = first_page.extract_text()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PyPdf不逐行读取pdf文本 的相关文章

随机推荐

  • 如何使用 FTP 命令移动文件

    源文件的路径是 public html upload 64 SomeMusic mp3 我想将它移动到这条路径 public html archive 2011 05 64 SomeMusic mp3 我如何使用 FTP 命令执行此操作 在
  • WPF:选择时为文本框添加标签

    我想创建一个看起来像视觉工作室的简单设计器 具体来说 我希望我的项目具有与 VS 中相同的行为 当未选择它们时 会显示一个简单的标签 文本块 当它们被选择时 一个文本框可以让我编辑值 实现这一目标的最佳方法是什么 谢谢 为 TextBox
  • 如何在合并排序期间“暂停”以可视化 JS p5js

    我正在使用 p5 js 开发排序可视化工具 我需要知道是否可以减慢合并排序 以便可以更慢地绘制它 我目前正在尝试使用下面的睡眠功能来减慢它们的合并功能 但我得到 未捕获的类型错误 a slice 不是函数 我只是犯了一个愚蠢的错误 还是我错
  • 模板和 while 循环

    我正在制作一个简单的模板系统 无法将代码保留在 PHP 文件中并将其输出到 html 文件中 这很烦人 在模板中包含此内容不太好 h1 h1 p p 有什么方法可以将代码保留在 PHP 文件中吗 Thanks
  • 如何修改matplotlib-venn中的字体大小

    我有以下维恩图 from matplotlib import pyplot as plt from matplotlib venn import venn3 venn3 circles set1 set A B C D set2 set B
  • 已安装的 Python 模块 - Python 找不到它们

    这是一个初学者python安装问题 这是我第一次尝试安装和调用包 我有pip安装了 我尝试安装两个模块 numpy and pandas 在终端中 我运行了以下命令 sudo pip install numpy sudo pip insta
  • 我在哪里可以获得 delphi 或 python 的免费 G​​SM 库/组件?

    我在哪里可以获得好的免费 G SM 库Delphi or Python 我可以使用哪些库在我的应用程序上发送和接收短信 Gath 免费且开源AsyncPro http sourceforge net projects tpapro gt 不
  • 为离线Web应用程序存储图像数据(客户端存储数据库)

    我有一个使用 appcaching 的离线 Web 应用程序 我需要提供大约 10MB 20MB 的数据 它将保存 客户端 主要由 PNG 图像文件组成 操作如下 Web 应用程序下载并安装在 appcache 中 使用清单 Web 应用程
  • 如何使用Python将霍夫曼编码写入文件?

    我创建了一个 Python 脚本来使用霍夫曼算法压缩文本 假设我有以下字符串 string The quick brown fox jumps over the lazy dog 运行我的算法会返回以下 位 result 011111001
  • 四边形上的输出纹理不正确

    我正在尝试使用 freetype 在我的应用程序中显示文本 起初我认为这个内置函数 这对于用于绘制文本的库来说是很自然的 但只有一个显示符号的功能 然后我决定将这些字符一一放入纹理中 但我再次感到失望 所有指南一个纹理都使用单个图像 可能
  • React Native:无法构造变压器:错误:无法创建长度超过 0x1fffffe8 个字符的字符串

    包 json name project version 0 0 1 private true scripts android react native run android ios react native run ios start r
  • char*/字符串连接而不复制?

    我想在 C 或 C 中连接 2 个字符串 而不需要新的内存分配和复制 是否可以 可能的C代码 char str1 char malloc 100 char str2 char malloc 50 char str3 some code th
  • 如何使用PHP连接到as400

    我正在尝试使用以下代码将我的 AS400 与 V5R3 和 PHP 连接
  • 如何将打开的窗体定位在 C# Windows 窗体中的特定位置?

    The Location窗体中的属性设置为 0 0 属性窗口 但是 该表单不会在指定位置打开 我错过了什么吗 你需要设置StartPosition手动使表单将起始位置设置为中的值Location财产 public Form1 Initial
  • 在 Python 中将字符串分配给 ID

    我正在使用 python 读取一个文本文件 其格式为每列中的值可以是数字或字符串 当这些值是字符串时 我需要分配该字符串的唯一 ID 在同一列下的所有字符串中都是唯一的 如果同一字符串出现在同一列下的其他位置 则必须分配相同的 ID 什么是
  • Retrofit 2 同步调用错误处理 4xx 错误

    我正在使用 android priority jobqueue 并使用改造来同步调用我的其余 api 但我不确定如何处理诸如 401 Unauthorized 错误之类的错误 我会发回 json 来说明错误 进行异步调用时很简单 但我正在调
  • htonl() 是否会更改 BIG ENDIAN 机器上的字节顺序?

    从字面上看 对 htonl 感到困惑 在很多链接中 我发现执行 htonl 的代码是 define HTONL n unsigned long n 0xFF lt lt 24 unsigned long n 0xFF00 lt lt 8 u
  • 在 MySQL 中插入十六进制值

    我使用 Java 创建了一个 SQL 数据库 我创建了一个表 其中有两列 第一列是一个递增的大整数 第二列我尝试将其定义为 char varchar 和二进制 但我仍然没有获得所需的功能 假设我尝试存储一个十六进制数字0a进入 char 列
  • 我如何判断我是否正在转发到复制构造函数?

    如果我正在编写一个将参数转发给构造函数的通用函数 有没有办法判断它是否是复制构造函数 本质上我想做的是 template
  • PyPdf不逐行读取pdf文本

    我正在使用 PyPdf 从 pdf 文件中读取文本 然而 pyPDF 不会逐行读取 pdf 中的文本 它以某种随意的方式读取 当 pdf 中不存在新行时 将新行放在某处 import PyPDF2 pdf path r C Users PD