xpdf用法、antiword用法、python-docx用法

一、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)


猜你喜欢

转载自blog.csdn.net/qq_38984677/article/details/81048504