[英]newline in text extraction from pdf
我正在编写一个关于在pdf中提取文本的函数,我也在使用pyPdf库。 提取没问题。 但我遇到了一些问题,比如排除换行符。
所以我找到了添加换行符的方法,所以我这样做了:
# Iterate pages
for i in range(0, pdf.getNumPages()):
# Extract text from page and add to content
content += pdf.getPage(i).extractText()
content = content.replace('. ', '. <br />')
pages += content
# Collapse whitespace
content = " ".join(pages.replace(u"\xa0", " ").strip().split())
问题甚至是这样的情况:
1. Apple
变成这样:
1.
Apple
它不应该是。 我只想在句子的每一端添加换行符。
有没有办法检查或确定句子何时结束? 或者检查它是否为编号?
一个hackish解决方案是仅在完全停止不是紧跟数字之前执行替换。 将行content = content.replace('. ', '. <br />')
更改为以下内容:
import re
re.sub(r'([^0-9])\. ', r"\1. <br />", content)
为什么不使用re.sub()?
对于点结束线并且可能带有一些空格,模式应为“。\\ s * $”,即
import re
:
content = re.sub('\.\s*$', '. <br />', content)
pyPdf非常适合某些事情,但不是很擅长文本提取。 看看pdfminer库。 或者使用像pdftotext这样的工具。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.