家伙,我已经发布了一个问题前面pypdf python tool .dont标志着这是重复的,因为我得到如下UnicodeEncodeError当阅读PDF文件使用pyPdf
import sys
import pyPdf
def convertPdf2String(path):
content = ""
# load PDF file
pdf = pyPdf.PdfFileReader(file(path, "rb"))
# iterate pages
for i in range(0, pdf.getNumPages()):
# extract the text from each page
content += pdf.getPage(i).extractText() + " \n"
# collapse whitespaces
content = u" ".join(content.replace(u"\xa0", u" ").strip().split())
return content
# convert contents of a PDF file and store retult to TXT file
f = open('a.txt','w+')
f.write(convertPdf2String(sys.argv[1]))
f.close()
# or print contents to the standard out stream
print convertPdf2String("/home/tom/Desktop/Hindi_Book.pdf").encode("ascii", "xmlcharrefreplace")
指出这个错误我得到这个错误的1号PDF文件 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)
与此PDF以下错误http://www.envis-icpe.com/pointcounterpointbook/Hindi_Book.pdf
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe7' in position 38: ordinal not in range(128)
如何解决这个
您确定您刚刚执行了上面的代码吗? 'u“\ xe7”.encode(“ascii”,“xmlcharrefreplace”)'正确返回“ç”。使用“xmlcharrefreplace”,对于有效的Unicode字符,它不应该失败。 – AndiDog 2010-10-04 15:48:34