簡體   English   中英

pdfminer3 沒有從彩色 pdf 頁面中提取文本,如何將 pdf 頁面轉換為灰度?

[英]pdfminer3 is not extracting the text from colored pdf pages, how to convert pdf page into grayscale?

我正在使用 pdfminer3 庫從 pdf 中提取文本。 但它在彩色頁面中效果不佳。 我嘗試使用以下代碼從 pdf 中提取文本:

from pdfminer3.layout import LAParams, LTTextBox
from pdfminer3.pdfpage import PDFPage
from pdfminer3.pdfinterp import PDFResourceManager
from pdfminer3.pdfinterp import PDFPageInterpreter
from pdfminer3.converter import PDFPageAggregator
from pdfminer3.converter import TextConverter
import io

resource_manager = PDFResourceManager()
fake_file_handle = io.StringIO()
converter = TextConverter(resource_manager, fake_file_handle, laparams=LAParams())
page_interpreter = PDFPageInterpreter(resource_manager, converter)

with open("pdffile.pdf", 'rb') as fh:
    for page in PDFPage.get_pages(fh,caching=True,check_extractable=True):
        page_interpreter.process_page(page)
    text = fake_file_handle.getvalue()
f1=open("pdftext.txt","w+",encoding="utf8")
for i in text:
    f1.write(str(i))

# close open handles
converter.close()
fake_file_handle.close()

print(text)

它只能很好地從某些文件中提取數據。 但它從彩色區域提取數據,如下所示:

(cid:7)(cid:1)(cid:4)(cid:1)(cid:9)(cid:16)(cid:20)(cid:17)

(cid:10)(cid:15)(cid:14)(cid:1)(cid:16)(cid:20)(cid:17)

(cid:1)(cid:14)(cid:18)(cid:1)(cid:12) (cid:18)(cid:1)(cid:19)(cid:2)(cid:1)(cid:17)(cid:9)

(cid:18)(cid:20)(cid:12)(cid:19)(cid:1)(cid:14)(cid:16)(cid:20)(cid:17)

這不是我的數據在 pdf 中的樣子。 它是一個簡單的字母數字數據。 我不知道為什么它顯示cid:它甚至不在我的 pdf 文件中。

誰能告訴我如何將 pdf 轉換為灰度 pdf 頁面。 所以我可以使用pdfminer。 我不想將 pdf 轉換為圖像,然后轉換為 grascale,因為 pytesseract 沒有從中提取數據。

我也試過 pdfplumber 但它也沒有給我正確的數據。 或者任何人都可以建議我從圖像中提取文本的庫,除了 pytesseract。

最后,我使用在線轉換器工具將 pdf 頁面轉換為灰度。 當我嘗試從中提取數據時,它給出了與上面提到的相同的 output。 所以,我想問題出在 pdfminer 或我的代碼中。 如何解決這個問題。

這是 pdf 文件之一,我試圖從中提取文本,它給出了空白 output: Pdf 文件

您的示例 PDF 僅包裝了某些報紙頁面的 bitmap 圖像。

另一方面,文本提取從 PDF 中的文本繪制指令中提取文本,而不是從 bitmap 圖像中提取文本。

要從 PDF 中檢索文本,您必須應用 OCR。

暫無
暫無

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

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