簡體   English   中英

如何從 PDF 上的特定位置/跨度提取文本 (PyPDF2)

[英]How to extract text (PyPDF2) from specific location/span on PDF

我已經將 PDF 頁面中的文本提取到 Text 變量。 我想提取字符串 'your number is' 之后的數字(14 長度的字符串在 span (982,996) 上匹配:

object=PyPDF2.PdfFileReader(filename)
Text = PageObj.extractText()
PageObj = object.getPage(0) 
ResSearch = re.search(String, Text)

我得到一個結果:span = (982, 996) match = '你的號碼是'。 現在我所需要的就是刮掉后面的三位數文本('你的號碼是105 '),因為文件每天都在變化,而且提取應該是動態的。
謝謝大家 !!

問題是關於正則表達式而不是 pdf 本身。 在假設每頁最多一個匹配項的情況下,您可以使用search ,否則使用findall 查看有關如何使用 group 和(...)部分的文檔

import PyPDF2, re

filename = '' # 

pdf_r = PyPDF2.PdfFileReader(filename)
text = pdf_r.getPage(0).extractText() # from 1st page or make a loop

if p := re.match(r'your number is (\d{3})'):
   my_number = int(p.search(text).groups()[0]) # as int

使用 PyPDF4,語法是一樣的,它不“有”這樣的問題:

  • 來自doc這對某些 PDF 文件很有效,但對其他人來說效果不佳,具體取決於所使用的生成器。 [...] 不要依賴於這個函數的文本順序,因為如果這個函數變得更復雜,它會改變。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM