簡體   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