使用pdfBox读取PDF文件注意问题
本来想要iText来读取pdf的,结果网上搜索下得出结论,使用iText读取pdf基本上是无法实现的。
于是还是改用了pdfBox来读取文件。于是造成了iText与pdfBox混用的尴尬。
虽然如此,但也遇到了不少问题。下面分析遇到的问题。
---------------------------------------------------------------------------------
1.首先最好要下载pdfbox 1.1的版本。处理文档方面比较完善,如果是低版本的话,是不支持字体与语言的读取。会报错。
2.另外还要下载fontbox 1.1 的包,这对多种字体以及多种语言的支持。注意版本,不然会报有一些类找不到。
3.还要加入common-loggin的包,不然进行读取的时候会遇到类找不到异常,主要是用到org.apache.commons.logging.LogFactory类
---------------------------------------------------------------------------------
遇到的问题主要是使用的包版本太对,或者两者的版本不匹配造成的。
贴个使用pdfbox来读取pdf文档内容的代码:
/** * 读取指定路径的pdf文件的文本内容<br> * @param filePath 指定路径 * @return pdf文件的文本内容 * @throws IOException */ public String readPdf(String filePath) throws IOException{ File file = new File(filePath); FileInputStream fis = new FileInputStream(file); //创建一个PDF解析器 PDFParser parser = new PDFParser(fis); //进行解析 parser.parse(); //得到PDF文档对象 PDDocument document = parser.getPDDocument(); //新建一个PDF文件剥离器 PDFTextStripper stripper = new PDFTextStripper(); //从文档对象中剥离文本 String content = stripper.getText(document); fis.close(); document.close(); return content;