看到一个很不错的示例,自己试着实现了一下,成功以后提取文字很方便效率提高了不少
对于加密的pdf, 用到了一个解密pdf的插件qpdf。插件地址:https://sourceforge.net/projects/qpdf/。一般的pdf文档都是未加密的,基本不会用到这个插件。
首先下载源代码 (Python 2.7)
1 下图显示如何下载
下载源代码
2 下载zip文件
3 启动Python shell 2.7 (IDLE Python GUI)
4 运行".\pro_doc\doc_to_txt.py"
运行doc_to_txt.py时候报错:
Error information: Import Error: No module named win32com
报错原因:没有pywin32package,需要下载
1 win32com.client i sa part of pywin32
下载 pywin32 from here
下载 pywin32 package
2.点击"Browse all files"
下载 pywin32 package
3.打开IDLE,检查你的python版本信息
第一行信息显示了你的Python 版本信息
"Python 2.7.5(default, May 15 2013, 22:44:16) [MSCv.150064 bit(AMD64)] on win32."
我的版本是:Python 2.7.5 64 bit build
4.点击最新下载量最大的build。
选择符合Python 版本信息的 pywin32 package
5.下载你需要的版本。
找到符合Python 版本信息的pywin32
6. 安装"pywin32-221.win-amd64-py2.7.exe"。
7.运行doc_to_txt.py file 得到新目录newdir里面与原doc文件同名的txt文件
pdf转txt
如果pdf转txt,运行".\pro_doc\pdf_to_txt.py",可能需要另外的pdfminer package。
1 下载pdfminer package
2 把下载的文件放到 C:\Python27 或者其他合适的文件夹
3 运行pdfminer\setup.py, 安装package,
4 把以下命令插入 pdf_to_txt.py起始位置, 然后运行之。 若修改pdfminer/的位置, 则把"C:\Python27\pdfminer" 替换成 pdfminer 的目录。
import sys
# if there are no conflicting packages in the default Python Libs =>
sys.path.append("C:\Python27\pdfminer"
5 运行".\pro_doc\pdf_to_txt.py",得到目录newdir下面与pdf同名文件
PS:对文件名含有中文或者特殊符号的,程序会强制停止,可以通过批量修改文件名,改成简单的名称,
得到所有txt文件以后, 建立一个新文档,输入
Copy *.txt total.txt
存成.dat文件,文件名随意,然后和其他txt文件一个目录,双击.dat就可以得到需要的合并文档total.txt。