PDF转换解析工具—XPDF

最近一直在研究PDF的解析,发现有很多的软件或SDK可以 预处理。这里 预处理的意思仅仅是转换一种存储格式,还需要我们进一步的结构化处理。现在介绍几种预处理方案:
第一、使用OCR软件识别
这个做的最好的,非FineReader莫属,自己下载下来体会一番(软件需要激活)。
第二、使用现成的SDK
基于java的SDK有:pdfbox、itext等
基于python的SDK有:pdfMiner、pyPdf等
还有其他工具,比如pdf2htmlex、XPDF等

这次只对XPDF工具进行介绍,因为在转换txt方面稍好一点。其他工具有空再介绍哈。

1、XPDF官网介绍

     宣言:Xpdf: A PDF Viewer for X,官网地址:xpdf home

2、通过XPDF可以做什么

    从它的exe文件名称定义可以看出,包含pdftohtml、pdftotext、pdftopng、pdftops等。

3、XPDF运行环境初始化

  • 下载XPDF库,支持window32或64,解压。我用的是xpdfbin-win-3.04,点吧
  • 下载XPDF语言库,必须支持简体中文,解压。我用的是xpdf-chinese-simplified,点吧
  • 定义一个XPDF安装目录(虽然是免安装,暂且这么说),比如:XPDF_HOME=D:/xpdf/
  • xpdfbin-win-3.04\bin64下所有exe文件 copy 到 XPDF_HOME下(OS是64的)
  • xpdfbin-win-3.04下的PDF转换解析工具—XPDF_第1张图片这些文件 copy 到 XPDF_HOME下
  • xpdfbin-win-3.04\doc下的sample-xpdfrc文件 copy 到 XPDF_HOME下
  • xpdf-chinese-simplified文件夹 copy 到 XPDF_HOME下
  • 准备就绪,开始修改配置
  • 打开xpdf-chinese-simplified/add-to-xpdfrc文件,copy所有内容 到 XPDF_HOME/sample-xpdfrc文件最后并修改路径。修改后的结果是这样的:
    #----- begin Chinese Simplified support package (2011-sep-02)
    
    cidToUnicode	Adobe-GB1	XPDF_HOME/xpdf-chinese-simplified/Adobe-GB1.cidToUnicode
    
    unicodeMap	ISO-2022-CN	XPDF_HOME/xpdf-chinese-simplified/ISO-2022-CN.unicodeMap
    
    unicodeMap	EUC-CN		XPDF_HOME/xpdf-chinese-simplified/EUC-CN.unicodeMap
    
    unicodeMap	GBK		XPDF_HOME/xpdf-chinese-simplified/GBK.unicodeMap
    
    cMapDir		Adobe-GB1	XPDF_HOME/xpdf-chinese-simplified/CMap
    
    toUnicodeDir			XPDF_HOME/xpdf-chinese-simplified/CMap
    
    #fontFileCC	Adobe-GB1	/usr/..../gkai00mp.ttf
    
    #----- end Chinese Simplified support package
    
    最后把sample-xpdfrc文件名改为xpdfrc,这么做就支持简体中文识别啦~

4、XPDF的使用入门

     第一种:在dos下执行exe文件,先cd到XPDF_HOME目录,然后执行pdftotext.exe命令。

                 比如:XPDF_HOME/pdftotext.exe [options] sourcefile[原始pdf路径] targetfile[转换后txt文件路径],回车看文件是否生成。

                 其中options包含很多设置,比如编码(GBK),是否保持pdf原有布局(-layout)等。

                 我透露一下自己测试用的命令:pdftotext.exe -layout D:/test.pdf D:/test.txt

     第二种:通过java实现转换,核心代码简介:

        String[] cmd = getCmd(new File(targetfile), isLayout);  
        Runtime.getRuntime().exec(cmd); 
5、转换前后比较

PDF转换解析工具—XPDF_第2张图片PDF转换解析工具—XPDF_第3张图片

            


             

    

    


你可能感兴趣的:(PDF结构化,pdf,软件,结构,sdk)