我想将pdf解析为文本,但是当我使用pypdf 2或pymupdf从这个pdf中提取文本时,我遇到了一个问题:当遇到越南语中的重音单词时,它返回特殊字符。英语或无符号单词无关紧要。
#pdf path
pdf_file ='CB410A3 - Copy.pdf'
pdf = fitz.open(pdf_file)
#Read page 8
a8= pdf[8]
text = a8.getText("text")
text(Pymupdf code)
或者
# pdf path
pdf_file =r'D:data\VN\CB410A3.pdf'
#import the PyPDF2 module
import PyPDF2
#open the PDF file
PDFfile = open(pdf_file, 'rb')
PDFfilereader = PyPDF2.PdfFileReader(PDFfile)
#provide the page number
pages = PDFfilereader.getPage(8)
x=pages.extractText()
它将返回如下内容:' \n \n\n9\ngia厘米;唱诗班;®å ¨n s¸ng trªn c¬ së h¶i s¶n;这是什么意思?\n "s“ng '.但我希望它像这样返回
我试着用utf-8解码结果,但是没有work。有人能帮我解决这个问题吗?谢谢。
更新信息:
从2023年1月开始,ipvietnam发布的工业产权官方公报PDF将不再存在可能导致解析时出错的编码问题。
2条答案
按热度按时间wqsoz72f1#
上面的OP链接今天对我来说不起作用,所以这里是一个来自同一来源的类似构建文件,(注意他们使用MSWord和正常的西方字体,如Arial Calibri Cambria和Times Roman.ttf,因此没有异国情调或UTF-8)
存保舒存义P S 392 B(2021年11月)
因此,通常政府越南语PDF的解码没有问题
从PDF中提取文本的最简单方法之一是使用简单的行命令
一月一日
结果
一个小问题可能是一些偶尔的单词间距可能是奇数,需要轻微的调整或命令行选项的轻微变化。
稍后编辑
OP文件可再次访问,并且在OP问题中看到的CIDMap不正确的部分明显错误,这不是故意的,只是构造不良。在这种情况下纠正Map是需要许多部分重新Map的艰苦工作
2eafrhcq2#
pypdf
(还有PyPDF2
)改进了很多。特别是文本提取。请用最近的版本再试一次;现在应该可以用了。参见https://pypdf.readthedocs.io/en/latest/user/extract-text.html
但是,有两种情况下它将不起作用:
1.图像:
pypdf
不是OCR软件。在这种情况下,请尝试tesseract1.加密PDF:有些人想阻止软件阅读他们的PDF。这似乎是你的PDF的情况。你最好的办法是将PDF转换为图像,并在这种情况下使用OCR软件(再次:tesseract)