◎筱米加步枪◎.Blog

Happy coding

使用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;