繁体   English   中英

从pdf中提取文本的换行符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM