我一直在使用PyPDF2使用Python 2.7提取this PDF文件(使用pdfTeX-1.40.0生成)中包含的文本。它工作正常,但现在我必须从LibreOffice 4.3生成的相同pdf中提取文本,结果就是这个(不是完整的):
˜ ! ˜"!#$ %
˘ˇˆ˙˝
ˇ
˝%&˘
%'%
˛˚˛˜ !
"#$#"%$&
'##()˛˚˛
˛˚˛˜ !"#$#"%$%
*+!
这是我的代码:
pdfFileObj = open(filePath, 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
pageText = ""
for pageID in range(0, pdfReader.numPages):
pageObj = pdfReader.getPage(pageID)
pageText = pageText + "\n" + str(pageObj.extractText().encode('utf-8')))
for line in pageText:
extInfo = extInfo + line
pdfFileObj.close()
if string2search.replace(' ','') in extInfo:
stringPresent = True
else:
stringPresent = False
Windows机器有什么简单的工作解决方案吗? 我找到了关于此的this主题,但没有解决方案。 我也尝试使用this主题中的PDFMiner,但是我收到了这个错误:
UnicodeEncodeError: 'ascii' codec cant encode character u'\xe9' in position 0: ordinal not in range (128)
答案 0 :(得分:0)
我相信你的问题是读前的编码
<div data-percent="" id="datadiv"></div>
<script>
function retrieveProgressbar() {
$.ajax({
type: "post",
url: "retrieveprogressbar.php",
data: "progressbar",
success: function (data) {
//$("#datadiv").attr("data-percent", data);
// OR
$(this).attr("data-percent", data);
}
});
}
retrieveProgressbar();
</script>
答案 1 :(得分:0)
我终于找到了解决方法。
1.-下载适用于Windows的Xpdf工具
2.-将pdpdotext.exe从xpdf-tools-win-4.00 \ bin32复制到C:\ Windows \ System32,再复制到C:\ Windows \ SysWOW64
3.-使用代码:
import subprocess
try:
extInfo = subprocess.check_output('pdftotext.exe '+filePath + ' -',shell=True,stderr=subprocess.STDOUT).strip()
except Exception as e:
print (e)
if string2search in extInfo:
stringPresent = True
else:
stringPresent = False