【发布时间】:2020-09-07 06:58:58
【问题描述】:
我有一个下载的中文 PDF,我想使用 Tika + 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]”。它也是displayed all characters as bullets,如果它不识别字体(https://helpx.adobe.com/au/acrobat/using/pdf-fonts.html),这是它的明显行为:
但是,在 Google Chrome PDF 查看器中,整个文本都是中文的displayed correctly。
Google Chrome 的不同之处在于它允许在 Adobe Acrobat 和 Tika + Python 中出现乱码时读取它,我该如何解决 PDF 的这个问题以允许 Tika 正确解析它?是编码问题还是字体问题?我并不直接关心它在 Acrobat 中是否正确打印。
【问题讨论】:
-
打印时输出编码是否有问题?如果你在 python 程序中输入几个汉字并打印出来,它们会正确显示吗?
-
@Gagravarr 是的,我已经使用中文一段时间了,它在命令行中始终正确显示。
标签: python pdf character-encoding apache-tika