pdfrw可以从文档中提取文本吗?
我正在思考
的内容from pdfrw import PdfReader
doc = PdfReader(pdf_path)
page_texts = []
for page_nr in doc.numPages:
page_texts.append(doc.getPage(page_nr).parse_page()) # ..or something
答案 0 :(得分:1)
在docs中解释如何提取文本。但是,它只是一个字节流。您可以遍历页面并单独解码它们。
from pdfrw import PdfReader
doc = PdfReader(pdf_path)
for page in doc.pages:
bytestream = page.Contents.stream # This is a string with bytes, Not a bytestring
string = #somehow decode bytestream. Maybe using zlib.decompress
# do something with that text
修改强>
pdfrw
根据author的复杂性,grpc
尚不支持文本解压缩,可能毫无价值。
答案 1 :(得分:0)
取决于将哪些过滤器应用于page.Contents.stream
。如果只是FlateDecode可以使用pdfrw.uncompress.uncompress([page.Contents])
进行解码。
注意:将列表中的整个Contents对象赋予该函数
注意:这与pdfrw.PdfReader.uncompress()
然后,您必须解析字符串以查找您的文本。这将是被中和ET(端文本)对任一“TJ”或“TJ”轮括号内结束行标记BT之间的线(开始文本)的块。
答案 2 :(得分:-1)
以下是一个可能有用的示例:
for pg_num in range(number_of_pages):
pg_obj = pdfreader.getPage(pg_num)
print(pg_num)
if re.search(r'CSE', pg_obj.extractText()):
cse_count+= 1
pdfwriter.addPage(pg_obj)
此处extractText()
将提取包含关键字CSE