【问题标题】:How to get data from pdf in Cyrillic?如何从西里尔文的pdf中获取数据?
【发布时间】:2018-03-16 19:22:10
【问题描述】:

当我尝试以西里尔文获取数据时出现错误

import codecs
pdfFileObj = codecs.open('1.pdf', 'rb','utf-8')

错误是

'utf8' codec can't decode byte 0x9c in position 1: invalid start byte

【问题讨论】:

    标签: python python-2.7


    【解决方案1】:

    这是pdfminer.six的解决方案;它支持西里尔字符

    from pdfminer import high_level
    
    with open('file.pdf', 'rb') as f:
        text = high_level.extract_text(f)
        print(text)
    
    

    另见https://stackoverflow.com/a/70501572/3367753

    【讨论】:

      【解决方案2】:

      PDF 不是文本文件

      PDF 不是 unicode,PDF 充满了二进制流,有文本、图像等等。

      使用一些 PDF 库

      看看PyPDF2。要从第一页获取文本,请执行

      pdf = PdfFileReader(open('/tmp/russian.pdf', 'rb'))
      text = pdf.getPage(0).extractText()
      

      虽然您可能还需要将其转换为 windows-1251

      text.encode('latin').decode('windows-1251')
      

      【讨论】:

      • спасибо я пробовал но все таки не выводит кириллицу
      • @ЛесханКаратаев 你必须给我看那个pdf。请说英语。
      • 你能给我你的电子邮件吗?
      • @ЛесханКаратаев 不……
      • 各位,有什么更新吗?我不确定它是否能够“阅读”西里尔字母。 len(pdf.getPage(0).extractText()) — 0 个符号。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多