一、xpdf安装、参数说明及文件批量转换
PDF的解析:
1.OCR软件识别,如FineReader;
2.基于Java的SDK,如pdfbox,itext;
3.基于Python的SDK,如pdfMiner,pyPdf;
4.其他工具pdf2htmlex,xpdf
本篇只详细介绍xpdf
PDF的转换解析工具-xpdf,可以pdftohtml,pdftotext,pdftopng,pdftops
下载地址:http://www.xpdfreader.com/download.html
1.新建目录D:\xpdf(可更改为自定义的目录)
2.下载xpdf库(32\64位),解压至D:\xpdf,xpdfbin-win-3.04.zip
3.下载XPDF语言库,支持简体中文,解压xpdf-chinese-simplified.tar.gz至D:\xpdf
4.将D:\xpdf\xpdfbin-win-3.04\bin64下的所有文件复制到D:\xpdf
5.将D:\xpdf\xpdfbin-win-3.04下的所有文件复制到D:\xpdf
6.将D:\xpdf\xpdfbin-win-3.04\doc下的sample-xpdfrc复制到D:\xpdf
7.打开D:\xpdf\xpdf-chinese-simplified目录下的add-to-xpdfrc文件,复制所有内容至D:\xpdf目录下的sample-xpdfrc文件最后,并修改路径配置如下
#----- begin Chinese Simplified support package (2011-sep-02)
cidToUnicode Adobe-GB1 D:/xpdf/xpdf-chinese-simplified/Adobe-GB1.cidToUnicode
unicodeMap ISO-2022-CN D:/xpdf/xpdf-chinese-simplified/ISO-2022-CN.unicodeMap
unicodeMap EUC-CN D:/xpdf/xpdf-chinese-simplified/EUC-CN.unicodeMap
unicodeMap GBK D:/xpdf/xpdf-chinese-simplified/GBK.unicodeMap
cMapDir Adobe-GB1 D:/xpdf/xpdf-chinese-simplified/CMap
toUnicodeDir D:/xpdf/xpdf-chinese-simplified/CMap
#fontFileCC Adobe-GB1 /usr/..../gkai00mp.ttf
#----- end Chinese Simplified support package
8.将sample-xpdfrc文件名改为xpdfrc,即可
9.xpdf的使用
1.dos执行
D:/xpdf/pdftotext.exe [options] sourcefile[原始pdf路径] targetfile[转换后txt文件路径]
option常用的设置:
1.-enc encoding-name 设置文本输出的编码,简体中文包只包含ISO-2022-CN,EUC-CN,GBK三种语言
2.-f number 指定要转换的第一页
3.-l number 指定要转换的最后一页
4.-layout 保持文本原来的物理布局,默认是undo,即以阅读顺序输出文本
5.-nopgbrk 不要在页面之间插入分页符
6.-opw password 指定PDF文件所有者的密码
7.-upw password 指定PDF文件的用户密码
8.-q 不打印任何消息或错误
示例:D:/xpdf/pdftotext.exe -layout -enc GBK D:/xpdf/xuexi.pdf D:/xpdf/test.txt
2.R语言实现批量PDF->txt处理
#定位PDF文件的存储路径
completepath<-list.files("F:/...",pattern ="*.pdf" ,full.names = TRUE) #返回字符串格式,pattern匹配正则表达式
#只匹配文件名称
pdfname<-list.files("F:/...",pattern ="*.pdf")
#文件类型处理
pdfname<-sub(".pdf", ".txt", pdfname)
#存放txt文件的路径设置
txt_path<-"F:/.../"
#xpdf的安装路径
xpdf_path<-"D:/xpdf/pdftotext.exe"
for (i in (1:length(completepath))) {
shell(paste0(xpdf_path, " -layout -enc GBK ", completepath[i], " ", txt_path, " ",pdfname[i]))
}
二、antiword
antiword是Linux、Unix、RISC OS、Mac OS X等系统下免费的MS WORD文档读取器,可以读取word文档(仅限doc格式)并输出纯文本字符串
下载地址:http://www.winfield.demon.nl/
系统:Windows 10
版本:antiword-0_37-windows.zip(如果不能下载,请在评论中留下邮箱)
安装:解压至C盘的根目录下,设置系统环境变量C:\antiword,同时用户环境变量新建变量名HOME,变量值C:\home(没有该路径,则新建home文件夹),系统环境变量path新增%HOME%\antiword
#常用的参数设置
antiword -t 文件名.doc 文本输出(默认)
antiword -f 文件名.doc 格式化文本输出
antiword -m utf-8 文件名.doc 指定utf-8.txt文件,不用指定文件目录(自动在c:\antiword下查找),文件名不区分大小写(注:输出结果不会出现???,但可能仍然乱码)
#R语言执行+中文乱码处理
gg<-system(command='antiword -m utf-8 -f C:/antiword/text.doc',intern=T)
gg<-iconv(gg,"UTF-8","CP936")
三、Python-docx
pip install python-docx
import docx
file=docx.Document(“D:\\.\\.\\.docx”)
#获取文档段落数
print(len(file.paragraphs))
#输出每一段的内容
for para in file.paragraphs:
print(para.text)