我有一个下载的PDF在中国,我想提取文本从使用提卡+ Python (原始链接到完整的PDF可以找到here,或提取的样本页面可以找到here)。
当我运行以下代码时
analysed_file = 'D:\\5_Programming\\test.pdf'
# Parse data from file
file_data = parser.from_file(analysed_file, "http://localhost:9998/")
# Get files text content
text = file_data['content']
print(text)它在命令行中打印了中空框。当我复制这些盒子并在这里粘贴一个样本时,它看起来像
£Î £á £÷ £á £ú £¬ £ó £è £õ £ê £á ÄÇ Íß ×È £¬ Êæ ¼Ó
£Ï £æ £æ £é £ã £å £ò £¬ £Ì £® £È £® °Â ·Æ ɪ £¬ £Ì £® £È £®
£Ð £á £õ £ì £ó £¬ £Â £® £Ä £é £á £î £å ±£ ¶û ˹ £¬ £Â £® ÷ì °² ÄÈ我创建了一个使用拉丁字符的PDF,并使用完全相同的脚本对其进行了解析,它在命令行中打印得非常好。
我在Acrobat中打开该文件进行故障排除,它给我的错误信息是“无法找到或创建字体[garbled characters]”。如果它不识别字体(https://helpx.adobe.com/au/acrobat/using/pdf-fonts.html),它也会出现displayed all characters as bullets:

然而,在Google Chrome PDF查看器中,整个文本都是displayed correctly的中文。

在Adobe Acrobat和Tika + Python中出现乱码时,Google Chrome有什么不同的做法可以读取它,我如何解决这个问题以允许Tika正确解析它?是编码问题还是字体问题?我并不直接关心它在Acrobat中的正确打印。
发布于 2020-09-07 15:11:45
欢迎来到Stack Overflow社区。Adobe Reader中可能未安装中文字体。您可以从此link安装它们(滚动到名为Add-Ons的部分)。有两个可用的字体包。您可以尝试安装这些,并让我知道这是如何进行的。
致以敬意,
由Ravi Arora创作的令人惊叹的视频
发布于 2020-09-25 18:45:37
您可以将Apache Tika与作为docker镜像启动的Google Tesseract Parser一起使用- blog post
然后你必须在tesseract中添加适当的语言:例如tesseract-ocr-chi-sim (简体中文)。语言列表:list
docker exec -it tika-server-ocr /bin/bash
apt-get update
apt-get install tesseract-ocr-chi-s然后,您需要启用OCR (用于pdf解析)并将中文设置为一种语言:
curl -H "X-Tika-PDFextractInlineImages: true" -H "X-Tika-PDFocrStrategy: OCR_ONLY" -H "X-Tika-OCRLanguage: chi-sim" -T test.pdf localhost:9998/tikahttps://stackoverflow.com/questions/63772739
复制相似问题