问答详情
源自:5-5 python读取PDF文档(二)

繁体Pdf不能正常显示而是像(cid:152)(cid:618)(cid:825)(cid:2973)(cid:1734)(cid:153)这样的字符串呢(然而也没有报错)?

#就是用的老师的代码= =

#!/usr/bin/env python
# -*- coding:utf-8 -*-
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams
from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.pdfdevice import PDFDevice
from urllib.request import urlopen

# 获取文档对象
# fp = open("naacl06-shinyama.pdf", "rb")
fp = urlopen("http://www.tencent.com/zh-cn/content/ir/an/2016/attachments/20160321.pdf")

# 创建一个与文档关联的解释器
parser = PDFParser(fp)

# PDF文档的对象
doc = PDFDocument()

# 链接解释器和文档对象
parser.set_document(doc)
doc.set_parser(parser)

# 初始化文档
doc.initialize("")

# 创建PDF资源管理器
resource = PDFResourceManager()

# 参数分析器
laparam = LAParams()

# 创建一个聚合器
device = PDFPageAggregator(resource, laparams=laparam)

# 创建PDF页面解释器
interpreter = PDFPageInterpreter(resource, device)

# 使用文档对象得到页面的集合
for page in doc.get_pages():
   # 使用页面解释器来读取
   interpreter.process_page(page)

   # 使用聚合器来获得内容
   layout = device.get_result()

   for out in layout:
       if hasattr(out, "get_text"):
           print(out.get_text())


提问者:慕粉1257044316 2017-01-08 16:55

个回答

  • 你太天真了
    2017-02-06 10:51:03

    应该是你那里的编码格式没有转换对